.section ".text"
.align 4
.global vittu1
.type vittu1,#function
.proc 020
vittu1:
save %sp,-112,%sp
call strlen,0
mov %i0,%o0
mov 0,%o5
ldub [%i0+%o5],%o1
cmp %o1,%o5
be .pillu11
mov %o5,%o3
add %o0,-2,%g2
mov %i0,%o4
.pillu13:
ldub [%i0+%o3],%o0
stb %o0,[%o4]
sll %o0,24,%o0
sra %o0,24,%o0
cmp %o0,37
bne,a .pillu21
add %o4,1,%o4
cmp %o3,%g2
bge,a .pillu21
add %o4,1,%o4
add %o3,%i0,%o2
add %o2,1,%o2
ldsb [%o2],%o0
cmp %o0,64
ble .pillu15
ldub [%o2],%o1
and %o1,-33,%o0
b .pillu16
add %o0,-55,%o0
.pillu15:
add %o1,-48,%o0
.pillu16:
ldsb [%o2+1],%o2
sll %o0,28,%o0
cmp %o2,64
ble .pillu17
sra %o0,24,%o0
add %o0,-55,%o1
and %o2,223,%o0
b .pillu18
add %o1,%o0,%o0
.pillu17:
add %o0,-48,%o0
add %o0,%o2,%o0
.pillu18:
stb %o0,[%o4]
add %o3,2,%o3
add %o4,1,%o4
.pillu21:
add %o3,1,%o3
ldsb [%i0+%o3],%o0
cmp %o0,0
bne .pillu13
add %o5,1,%o5
.pillu11:
stb %g0,[%i0+%o5]
ret
restore
.section ".rodata"
.align 8
.pilluC0:
.asciz "/"
.align 8
.pilluC1:
.asciz "="
.align 8
.pilluC2:
.asciz "<> "
.global .rem
.align 8
.pilluC5:
.asciz "Content-Type: text/html\n\n"
.align 8
.pilluC6:
.asciz "REQUEST_METHOD"
.align 8
.pilluC7:
.asciz "
Mee vittu himaas leikkim\344\344n!!\n"
.align 8
.pilluC8:
.asciz "POST"
.align 8
.pilluC9:
.asciz "CONTENT_LENGTH"
.align 8
.pilluC10:
.asciz "HTTP_REFERER"
.align 8
.pilluC11:
.asciz "http://korsoraattori.evvk.com/"
.align 8
.pilluC12:
.asciz "Mee vittuun pelle!!"
.align 8
.pilluC13:
.asciz "://"
.align 8
.pilluC14:
.asciz "Mik\344 URL toi muka on?
\n"
.global memcpy
.align 8
.pilluC15:
.asciz "Koitas jotain muuta ti\344ts\344\n"
.align 8
.pilluC16:
.asciz "Mik\344 vittu toi %s muka on?
\n"
.align 8
.pilluC17:
.asciz "Koitas jotain muuta urlii niinku
"
.align 8
.pilluC18:
.asciz "GET "
.align 8
.pilluC19:
.asciz " HTTP/1.0\r\n"
.align 8
.pilluC20:
.asciz "HOST: "
.align 8
.pilluC21:
.asciz "\r\nUser-Agent: CKorso v0.3\r\n\r\n"
.align 8
.pilluC22:
.asciz ""
.align 8
.pilluC23:
.asciz "ksi "
.align 8
.pilluC24:
.asciz "x "
.align 8
.pilluC25:
.asciz "ks"
.align 8
.pilluC26:
.asciz "x"
.align 8
.pilluC27:
.asciz "ts"
.align 8
.pilluC28:
.asciz "z"
.align 8
.pilluC29:
.asciz "ssa "
.align 8
.pilluC30:
.asciz "s "
.align 8
.pilluC31:
.asciz "ss\344 "
.align 8
.pilluC32:
.asciz "sta "
.align 8
.pilluC33:
.asciz "st "
.align 8
.pilluC34:
.asciz "st\344 "
.align 8
.pilluC35:
.asciz "lt\344 "
.align 8
.pilluC36:
.asciz "lt "
.align 8
.pilluC37:
.asciz "lta "
.align 8
.pilluC38:
.asciz "lla "
.align 8
.pilluC39:
.asciz "l "
.align 8
.pilluC40:
.asciz "ll\344 "
.align 8
.pilluC41:
.asciz "xi "
.align 8
.pilluC42:
.asciz "si "
.align 8
.pilluC44:
.asciz " vittu"
.align 8
.pilluC45:
.asciz " ti\344ts\344"
.align 8
.pilluC46:
.asciz " niinku"
.align 8
.pilluC47:
.asciz " totanoin"
.align 8
.pilluC48:
.asciz "%c"
.align 8
.pilluC3:
.uaword 0x40140000 ! ~5.00000000000000000000e0
.uaword 0x0
.align 8
.pilluC4:
.uaword 0x3f000000 ! ~3.05175781250000000000e-5
.uaword 0x0
.align 8
.pilluC43:
.uaword 0x40080000 ! ~3.00000000000000000000e0
.uaword 0x0
.section ".text"
.align 4
.global main
.type main,#function
.proc 04
main:
sethi %hi(-30168),%g1
or %g1,%lo(-30168),%g1
save %sp,%g1,%sp
sethi %hi(-30068),%l0
or %l0,%lo(-30068),%l0
add %fp,%l0,%o0
sethi %hi(.pilluC0),%o1
or %o1,%lo(.pilluC0),%l2
ldub [%o1+%lo(.pilluC0)],%o2
sethi %hi(-30048),%o3
ldub [%l2+1],%o1
stb %o2,[%fp-24]
stb %o1,[%fp-23]
sethi %hi(.pilluC1),%o1
ldub [%o1+%lo(.pilluC1)],%o2
or %o3,%lo(-30048),%o3
or %o1,%lo(.pilluC1),%o1
ldub [%o1+1],%o1
stb %o2,[%fp-32]
stb %o1,[%fp-31]
sethi %hi(.pilluC2),%o1
ldub [%o1+%lo(.pilluC2)],%o4
add %fp,-16,%o2
stb %o4,[%o2+%o3]
or %o1,%lo(.pilluC2),%o1
ldub [%o1+1],%o4
add %o2,%o3,%o2
ldub [%o1+2],%o3
stb %o4,[%o2+1]
ldub [%o1+3],%o1
stb %o3,[%o2+2]
call time,0
stb %o1,[%o2+3]
sethi %hi(32767),%o1
ld [%fp+%l0],%o0
call .rem,0
or %o1,%lo(32767),%o1
call srand,0
mov 0,%l6
call rand,0
mov %l6,%i0
st %o0,[%fp-16]
ld [%fp-16],%f6
fitod %f6,%f2
sethi %hi(.pilluC3),%o5
ldd [%o5+%lo(.pilluC3)],%f4
fmuld %f2,%f4,%f2
sethi %hi(.pilluC4),%o5
ldd [%o5+%lo(.pilluC4)],%f4
fmuld %f2,%f4,%f2
fdtoi %f2,%f2
mov %l6,%l7
sethi %hi(.pilluC5),%o0
st %f2,[%fp-16]
ld [%fp-16],%o1
or %o0,%lo(.pilluC5),%o0
call printf,0
add %o1,1,%i2
sethi %hi(.pilluC6),%o0
or %o0,%lo(.pilluC6),%l0
call getenv,0
mov %l0,%o0
cmp %o0,%l6
bne .pillu23
sethi %hi(.pilluC7),%o0
call printf,0
or %o0,%lo(.pilluC7),%o0
call exit,0
mov %l6,%o0
.pillu23:
call getenv,0
mov %l0,%o0
sethi %hi(.pilluC8),%o1
call strcmp,0
or %o1,%lo(.pilluC8),%o1
cmp %o0,0
be,a .pillu25
sethi %hi(.pilluC9),%o0
sethi %hi(.pilluC7),%o0
call printf,0
or %o0,%lo(.pilluC7),%o0
call exit,0
mov 0,%o0
.pillu25:
call getenv,0
or %o0,%lo(.pilluC9),%o0
call atoi,0
nop
mov %o0,%l1
sethi %hi(.pilluC10),%o0
call getenv,0
or %o0,%lo(.pilluC10),%o0
sethi %hi(.pilluC11),%o1
call strstr,0
or %o1,%lo(.pilluC11),%o1
cmp %o0,0
bne .pillu27
nop
sethi %hi(.pilluC7),%o0
call printf,0
or %o0,%lo(.pilluC7),%o0
call exit,0
mov 0,%o0
.pillu27:
call malloc,0
add %l1,2,%o0
mov %o0,%l0
add %l1,1,%o1
sethi %hi(__iob),%o2
call fgets,0
or %o2,%lo(__iob),%o2
call vittu1,0
mov %l0,%o0
mov %l0,%o0
add %fp,-32,%l0
call strtok,0
mov %l0,%o1
mov 0,%o0
call strtok,0
mov %l0,%o1
cmp %o0,0
bne,a .pillu28
sethi %hi(.pilluC13),%o1
sethi %hi(.pilluC12),%o0
call printf,0
or %o0,%lo(.pilluC12),%o0
call exit,0
mov 0,%o0
.pillu28:
call strstr,0
or %o1,%lo(.pilluC13),%o1
orcc %o0,0,%l1
bne,a .pillu29
add %l1,3,%l1
sethi %hi(.pilluC14),%o0
call printf,0
or %o0,%lo(.pilluC14),%o0
call exit,0
mov 0,%o0
.pillu29:
mov %l1,%o0
call strstr,0
mov %l2,%o1
cmp %o0,0
bne .pillu30
mov %o0,%l4
mov %l1,%l3
b .pillu31
add %fp,-24,%l4
.pillu30:
sub %l4,%l1,%l0
call malloc,0
add %l0,1,%o0
mov %o0,%l3
mov %l1,%o1
call memcpy,0
mov %l0,%o2
add %l0,%l3,%l0
stb %g0,[%l0+1]
.pillu31:
mov 2,%o0
mov %o0,%o1
call socket,0
mov 0,%o2
mov %o0,%l2
cmp %l2,-1
bne .pillu32
nop
sethi %hi(.pilluC15),%o0
call printf,0
or %o0,%lo(.pilluC15),%o0
call exit,0
mov 0,%o0
.pillu32:
call inet_addr,0
mov %l3,%o0
sethi %hi(-30072),%o1
or %o1,%lo(-30072),%o1
st %o0,[%fp+%o1]
cmp %o0,-1
be .pillu33
add %fp,%o1,%o0
mov 4,%o1
call gethostbyaddr,0
mov 2,%o2
b .pillu94
cmp %o0,0
.pillu33:
call gethostbyname,0
mov %l3,%o0
cmp %o0,0
.pillu94:
bne,a .pillu36
ld [%o0+12],%o2
sethi %hi(.pilluC16),%o0
or %o0,%lo(.pilluC16),%o0
call printf,0
mov %l3,%o1
call exit,0
mov 0,%o0
.pillu36:
ld [%o0+16],%o0
ld [%o0],%o1
call memcpy,0
add %fp,-44,%o0
mov 2,%o0
sth %o0,[%fp-48]
mov 80,%o0
sth %o0,[%fp-46]
mov %l2,%o0
add %fp,-48,%o1
call connect,0
mov 16,%o2
cmp %o0,-1
bne .pillu37
mov %l2,%o0
sethi %hi(.pilluC17),%o0
call printf,0
or %o0,%lo(.pilluC17),%o0
call exit,0
mov 0,%o0
.pillu87:
b .pillu39
stb %g0,[%l1+%o0]
.pillu37:
sethi %hi(.pilluC18),%o1
or %o1,%lo(.pilluC18),%o1
call write,0
mov 4,%o2
call strlen,0
mov %l4,%o0
mov %o0,%o2
mov %l2,%o0
call write,0
mov %l4,%o1
mov %l2,%o0
sethi %hi(.pilluC19),%o1
or %o1,%lo(.pilluC19),%o1
call write,0
mov 11,%o2
mov %l2,%o0
sethi %hi(.pilluC20),%o1
or %o1,%lo(.pilluC20),%o1
call write,0
mov 6,%o2
call strlen,0
mov %l3,%o0
mov %o0,%o2
mov %l2,%o0
call write,0
mov %l3,%o1
mov %l2,%o0
sethi %hi(.pilluC21),%o1
or %o1,%lo(.pilluC21),%o1
call write,0
mov 29,%o2
sethi %hi(29999),%o0
or %o0,%lo(29999),%o2
cmp %l6,%o2
bg .pillu96
mov 1,%l0
sethi %hi(-30040),%o0
or %o0,%lo(-30040),%o0
add %fp,-16,%o1
add %o1,%o0,%l1
mov %o2,%l5
mov %l2,%o0
.pillu97:
add %l1,%l6,%o1
call read,0
mov 1024,%o2
orcc %o0,0,%l0
ble .pillu87
add %l6,1,%o0
add %l6,%l0,%l6
cmp %l6,%l5
ble .pillu97
mov %l2,%o0
.pillu39:
mov 1,%l0
.pillu96:
mov 2,%o3
sethi %hi(-30040),%o0
or %o0,%lo(-30040),%o0
add %fp,-16,%o1
add %o1,%o0,%o1
add %o1,%l0,%o2
.pillu52:
cmp %l0,%l6
bg .pillu45
nop
ldsb [%o2],%o0
cmp %o0,13
bne .pillu98
cmp %o0,10
ldsb [%o1+%o3],%o0
cmp %o0,10
bne,a .pillu99
ldsb [%o2],%o0
add %l0,2,%o0
ldsb [%o1+%o0],%o0
cmp %o0,13
bne,a .pillu99
ldsb [%o2],%o0
add %l0,3,%o0
ldsb [%o1+%o0],%o0
cmp %o0,10
be .pillu45
nop
ldsb [%o2],%o0
.pillu99:
cmp %o0,10
.pillu98:
bne,a .pillu100
add %o3,1,%o3
ldsb [%o1+%o3],%o0
cmp %o0,10
be .pillu45
add %o3,1,%o3
.pillu100:
addcc %l0,1,%l0
bne .pillu52
add %o2,1,%o2
.pillu45:
call strlen,0
mov %l4,%o0
add %o0,%l4,%o0
ldsb [%o0-1],%o0
cmp %o0,47
be .pillu53
mov %l4,%o0
call strrchr,0
mov 47,%o1
stb %g0,[%o0+1]
.pillu53:
sethi %hi(.pilluC22),%o0
or %o0,%lo(.pilluC22),%o0
mov %l3,%o1
call printf,0
mov %l4,%o2
cmp %l0,%l6
bge .pillu55
sethi %hi(-30040),%o0
or %o0,%lo(-30040),%o0
add %fp,-16,%i1
add %i1,%o0,%l3
sethi %hi(-30048),%o0
or %o0,%lo(-30048),%i5
add %i1,%i5,%l5
sethi %hi(.pilluC29),%o0
or %o0,%lo(.pilluC29),%i4
sethi %hi(.pilluC30),%l4
sethi %hi(.pilluC31),%o0
or %o0,%lo(.pilluC31),%i3
ldsb [%l3+%l0],%o1
.pillu104:
ldsb [%i1+%i5],%o0
cmp %o1,%o0
be,a .pillu58
mov 1,%i0
.pillu58:
ldsb [%l5+1],%o0
cmp %o1,%o0
bne .pillu101
cmp %i0,0
mov 0,%i0
orcc %i0,0,%l7
.pillu101:
bne,a .pillu102
ldsb [%l3+%l0],%o1
add %l3,%l0,%l2
mov %l2,%o0
sethi %hi(.pilluC23),%o1
or %o1,%lo(.pilluC23),%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne,a .pillu61
mov %l2,%o0
sethi %hi(.pilluC24),%o0
b .pillu88
or %o0,%lo(.pilluC24),%o0
.pillu61:
sethi %hi(.pilluC25),%o1
or %o1,%lo(.pilluC25),%o1
call memcmp,0
mov 2,%o2
cmp %o0,0
bne,a .pillu62
mov %l2,%o0
sethi %hi(.pilluC26),%o0
b .pillu89
or %o0,%lo(.pilluC26),%o0
.pillu62:
sethi %hi(.pilluC27),%o1
or %o1,%lo(.pilluC27),%o1
call memcmp,0
mov 2,%o2
cmp %o0,0
bne .pillu63
mov %l2,%o0
sethi %hi(.pilluC28),%o0
or %o0,%lo(.pilluC28),%o0
.pillu89:
call printf,0
add %l0,1,%l0
b .pillu95
add %l0,1,%l0
.pillu63:
mov %i4,%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne .pillu64
mov %l2,%o0
b .pillu90
or %l4,%lo(.pilluC30),%o0
.pillu64:
mov %i3,%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne .pillu65
mov %l2,%o0
b .pillu90
or %l4,%lo(.pilluC30),%o0
.pillu65:
sethi %hi(.pilluC32),%o1
or %o1,%lo(.pilluC32),%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne,a .pillu66
mov %l2,%o0
sethi %hi(.pilluC33),%o0
b .pillu90
or %o0,%lo(.pilluC33),%o0
.pillu66:
sethi %hi(.pilluC34),%o1
or %o1,%lo(.pilluC34),%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne,a .pillu67
mov %l2,%o0
sethi %hi(.pilluC33),%o0
b .pillu90
or %o0,%lo(.pilluC33),%o0
.pillu67:
sethi %hi(.pilluC35),%o1
or %o1,%lo(.pilluC35),%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
be .pillu91
mov %l2,%l1
mov %l1,%o0
sethi %hi(.pilluC37),%o1
or %o1,%lo(.pilluC37),%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne .pillu69
mov %l1,%o0
.pillu91:
sethi %hi(.pilluC36),%o0
or %o0,%lo(.pilluC36),%o0
.pillu90:
call printf,0
add %l0,3,%l0
b .pillu95
add %l0,1,%l0
.pillu69:
sethi %hi(.pilluC38),%o1
or %o1,%lo(.pilluC38),%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne,a .pillu70
mov %l1,%o0
sethi %hi(.pilluC39),%o0
b .pillu88
or %o0,%lo(.pilluC39),%o0
.pillu70:
sethi %hi(.pilluC40),%o1
or %o1,%lo(.pilluC40),%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
bne,a .pillu71
mov %l1,%o0
sethi %hi(.pilluC39),%o0
b .pillu88
or %o0,%lo(.pilluC39),%o0
.pillu71:
mov %i4,%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
be .pillu92
mov %l1,%o0
mov %i3,%o1
call memcmp,0
mov 4,%o2
cmp %o0,0
be .pillu92
mov %l1,%o0
sethi %hi(.pilluC41),%o1
or %o1,%lo(.pilluC41),%o1
call memcmp,0
mov 3,%o2
cmp %o0,0
bne,a .pillu74
mov %l2,%o0
sethi %hi(.pilluC24),%o0
b .pillu88
or %o0,%lo(.pilluC24),%o0
.pillu74:
sethi %hi(.pilluC42),%o1
or %o1,%lo(.pilluC42),%o1
call memcmp,0
mov 3,%o2
cmp %o0,0
bne,a .pillu60
ldsb [%l3+%l0],%o1
.pillu92:
or %l4,%lo(.pilluC30),%o0
.pillu88:
call printf,0
add %l0,2,%l0
b .pillu95
add %l0,1,%l0
.pillu60:
.pillu102:
ldsb [%l5+2],%o0
cmp %o1,%o0
bne,a .pillu103
ldsb [%l3+%l0],%o1
add %l0,1,%o0
ldsb [%l3+%o0],%o0
cmp %o0,%o1
be,a .pillu103
ldsb [%l3+%l0],%o1
call rand,0
add %l7,1,%l7
st %o0,[%fp-16]
ld [%fp-16],%f6
fitod %f6,%f4
sethi %hi(.pilluC43),%o5
ldd [%o5+%lo(.pilluC43)],%f2
fmuld %f4,%f2,%f4
sethi %hi(.pilluC4),%o5
ldd [%o5+%lo(.pilluC4)],%f2
fmuld %f4,%f2,%f4
fdtoi %f4,%f4
st %f4,[%fp-16]
ld [%fp-16],%o0
cmp %i0,0
bne .pillu76
add %o0,2,%o1
call .rem,0
mov %l7,%o0
cmp %o0,0
bne,a .pillu103
ldsb [%l3+%l0],%o1
add %i2,1,%i2
mov %i2,%o0
call .rem,0
mov 5,%o1
mov %o0,%o1
cmp %o1,4
bgu .pillu84
sll %o1,2,%o1
sethi %hi(.pillu85),%o0
or %o0,%lo(.pillu85),%o0
ld [%o0+%o1],%o0
jmp %o0
nop
.align 4
.pillu85:
.word .pillu84
.word .pillu80
.word .pillu81
.word .pillu84
.word .pillu83
.pillu80:
sethi %hi(.pilluC45),%o0
b .pillu93
or %o0,%lo(.pilluC45),%o0
.pillu81:
sethi %hi(.pilluC46),%o0
b .pillu93
or %o0,%lo(.pilluC46),%o0
.pillu83:
sethi %hi(.pilluC47),%o0
b .pillu93
or %o0,%lo(.pilluC47),%o0
.pillu84:
sethi %hi(.pilluC44),%o0
or %o0,%lo(.pilluC44),%o0
.pillu93:
call printf,0
nop
.pillu76:
ldsb [%l3+%l0],%o1
.pillu103:
sethi %hi(.pilluC48),%o0
call printf,0
or %o0,%lo(.pilluC48),%o0
add %l0,1,%l0
.pillu95:
cmp %l0,%l6
bl,a .pillu104
ldsb [%l3+%l0],%o1
.pillu55:
call exit,0
mov 0,%o0
ret
restore
.align 4
.global vittu3
.type vittu3,#function
.proc 0110
vittu3:
save %sp,-120,%sp
call inet_addr,0
mov %i0,%o0
cmp %o0,-1
be .pillu2
st %o0,[%fp-20]
add %fp,-20,%o0
mov 4,%o1
call gethostbyaddr,0
mov 2,%o2
b,a .pillu3
.pillu2:
call gethostbyname,0
mov %i0,%o0
.pillu3:
ret
restore %g0,%o0,%o0
.align 4
.global vittu2
.type vittu2,#function
.proc 04
vittu2:
ldsb [%o0],%g2
cmp %g2,64
ble .pillu5
ldub [%o0],%g3
and %g3,-33,%g2
b .pillu6
add %g2,-55,%g2
.pillu5:
add %g3,-48,%g2
.pillu6:
ldsb [%o0+1],%o0
sll %g2,28,%g2
cmp %o0,64
ble .pillu7
sra %g2,24,%g2
add %g2,-55,%g3
and %o0,223,%g2
b .pillu8
add %g3,%g2,%g2
.pillu7:
add %g2,-48,%g2
add %g2,%o0,%g2
.pillu8:
sll %g2,24,%o0
retl
sra %o0,24,%o0