.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