Function at 0x15fba0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2f8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0xfb6a111b
mov byte [esp + 0x144], 0xe0
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov esi, 0x77aebda9
mov edi, 0x8514256
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi - 0x77aebc69]
mov eax, edi
or eax, edx
lea ebx, [edi - 0x8514200]
and ebx, edx
xor ebx, eax
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xbd
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0xb3
mov byte [esp + esi - 0x77aebc69], al
inc esi
dec edi
cmp esi, 0x77aebdb4
jne 0x15fc00
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
movzx eax, byte [esp + 0x140]
test al, al
je 0x15fc7b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x15fc70
mov byte [esi], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
lea eax, [esp + 0x48]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x34]
xor ebx, ebx
push eax
push ecx
push edx
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push dword [ebp + 0x10]
push dword [eax + 0xc]
call fcn.00162520
add esp, 0x18
test al, al
je 0x161014
mov dword [esp + 0x140], 0x4911e3e0
mov byte [esp + 0x144], 0x6c
mov dword [esp + 0x145], 0
xor eax, eax
xor edi, edi
nop
nop
nop
mov dword [esp + 0xc], edi
movzx ecx, byte [esp + eax + 0x140]
mov ebx, dword [esp + 0xc]
and ebx, 0x18
mov edx, eax
xor edx, 0x52e7f2ec
add edx, ebx
mov ebx, ecx
not ebx
and ebx, edx
mov edi, edx
xor edi, ecx
or edx, ecx
sub ecx, edi
add ecx, ebx
mov edi, dword [esp + 0xc]
not ecx
and ecx, edx
mov edx, ecx
not edx
and edx, 0x7f
and ecx, 0x80
sub ecx, edx
add cl, 0xe3
mov byte [esp + eax + 0x140], cl
inc eax
add edi, 2
cmp eax, 9
jne 0x15fcf0
movzx eax, byte [esp + 0x140]
test al, al
je 0x15fd6b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x15fd60
mov byte [esi], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x140], 0x1e061229
mov dword [esp + 0x144], 0x35321738
mov dword [esp + 0x148], 0x333f260d
mov dword [esp + 0x14c], 0x30313233
mov dword [esp + 0x150], 0x2e274500
mov dword [esp + 0x154], 0x352a241e
mov dword [esp + 0x158], 0xc4c5c6c7
mov dword [esp + 0x15c], 0xccb9f1f6
mov dword [esp + 0x160], 0xe6dbf6db
mov dword [esp + 0x164], 0xf0f0d2c3
mov dword [esp + 0x168], 0xf2a9fcdc
mov dword [esp + 0x16c], 0xabc0f5ea
mov dword [esp + 0x170], 0xa4f6e6a0
mov dword [esp + 0x174], 0xe4e5a6a2
mov dword [esp + 0x178], 0x23e99edf
mov dword [esp + 0x17c], 0xe0e1e2e3
mov dword [esp + 0x180], 0xdec3c5db
mov dword [esp + 0x184], 0xe895cce5
mov dword [esp + 0x188], 0xf4ffdde8
mov dword [esp + 0x18c], 0x89f1f2f3
mov dword [esp + 0x190], 0xfcfdfeea
mov dword [esp + 0x194], 0x3ee782fb
mov dword [esp + 0x198], 0xfffa9afe
mov dword [esp + 0x19c], 0x9dfe9d92
mov dword [esp + 0x1a0], 0x8c8d8e8f
mov dword [esp + 0x1a4], 0xa6f6f2bf
mov dword [esp + 0x1a8], 0xa19ba697
mov dword [esp + 0x1ac], 0x90edbceb
mov dword [esp + 0x1b0], 0x9c9d9e9f
mov dword [esp + 0x1b4], 0x8c999a9b
mov dword [esp + 0x1b8], 0xaa979adb
mov dword [esp + 0x1bc], 0xa0a1a2a3
mov dword [esp + 0x1c0], 0x87b1809d
mov dword [esp + 0x1c4], 0xd39ad6ab
mov byte [esp + 0x1c8], 0xf8
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c9], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x140]
lea ecx, [eax + 0x1746f7e8]
mov edi, 0x28b90817
sub edi, eax
and edi, 0x90d
and ecx, 0x104226f2
or ecx, edi
xor ecx, edx
mov edx, ecx
xor edx, 0x2072
mov edi, ecx
xor edi, 0xc704d90d
xor ecx, 0xf3660e85
or edx, 0x3cfbd788
add edx, edi
add edx, 0xcb9d2878
or edi, 0xc3042877
and edi, ecx
mov ecx, edi
and ecx, edx
xor edi, edx
lea ecx, [edi + ecx*2]
inc cl
mov byte [esp + eax + 0x140], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x90
jb 0x15ff30
mov dword [esp + 0x60], 0xd486969a
mov dword [esp + 0x64], 0xcd97b3c
mov dword [esp + 0x68], 0x3118dc9c
mov dword [esp + 0x6c], 0x5d5a5b58
mov dword [esp + 0x70], 0x69aa5edb
mov dword [esp + 0x74], 0xd11e8a8
mov dword [esp + 0x78], 0x69666764
mov dword [esp + 0x7c], 0xa51ae0a0
mov dword [esp + 0x80], 0x90462be9
mov dword [esp + 0x84], 0x393e36ae
mov dword [esp + 0x88], 0x353a3b38
mov dword [esp + 0x8c], 0x31363734
mov dword [esp + 0x90], 0x84b6a6aa
mov dword [esp + 0x94], 0x8eca3b6c
mov dword [esp + 0x98], 0xe8bcf4a
mov dword [esp + 0x9c], 0xd0a0b08
mov dword [esp + 0xa0], 0xd96e3cc4
mov dword [esp + 0xa4], 0x1536d79b
mov dword [esp + 0xa8], 0x19ed98dc
mov dword [esp + 0xac], 0x351a1b18
mov dword [esp + 0xb0], 0x211e1f74
mov dword [esp + 0xb4], 0xe3afeb20
mov dword [esp + 0xb8], 0xe7abef04
mov dword [esp + 0xbc], 0xbba7e300
mov dword [esp + 0xc0], 0x312e2f2c
mov dword [esp + 0xc4], 0x11f6bcfc
mov dword [esp + 0xc8], 0x29bdfc34
mov dword [esp + 0xcc], 0x3dbc72f0
mov dword [esp + 0xd0], 0xc13e3f3c
mov dword [esp + 0xd4], 0xdc2c3c0
mov dword [esp + 0xd8], 0xdec7bd4f
mov dword [esp + 0xdc], 0xcdcacbc8
mov dword [esp + 0xe0], 0xf5024204
mov dword [esp + 0xe4], 0xb6e11bd0
mov byte [esp + 0xe8], 0xd4
mov byte [esp + 0xeb], 0
mov word [esp + 0xe9], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x60]
mov edi, eax
and edi, 0x1a
mov ebx, ecx
xor ebx, 0xd
add ebx, edi
lea edi, [edx + edx]
not edi
add edi, edx
and edi, 0x1d
and edx, 0xffffffe2
or edx, edi
xor edx, ebx
xor dl, 0x1d
add dl, 0xbf
mov byte [esp + ecx + 0x60], dl
inc ecx
add eax, 2
cmp ecx, 0x8c
jne 0x160130
lea eax, [esp + 0x140]
lea edx, [esp + 0x60]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea ebx, [esp + 0x40]
push ebx
call 0x17fc90
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x161012
mov dword [esp + 0x140], 0x7b14eb18
mov byte [esp + 0x144], 0x60
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0x77cf9de9
mov ecx, 0x16
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x77cf9ca9]
mov edi, ecx
xor edi, eax
and edi, edx
xor edi, eax
mov edx, edi
and edx, 0x72
xor edi, 0x72
lea edx, [edi + edx*2]
inc dl
mov byte [esp + eax - 0x77cf9ca9], dl
inc eax
dec ecx
cmp eax, 0x77cf9df5
jne 0x1601e0
movzx eax, byte [esp + 0x140]
test al, al
je 0x16022b
lea ecx, [esp + 0x141]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x160220
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push ebx
call 0x17fc90
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x161012
mov dword [esp + 0x140], 0xc96c6c62
mov byte [esp + 0x144], 0xec
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x2c
xor al, byte [esp + ecx + 0x140]
add al, 0x24
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0xb
jne 0x160290
movzx eax, byte [esp + 0x140]
test al, al
je 0x1602cb
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1602c0
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x34]
push 0
push 8
push eax
push edx
call 0x17f020
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x161012
mov dword [esp + 0x140], 0x39a73baf
mov dword [esp + 0x144], 0x258a2793
mov dword [esp + 0x148], 0x2189238d
mov dword [esp + 0x14c], 0x2d852ff2
mov dword [esp + 0x150], 0x29812bb4
lea eax, [esp + 0x154]
mov word [esp + 0x154], 0x1728
mov dword [esp + 0x156], 0
mov word [esp + 0x15a], 0
mov ecx, 0xcb
mov edx, 0x34
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x75]
mov edi, ecx
or edi, ebx
not ebx
or ebx, edx
and ebx, edi
add bl, 9
mov byte [esp + ecx + 0x75], bl
inc ecx
dec edx
cmp ecx, 0xe7
jne 0x160360
lea edi, [esp + 0x2de]
lea edx, [esp + 0x140]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x2f2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x140], 0x31d2d5e9
mov byte [esp + 0x144], 0x4c
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0xfc266d72
mov ecx, 0x3d9928d
nop
nop
nop
nop
mov dword [esp + 4], ecx
movzx edx, byte [esp + eax + 0x3d993ce]
mov edi, eax
and edi, edx
add edi, edi
sub edi, edx
add edi, ecx
or edi, ecx
add edi, eax
inc edi
mov ecx, edi
and ecx, 2
mov ebx, edi
or edi, 2
imul edi, ecx
xor ecx, 2
and ebx, 0xfffffffd
imul ebx, ecx
add edi, ebx
mov ecx, edi
not ecx
and ecx, eax
and edi, dword [esp + 4]
sub ecx, edi
lea edi, [ecx + edx]
add edx, ecx
add edx, 0xc5
mov ecx, 0x3a
sub ecx, edi
or edx, 1
add edx, edi
or ecx, 1
add edx, ecx
mov ecx, dword [esp + 4]
add dl, 0xc6
mov byte [esp + eax + 0x3d993ce], dl
inc eax
dec ecx
cmp eax, 0xfc266d7d
jne 0x1603e0
movzx eax, byte [esp + 0x140]
test al, al
je 0x16047b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x160470
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x161012
mov dword [esp + 0xc], 0
lea ebx, [esp + 0x34]
jmp 0x1604cf
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x1610cd
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0014c930
add esp, 0xc
xor eax, eax
jmp 0x16050e
mov eax, dword [esp + 4]
inc eax
cmp eax, 0xb
je 0x160710
mov dword [esp + 4], eax
mov ecx, ebx
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x40]
push dword [esp + 0x1c]
call 0x17eeb0
test eax, eax
js 0x160500
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x10], cl
sete al
xor al, 0x31
mov byte [esp + 0x11], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0x12], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0x13], al
mov word [esp + 0x14], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x11]
inc eax
test cl, cl
jne 0x160590
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x160700
cmp byte [esp + 0x210], 0
mov ebx, dword [esp + 0x180]
mov edi, dword [esp + 0x184]
jne 0x1605d3
mov edx, ebx
or edx, edi
je 0x160700
cmp byte [esp + 0x2d0], 0
jne 0x1605e8
xor ebx, 1
or ebx, edi
je 0x160700
add esi, eax
mov dword [esp + 0x60], 0x96b6077
mov byte [esp + 0x64], 4
lea eax, [esp + 0x65]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 0x60], al
inc eax
cmp eax, 0xc
jne 0x160610
movzx eax, byte [esp + 0x60]
test al, al
je 0x16063b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x160630
mov byte [esi], 0
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x60], 0xff676980
mov dword [esp + 0xf0], 0xf4f5f6f7
xor eax, eax
mov ecx, 0x2b
lea ebx, [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xf0]
mov edi, edx
not edi
or edi, ecx
or edx, eax
or edx, 0xd4
and edx, edi
add dl, 0xdc
mov byte [esp + eax + 0xf0], dl
inc eax
dec ecx
cmp eax, 4
jne 0x160670
mov eax, dword [0x190374]
test eax, eax
je 0x160500
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov edi, dword [0x190378]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x3568c09b
je 0x1606d3
inc edx
cmp eax, edx
jne 0x1606c0
jmp 0x160500
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x160500
lea ecx, [esp + 0x60]
push ecx
push 0
push 2
push dword [0x19037c]
push eax
call 0x180f10
add esp, 0x14
jmp 0x160500
add esi, eax
lea ebx, [esp + 0x34]
test cl, cl
jne 0x160720
jmp 0x1604b0
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x1604b0
mov dword [esp + 8], esi
call fcn.00144b30
mov dword [esp + 0x30], eax
push eax
call fcn.00144760
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x60], 0x67010d0b
mov byte [esp + 0x64], 0x68
lea eax, [esp + 0x65]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0xe7
mov ecx, 0x7891c18
nop
movzx edi, byte [esp + eax - 0x87]
mov edx, eax
and edx, edi
mov ebx, edx
and ebx, 0xfffffffd
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
xor esi, 2
imul esi, ebx
add edx, esi
lea esi, [eax + edi]
add esi, 0xf876e300
mov ebx, ecx
sub ebx, edi
and ebx, edx
not edx
and edx, esi
sub edx, ebx
lea edi, [edx + 0x7c]
mov esi, 0xda527383
sub esi, edx
mov ebx, esi
and esi, 0x48
and edi, 0xb7
or edi, esi
not ebx
xor edi, 0x49
and ebx, 1
or ebx, edi
and edx, 1
add ebx, edx
mov byte [esp + eax - 0x87], bl
inc eax
dec ecx
cmp eax, 0xf1
jne 0x160760
movzx eax, byte [esp + 0x60]
test al, al
je 0x1607f0
lea ecx, [esp + 0x61]
mov esi, dword [esp + 8]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1607e0
jmp 0x1607f4
mov esi, dword [esp + 8]
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
movzx ebx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x2de]
test bx, bx
je 0x160819
add ecx, 2
cmp bx, di
je 0x160800
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ecx, eax
or ecx, edx
je 0x160870
mov dword [esp + 4], eax
lea ecx, [esp + 0x34]
push 0
push 0
push 0x40
lea eax, [esp + 0x6c]
push eax
push edx
push dword [esp + 0x18]
call 0x17eeb0
test eax, eax
js 0x160882
xor eax, eax
cmp bx, di
sete al
lea ebx, [esp + 0x34]
mov ecx, ebx
lea edx, [esp + 0x60]
push eax
mov edi, dword [esp + 0x30]
push edi
call fcn.00162ff0
add esp, 8
jmp 0x16088c
mov dword [esp + 4], 0
lea ebx, [esp + 0x34]
mov edi, dword [esp + 0x2c]
jmp 0x160890
xor eax, eax
lea ebx, [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp + 0x60], 0x81246461
mov byte [esp + 0x64], 0xb4
lea eax, [esp + 0x65]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x3ed06ede
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3ed06e7e]
lea edx, [eax - 0x3ed06e00]
and edx, ecx
or ecx, eax
xor ecx, edx
add ecx, 0x45a879b2
mov edx, ecx
xor edx, 0xf6
and ecx, 0x76
lea ecx, [edx + ecx*2]
add cl, 2
mov byte [esp + eax - 0x3ed06e7e], cl
inc eax
cmp eax, 0x3ed06ee9
jne 0x1608c0
movzx eax, byte [esp + 0x60]
test al, al
je 0x16091b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x160910
mov byte [esi], 0
push edi
call fcn.00144930
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 4]
and cl, dl
cmp cl, 1
jne 0x160ad0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call 0x17eeb0
test eax, eax
mov dword [esp + 8], esi
js 0x160ba0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x11c]
push edi
push edx
push eax
call 0x17eeb0
test eax, eax
js 0x160ba0
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea edi, [esp + 0xfc]
push edi
push edx
push eax
call 0x17eeb0
test eax, eax
js 0x160ba0
cmp byte [esp + 0x107], 0
lea ebx, [esp + 0xf0]
js 0x160ad9
mov dword [esp + 0x10], 0x299f2bff
mov dword [esp + 0x14], 0x2d982f83
mov dword [esp + 0x18], 0x31f633cc
mov dword [esp + 0x1c], 0x35823797
mov dword [esp + 0x20], 0x39e63b93
mov word [esp + 0x24], 0x3f38
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x5e0e13c7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5e0e13b7]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x1d
mov byte [esp + eax - 0x5e0e13b7], cl
inc eax
cmp eax, 0x5e0e13e2
jne 0x160a40
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 0x44], ebx
je 0x160b36
lea eax, [esp + 0x10]
mov ecx, ebx
mov dword [esp + 4], ebx
jmp 0x160a9c
movzx edi, word [eax]
test di, di
je 0x160b3e
movzx ebx, word [ecx]
test bx, bx
je 0x160b77
add ecx, 2
add eax, 2
mov edx, dword [esp + 4]
add edx, 2
cmp bx, di
je 0x160ac0
mov dword [esp + 4], edx
mov ecx, edx
je 0x160a90
lea eax, [esp + 0x10]
jmp 0x160a90
mov dword [esp + 4], edx
jmp 0x160ea3
mov edi, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov eax, edi
or eax, ebx
je 0x160ba0
mov eax, dword [esp + 0xf8]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x160b0d
mov eax, 0xffffffff
push eax
call fcn.0014c880
add esp, 4
lea ecx, [esp + 0x34]
push 0
push 0
push dword [esp + 0xc]
push eax
push ebx
mov ebx, eax
push edi
call 0x17eeb0
test eax, eax
jns 0x1609f1
jmp 0x160ba0
mov ecx, ebx
lea eax, [esp + 0x60]
jmp 0x160b4c
lea eax, [esp + 0x60]
mov ebx, eax
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x160b7d
movzx edi, word [ecx + 0x14]
mov ebx, eax
test di, di
je 0x160b7d
lea eax, [ecx + 0x14]
mov edx, 0x14
nop
cmp di, 0x5c
je 0x160ebe
movzx edi, word [ecx + edx + 2]
add edx, 2
test di, di
jne 0x160b60
lea eax, [esp + 0x60]
mov ebx, eax
cmp byte [esp + 0x107], 0
jns 0x160b97
push dword [esp + 0x44]
call fcn.0014c890
lea eax, [esp + 0x64]
add esp, 4
cmp eax, ebx
jne 0x160c46
nop
mov dword [esp + 0x10], 0x3fac39f1
mov dword [esp + 0x14], 0x23b13d9b
mov dword [esp + 0x18], 0x27b4218b
mov dword [esp + 0x1c], 0x2bbe258d
mov dword [esp + 0x20], 0x2f2e29bb
lea eax, [esp + 0x26]
mov byte [eax], 0
mov word [eax - 2], 0
mov eax, 0x8cfc3dca
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x7303c246]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0xd
add edx, edx
xor ecx, 0xf2
sub edx, ecx
mov byte [esp + eax + 0x7303c246], dl
inc eax
cmp eax, 0x8cfc3de1
jne 0x160be0
movzx eax, word [esp + 0x10]
lea ebx, [esp + 0x60]
test ax, ax
je 0x160c41
lea ecx, [esp + 0x12]
lea ebx, [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x160c30
mov word [ebx], 0
mov edx, ebx
lea eax, [esp + 0x60]
sub edx, eax
mov ecx, edx
shr ecx, 2
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, edx
and ecx, 0xfffffffc
lea edi, [esi + ecx]
lea eax, [esp + ecx]
add eax, 0x60
mov dword [esp + 4], edx
shr edx, 1
and edx, 1
mov esi, eax
mov dword [esp + 0x44], edi
mov ecx, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x160c96
mov ecx, dword [esp + 4]
and ecx, 2
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x44]
mov byte [eax + ecx], dl
push 0xa
push 0xb
lea eax, [esp + 0xf8]
push eax
push dword [esp + 0x38]
call fcn.00162dd0
add esp, 0x10
mov dword [esp + 0x10], 0x4f535dfa
mov dword [esp + 0x14], 0xff9e889c
lea ecx, [esp + 0x26]
mov byte [ecx - 0xc], 0
mov word [ecx - 0xe], 0
xor ecx, ecx
nop
nop
mov edx, ecx
add dl, 0xd4
xor dl, byte [esp + ecx + 0x10]
add dl, 0xdc
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jne 0x160cd0
mov esi, dword [esp + 8]
add esi, dword [esp + 4]
movzx ecx, byte [esp + 0x10]
test cl, cl
lea ebx, [esp + 0x62]
je 0x160d0b
lea edx, [esp + 0x11]
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x160d00
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x160d2d
inc eax
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x160d20
jmp 0x160d31
mov edx, dword [esp + 4]
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x160d40
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x160d60
mov eax, 0xffffffff
jmp 0x160d69
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0014c880
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 8], eax
test cx, cx
je 0x160da1
add edi, 2
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x160d90
inc esi
mov word [eax], 0x2f
mov dword [esp + 0x10], 0xd704c93b
mov dword [esp + 0x14], 0xd369d579
mov dword [esp + 0x18], 0xdf62d122
mov dword [esp + 0x1c], 0xdb66dd64
mov dword [esp + 0x20], 0xd9d8
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x2e
xor dl, byte [esp + ecx + 0x10]
add dl, 0x1a
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x14
jne 0x160de0
add eax, 2
movzx ecx, word [esp + 0x60]
test cx, cx
je 0x160e21
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x160e10
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x160e51
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x160e40
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x30]
call fcn.00145750
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x160e70
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0014d220
mov dword [esp + 4], eax
push edi
call fcn.001457e0
add esp, 4
push ebx
call fcn.0014c890
add esp, 4
lea ebx, [esp + 0x34]
push dword [esp + 0x30]
call fcn.00144970
add esp, 4
mov eax, dword [esp + 0xc]
and al, 1
or al, byte [esp + 4]
jmp 0x1604b4
lea ebx, [esp + 0x60]
cmp edx, 0x14
je 0x160f42
lea ecx, [edx - 0x14]
sar ecx, 1
test dl, 2
jne 0x160ed7
lea edi, [esp + 0x60]
jmp 0x160efb
mov ebx, edx
sub ebx, ecx
add ebx, 0xffffffeb
mov edi, esi
movzx esi, word [eax]
xor ecx, ecx
test si, si
setne cl
lea eax, [eax + ecx*2]
mov word [esp + 0x60], si
mov esi, edi
lea edi, [esp + 0x62]
mov ecx, ebx
lea ebx, [esp + 0x62]
cmp edx, 0x16
je 0x160f42
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ebx, ebx
test dx, dx
setne bl
mov word [edi], dx
lea edx, [eax + ebx*2]
movzx esi, word [eax + ebx*2]
xor eax, eax
test si, si
setne al
lea eax, [edx + eax*2]
mov word [edi + 2], si
add edi, 4
add ecx, 0xfffffffe
jne 0x160f10
mov ebx, edi
mov esi, dword [esp + 8]
mov word [ebx], 0
cmp byte [esp + 0x2d0], 0
jne 0x160ffb
mov edi, esi
mov dword [esp + 0x10], 0xcfb7c9e8
mov dword [esp + 0x14], 0xc3a5cd5e
mov dword [esp + 0x18], 0xc75dc153
mov dword [esp + 0x1c], 0xfb63c556
mov dword [esp + 0x20], 0xff6df96c
mov word [esp + 0x24], 0xfdfc
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x684f6452
mov ecx, 0xad
nop
nop
movzx edx, byte [esp + eax - 0x684f6442]
mov esi, ecx
xor esi, eax
and esi, edx
xor esi, eax
add esi, 0xf6730a65
mov edx, esi
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [esp + eax - 0x684f6442], dl
inc eax
dec ecx
cmp eax, 0x684f646d
jne 0x160fa0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x160ff4
lea ecx, [esp + 0x12]
mov esi, edi
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x160fe1
jmp 0x160ff6
mov esi, edi
mov word [ebx], 0
lea eax, [esp + 0x60]
cmp byte [esp + 0x107], 0
jns 0x160b97
jmp 0x160b87
xor ebx, ebx
mov edi, esi
lea ecx, [esp + 0x34]
call fcn.0017e650
mov dword [esp + 0x140], 0xff464357
mov byte [esp + 0x144], 0xc8
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
mov eax, 0x6748afd3
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x6748ae93]
xor edx, eax
mov esi, edx
mov ecx, edx
xor ecx, 0xfb9490e0
add ecx, edx
and edx, 0xe0
and esi, 0x4482f1f
sub ecx, esi
add edx, ecx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [esp + eax - 0x6748ae93], cl
inc eax
cmp eax, 0x6748afdd
jne 0x161050
movzx eax, byte [esp + 0x140]
test al, al
je 0x1610bb
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1610b0
mov byte [edi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0xc]
and bl, 1
test eax, eax
je 0x161014
cmp eax, dword [esp + 0x50]
je 0x161014
push eax
call fcn.0014c890
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x161014