Function at 0x41f860
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2d8
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x138], 0x7fc6d9d7
mov byte [esp + 0x13c], 0x48
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
mov ecx, 0x65923414
mov edx, 0x1a6dcbec
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x659232dc]
mov edi, esi
and edi, 0xfffffff6
xor edi, 0x588fd8f6
mov ebx, esi
xor ebx, 0x588fd8f6
or esi, 9
and esi, ebx
or esi, edi
mov edi, edx
and edi, 0x180dc8f6
mov ebx, edx
or ebx, 0xa7702709
add ebx, ecx
or ebx, edi
xor ebx, esi
mov esi, ebx
not esi
and esi, 0x60
and ebx, 0x9f
sub ebx, esi
inc bl
mov byte [esp + ecx - 0x659232dc], bl
inc ecx
dec edx
cmp ecx, 0x6592341f
jne 0x41f8c0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x138]
test cl, cl
je 0x41f94b
lea edx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41f940
mov byte [esi], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x50]
lea edi, [esp + 0x30]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00421d90
add esp, 0x18
test al, al
je 0x420ad3
mov dword [esp + 0x138], 0x7119efe8
mov byte [esp + 0x13c], 0x7c
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
mov eax, 0x6f2fad6a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x6f2fac32]
lea edx, [eax - 0x6f2fad00]
and edx, ecx
or ecx, eax
xor ecx, edx
mov edx, ecx
and edx, 0x6d
xor ecx, 0xed
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x6f2fac32], cl
inc eax
cmp eax, 0x6f2fad76
jne 0x41f9d0
movzx eax, byte [esp + 0x138]
test al, al
je 0x41fa2b
lea ecx, [esp + 0x139]
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 0x41fa20
mov byte [esi], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x130], eax
mov dword [esp + 0x138], 0xaea65299
mov dword [esp + 0x13c], 0xb5b25788
mov dword [esp + 0x140], 0x938f865d
mov dword [esp + 0x144], 0x90919293
mov dword [esp + 0x148], 0xbe87a560
mov dword [esp + 0x14c], 0xb5ba848e
mov dword [esp + 0x150], 0xa4a5a6a7
mov dword [esp + 0x154], 0xbca99196
mov dword [esp + 0x158], 0x86ab76ab
mov dword [esp + 0x15c], 0x707092a3
mov dword [esp + 0x160], 0x92b98cac
mov dword [esp + 0x164], 0xbba0957a
mov dword [esp + 0x168], 0x44768640
mov dword [esp + 0x16c], 0x84854642
mov dword [esp + 0x170], 0x83594e8f
mov dword [esp + 0x174], 0x40414243
mov dword [esp + 0x178], 0x6e63656b
mov dword [esp + 0x17c], 0x58557c45
mov dword [esp + 0x180], 0x544f6d78
mov dword [esp + 0x184], 0x59515253
mov dword [esp + 0x188], 0x6c6d6e7a
mov dword [esp + 0x18c], 0xae47626b
mov dword [esp + 0x190], 0x6f6a4a6e
mov dword [esp + 0x194], 0x4d6e4d72
mov dword [esp + 0x198], 0x7c7d7e7f
mov dword [esp + 0x19c], 0x4676724f
mov dword [esp + 0x1a0], 0x416b4677
mov dword [esp + 0x1a4], 0x707d4c7b
mov dword [esp + 0x1a8], 0xc0d0e0f
mov dword [esp + 0x1ac], 0x1c090a0b
mov dword [esp + 0x1b0], 0x1a37ca0b
mov dword [esp + 0x1b4], 0x10203
mov dword [esp + 0x1b8], 0x2731202d
mov dword [esp + 0x1bc], 0x132a161b
mov byte [esp + 0x1c0], 0x48
mov byte [esp + 0x1c5], 0
mov dword [esp + 0x1c1], 0
mov eax, 0x732ee2d0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x732ee198]
mov ecx, eax
and ecx, edi
add ecx, ecx
mov edx, edi
sub edx, ecx
add edx, eax
mov ebx, edx
not ebx
and ebx, 1
or edx, 0xfffffffe
add edx, edi
sub edx, ecx
lea ecx, [eax + edx]
add ecx, 0xc01591f1
mov edx, ebx
and edx, ecx
xor ebx, ecx
lea ecx, [ebx + edx*2]
mov byte [esp + eax - 0x732ee198], cl
inc eax
cmp eax, 0x732ee35e
jne 0x41fbf0
mov dword [esp + 0x58], 0xf4320206
mov dword [esp + 0x5c], 0x9cd14f6c
mov dword [esp + 0x60], 0x8990d42c
mov dword [esp + 0x64], 0x6d6e6f60
mov dword [esp + 0x68], 0x61f66ae7
mov dword [esp + 0x6c], 0x7d892020
mov dword [esp + 0x70], 0x91929394
mov dword [esp + 0x74], 0xd58e28d8
mov dword [esp + 0x78], 0xf8b25711
mov dword [esp + 0x7c], 0x71724afa
mov dword [esp + 0x80], 0x75767770
mov dword [esp + 0x84], 0x797a7b74
mov dword [esp + 0x88], 0x4c2f2f6
mov dword [esp + 0x8c], 0x2feef9c
mov dword [esp + 0x90], 0xba07fb46
mov dword [esp + 0x94], 0xbdbebfb0
mov dword [esp + 0x98], 0xf15ae4f4
mov dword [esp + 0x9c], 0xa58aeb0f
mov dword [esp + 0xa0], 0xa12510ec
mov dword [esp + 0xa4], 0x85aeafa0
mov dword [esp + 0xa8], 0xa9aaab44
mov dword [esp + 0xac], 0x9f639fa8
mov dword [esp + 0xb0], 0xa3679bf4
mov dword [esp + 0xb4], 0x676b97f8
mov dword [esp + 0xb8], 0xd9dadbdc
mov dword [esp + 0xbc], 0xe98a74ac
mov dword [esp + 0xc0], 0xf175b4c4
mov dword [esp + 0xc4], 0xcd440688
mov dword [esp + 0xc8], 0xc9cacbcc
mov dword [esp + 0xcc], 0xbdf6f7c8
mov dword [esp + 0xd0], 0xcaf3f543
mov dword [esp + 0xd4], 0xfdfefff0
mov dword [esp + 0xd8], 0xd58e4eb4
mov dword [esp + 0xdc], 0xab9aff8
mov byte [esp + 0xe0], 0xe4
mov byte [esp + 0xe3], 0
mov word [esp + 0xe1], 0
mov eax, 0x6f3f8deb
mov ecx, 0x14
nop
movzx edi, byte [esp + eax - 0x6f3f8d93]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
mov edi, edx
and edi, 1
or edx, 1
add edx, edi
add dl, 0x68
mov byte [esp + eax - 0x6f3f8d93], dl
inc eax
dec ecx
cmp eax, 0x6f3f8e77
jne 0x41fdb0
lea eax, [esp + 0x138]
lea edx, [esp + 0x58]
lea ecx, [esp + 0x128]
push eax
push 0x88
push edx
lea ebx, [esp + 0x3c]
push ebx
call fcn.0043ec20
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x420ae1
mov dword [esp + 0x138], 0x16895a4
mov byte [esp + 0x13c], 0xf4
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0xa752127e
movzx ecx, byte [esp + eax + 0x58adeeba]
xor ecx, eax
lea edx, [ecx + 0x89]
mov edi, ecx
not edi
and edi, 1
and edx, 0xfe
and ecx, 1
or ecx, edx
lea ecx, [ecx + edi*2]
mov byte [esp + eax + 0x58adeeba], cl
inc eax
cmp eax, 0xa7521286
jne 0x41fe40
movzx eax, byte [esp + 0x138]
test al, al
je 0x41fe9b
lea ecx, [esp + 0x139]
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 0x41fe90
mov byte [esi], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push ebx
call fcn.0043ec20
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
or eax, edx
je 0x420ae1
mov dword [esp + 0x138], 0xe14c4476
mov byte [esp + 0x13c], 0xf4
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
mov eax, 0xd6
mov ecx, 9
nop
nop
nop
movzx edx, byte [esp + eax + 0x62]
mov edi, ecx
and edi, 0x14
mov ebx, eax
and ebx, 0xeb
or ebx, edi
mov edi, edx
and edi, 0x14
or edi, 0x48
and edx, 0xffffffeb
xor edx, ebx
xor edx, edi
xor dl, 0x5c
add dl, 0xd2
mov byte [esp + eax + 0x62], dl
inc eax
dec ecx
cmp eax, 0xe0
jne 0x41ff00
movzx eax, byte [esp + 0x138]
test al, al
je 0x41ff5b
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ff50
mov byte [esi], 0
lea eax, [esp + 0x118]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x30]
push 0
push 8
push eax
push edx
call fcn.0043e100
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x420ae1
mov dword [esp + 0x138], 0xeb42435f
mov byte [esp + 0x13c], 0xf0
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
mov eax, 0x5ee9d5
mov ecx, 0x3fa1162a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x5ee89d]
mov edi, ecx
and edi, 0x25200005
mov ebx, eax
and ebx, 0x46213a
or ebx, edi
xor ebx, edx
mov edx, ebx
not edx
and edx, 1
xor ebx, 0xc4
lea edx, [ebx + edx*2]
add dl, 0xd6
mov byte [esp + eax - 0x5ee89d], dl
inc eax
dec ecx
cmp eax, 0x5ee9df
jne 0x41ffc0
movzx eax, byte [esp + 0x138]
test al, al
je 0x42002b
lea ecx, [esp + 0x139]
nop
nop
nop
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 0x420020
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xe8], ecx
cmp eax, ecx
je 0x420ae1
mov dword [esp + 8], 0
lea edi, [esp + 0x30]
jmp 0x420095
xor ebx, ebx
lea edi, [esp + 0x30]
push dword [esp + 0x2c]
call fcn.00404e10
add esp, 4
mov eax, dword [esp + 8]
and al, 1
or al, bl
mov dword [esp + 8], eax
mov eax, dword [esp + 0xec]
add eax, 8
cmp eax, dword [esp + 0xe8]
je 0x420bd5
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0xec], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
push 0x198
push 0
lea eax, [esp + 0x140]
push eax
call fcn.0040cc50
add esp, 0xc
xor ebx, ebx
jmp 0x4200de
lea edi, [esp + 0x30]
inc ebx
cmp ebx, 0xb
je 0x4202b0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x144]
push eax
push dword [esp + 0x3c]
push dword [esp + 0x18]
call fcn.0043dfa0
test eax, eax
js 0x4200d4
cmp byte [esp + 0x208], 0
sete al
xor al, 0x31
cmp byte [esp + 0x209], 0
mov byte [esp + 0x10], al
sete cl
xor cl, 0x31
mov byte [esp + 0x11], cl
cmp byte [esp + 0x20a], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x12], cl
cmp byte [esp + 0x2c8], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x13], cl
mov word [esp + 0x14], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x11]
inc ecx
test al, al
jne 0x420160
mov byte [esi + ecx], 0
movzx eax, byte [esp + 0x20a]
test al, al
jne 0x4202d0
mov edx, dword [esp + 0x17c]
or edx, dword [esp + 0x178]
je 0x4202d0
add esi, ecx
mov dword [esp + 0x58], 0x91372803
mov byte [esp + 0x5c], 0x8c
mov dword [esp + 0x5d], 0
mov eax, 0xdd
lea ecx, [esp + 0x58]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ecx]
lea edx, [edi + 0x40]
or edx, eax
and edi, eax
not edx
or edx, edi
add dl, 0x56
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0xd4
jne 0x4201c0
movzx eax, byte [esp + 0x58]
test al, al
je 0x4201fb
lea ecx, [esp + 0x59]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4201f0
mov byte [esi], 0
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x58], 0xff676980
mov dword [esp + 0xf0], 0xe8ebeae5
mov eax, 0x8d176d27
nop
nop
movzx ecx, byte [esp + eax + 0x72e893c9]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x3d
mov byte [esp + eax + 0x72e893c9], cl
inc eax
cmp eax, 0x8d176d2b
jne 0x420220
mov eax, dword [0x44fe80]
test eax, eax
je 0x4200d0
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov edi, dword [0x44fe84]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x420283
inc edx
cmp eax, edx
jne 0x420270
jmp 0x4200d0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4200d0
lea ecx, [esp + 0x58]
push ecx
push 0
push 2
push dword [0x44fe88]
push eax
call fcn.00440600
add esp, 0x14
jmp 0x4200d0
movzx eax, byte [esp + 0x20a]
test al, al
jne 0x4202da
jmp 0x42007e
add esi, ecx
test al, al
je 0x42007e
call fcn.00404fd0
mov dword [esp + 0x2c], eax
push eax
call fcn.00404990
add esp, 4
mov edi, eax
mov dword [esp + 0x58], 0x8b29252f
mov byte [esp + 0x5c], 0x80
lea eax, [esp + 0x5d]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
xor ecx, ecx
mov ebx, eax
and ebx, 2
mov edx, ecx
xor edx, 0xe1
add edx, ebx
xor dl, byte [esp + ecx + 0x58]
add dl, 0x9b
mov byte [esp + ecx + 0x58], dl
inc ecx
add eax, 2
cmp ecx, 0xc
jne 0x420310
movzx eax, byte [esp + 0x58]
test al, al
je 0x42034b
lea ecx, [esp + 0x59]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420340
mov byte [esi], 0
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov ecx, eax
or ecx, edx
je 0x4203a0
mov dword [esp + 4], edi
lea edi, [esp + 0x30]
mov ecx, edi
push 0
push 0
push 0x40
lea ebx, [esp + 0x64]
push ebx
push edx
push eax
call fcn.0043dfa0
test eax, eax
js 0x4203a4
mov ecx, edi
mov edx, ebx
mov edi, dword [esp + 4]
push edi
call fcn.00422610
add esp, 4
jmp 0x4203aa
xor eax, eax
jmp 0x4203aa
xor eax, eax
mov edi, dword [esp + 4]
mov dword [esp + 0x58], 0xc7a8a0bb
mov byte [esp + 0x5c], 0xd8
lea ecx, [esp + 0x5d]
mov byte [ecx + 4], 0
mov dword [ecx], 0
mov ecx, 0x1c8f244f
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x1c8f23f7]
mov ebx, ecx
and ebx, edx
add ebx, ebx
sub edx, ebx
add edx, ecx
mov ebx, edx
and ebx, 0x74
xor edx, 0x74
lea edx, [edx + ebx*2]
inc dl
mov byte [esp + ecx - 0x1c8f23f7], dl
inc ecx
cmp ecx, 0x1c8f2459
jne 0x4203d0
movzx ecx, byte [esp + 0x58]
test cl, cl
je 0x42041b
lea edx, [esp + 0x59]
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x420410
mov byte [esi], 0
test al, al
je 0x420060
push edi
call fcn.00404dd0
add esp, 4
test eax, eax
je 0x4205a0
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x294]
add eax, 0x28
adc edx, 0
lea edi, [esp + 0x30]
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043dfa0
test eax, eax
js 0x42076b
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x114]
push ebx
push edx
push eax
call fcn.0043dfa0
test eax, eax
js 0x42076b
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0xfc]
push edi
push edx
push eax
call fcn.0043dfa0
test eax, eax
js 0x42076b
cmp byte [esp + 0x107], 0
lea eax, [esp + 0xf0]
mov dword [esp + 0xc], eax
js 0x4205a7
mov dword [esp + 0x10], 0x3fa9398d
mov dword [esp + 0x14], 0x23b43d99
mov dword [esp + 0x18], 0x27e221c0
mov dword [esp + 0x1c], 0x2bbe2585
mov dword [esp + 0x20], 0x2f922989
mov word [esp + 0x24], 0x2d2c
mov dword [esp + 0x26], 0
mov eax, 0x662428b5
lea ecx, [esp + 0x10]
nop
nop
nop
movzx edx, byte [ecx]
mov edi, eax
or edi, edx
lea ebx, [eax - 0x66242800]
and ebx, edx
lea edx, [edi + edi]
not edx
add edx, edi
or edx, ebx
add dl, 0x8e
mov byte [ecx], dl
dec eax
inc ecx
cmp eax, 0x6624289b
jne 0x420530
movzx edi, word [esp + 0x10]
test di, di
je 0x4205dd
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, ecx
mov dword [esp + 4], ecx
jmp 0x420578
movzx edi, word [eax]
test di, di
je 0x4205f2
movzx ebx, word [edx]
test bx, bx
je 0x4205e7
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x420598
mov dword [esp + 4], ecx
mov edx, ecx
je 0x420570
lea eax, [esp + 0x10]
jmp 0x420570
mov bl, 1
jmp 0x420062
mov ecx, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
mov eax, ecx
or eax, edi
je 0x42076b
mov eax, dword [esp + 0xf8]
mov ebx, eax
inc ebx
mov dword [esp + 4], ecx
jns 0x420697
mov eax, 0xffffffff
jmp 0x42069e
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x58]
jmp 0x420604
lea eax, [esp + 0x58]
mov ebx, eax
jmp 0x420749
lea eax, [esp + 0x58]
mov ebx, eax
mov edx, dword [esp + 4]
test edx, edx
je 0x420749
movzx edi, word [edx + 0x14]
mov ebx, eax
test di, di
je 0x420749
lea ecx, [edx + 0x14]
mov dword [esp + 4], ecx
xor ecx, ecx
nop
nop
nop
nop
cmp di, 0x5c
je 0x42063a
movzx edi, word [edx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x420620
mov ebx, eax
jmp 0x420749
mov ebx, eax
test ecx, ecx
mov edx, dword [esp + 4]
je 0x420744
sar ecx, 1
mov edi, ecx
and edi, 3
je 0x4206e4
mov dword [esp + 0xe4], edi
xor edi, edi
mov ebx, eax
movzx eax, word [edx]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edx, [edx + eax*2]
movzx eax, word [esp + 4]
mov word [ebx], ax
add ebx, 2
inc edi
cmp dword [esp + 0xe4], edi
jne 0x420660
mov eax, ecx
sub eax, edi
mov edi, eax
lea eax, [esp + 0x58]
jmp 0x4206e8
lea eax, [eax*2 + 2]
push eax
call fcn.0040cbd0
add esp, 4
mov edx, ebx
and edx, 0xfffffffd
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
xor ecx, 2
imul ecx, edx
add ebx, ecx
lea ecx, [esp + 0x30]
push 0
push 0
push ebx
mov dword [esp + 0x18], eax
push eax
push edi
push dword [esp + 0x18]
call fcn.0043dfa0
test eax, eax
jns 0x4204ed
jmp 0x42076b
mov ebx, eax
mov edi, ecx
dec ecx
cmp ecx, 3
jb 0x420744
movzx eax, word [edx]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edx, [eax + edx*2]
mov word [ebx + 6], cx
add ebx, 8
add edi, 0xfffffffc
jne 0x4206ee
lea eax, [esp + 0x58]
mov word [ebx], 0
cmp byte [esp + 0x107], 0
jns 0x420763
push dword [esp + 0xc]
call fcn.0040cbe0
lea eax, [esp + 0x5c]
add esp, 4
cmp eax, ebx
jne 0x420836
mov dword [esp + 0x10], 0x1f007cf
mov dword [esp + 0x14], 0xdf303ed
mov dword [esp + 0x18], 0x9f80fe5
mov dword [esp + 0x1c], 0x15f60be3
mov dword [esp + 0x20], 0x111617e5
mov word [esp + 0x24], 0
mov eax, 0x50421bc1
mov edx, 0xafbde43e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x50421bb1]
mov dword [esp + 4], ecx
mov edi, eax
and edi, ecx
add edi, edi
sub edi, ecx
add edi, edx
and edi, eax
mov ebx, edi
and ebx, 0x50421bfd
mov ecx, edi
and ecx, 2
or edi, 2
imul edi, ecx
xor ecx, 2
imul ecx, ebx
add edi, ecx
lea ecx, [edx + 0x50421c00]
and ecx, edi
mov ebx, edi
not ebx
and ebx, eax
sub ebx, ecx
add bl, byte [esp + 4]
add bl, 0x3b
mov byte [esp + eax - 0x50421bb1], bl
inc eax
dec edx
cmp eax, 0x50421bd7
jne 0x4207b0
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x58]
mov ebx, edx
test ax, ax
je 0x420831
lea ecx, [esp + 0x12]
mov ebx, edx
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420820
mov word [ebx], 0
mov edx, ebx
lea eax, [esp + 0x58]
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 eax, edx
not eax
or eax, 0xfffffffc
add eax, edx
lea edi, [esi + eax]
inc edi
add eax, esp
add eax, 0x59
mov ecx, edx
shr ecx, 1
and ecx, 1
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x420888
mov eax, edx
and eax, 2
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + eax]
mov edi, dword [esp + 4]
mov byte [edi + eax], cl
mov dword [esp + 0x10], 0x6b57a5fe
mov dword [esp + 0x14], 0xf502
mov eax, 0x40a0697e
mov ecx, 0x3f5f9681
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x40a0696e]
lea ebx, [edi + edi]
not ebx
add ebx, edi
or ebx, ecx
or edi, eax
and edi, ebx
add edi, 0xbcddf089
mov ebx, edi
and ebx, 1
xor edi, 1
lea ebx, [edi + ebx*2]
mov byte [esp + eax - 0x40a0696e], bl
inc eax
dec ecx
cmp eax, 0x40a06986
jne 0x4208b0
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x42090b
lea ecx, [esp + 0x11]
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 0x420900
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x420920
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420940
mov eax, 0xffffffff
jmp 0x420949
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040cbd0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x420981
add edi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x420970
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0xc170c715
mov dword [esp + 0x14], 0xcd5bc36f
mov dword [esp + 0x18], 0xc952cf1a
mov dword [esp + 0x1c], 0xb556cb50
mov dword [esp + 0x20], 0xb7b4
mov ecx, 0x1a35e8b1
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x1a35e8a1]
xor edx, ecx
mov edi, edx
and edi, 0x18306088
mov eax, edx
and eax, 2
mov ebx, eax
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, eax
add edi, ebx
mov eax, edx
xor eax, 0x7cf2748a
mov ebx, edi
and ebx, eax
xor eax, edi
lea ebx, [eax + ebx*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + ecx - 0x1a35e8a1], bl
inc ecx
cmp ecx, 0x1a35e8c5
jne 0x4209c0
mov eax, dword [esp + 0xc]
add eax, 2
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x420a41
lea edx, [esp + 0x5a]
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 0x420a30
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x420a71
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 0x420a60
mov word [eax], 0
xor ebx, ebx
push dword [esp + 0x2c]
call fcn.00405bd0
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx], 0
lea ebx, [ebx + 1]
jne 0x420a90
lea eax, [edi + ebx]
dec eax
mov edx, edi
not edx
and edx, eax
xor eax, edi
add edx, edx
sub edx, eax
mov ecx, dword [ebp + 8]
push edx
push edi
push dword [esp + 0xc]
call fcn.0040d5f0
mov ebx, eax
push edi
call fcn.00405c60
add esp, 4
push dword [esp + 4]
call fcn.0040cbe0
add esp, 4
jmp 0x420062
mov dword [esp + 4], esi
mov dword [esp + 8], 0
jmp 0x420aed
mov dword [esp + 8], 0
mov dword [esp + 4], esi
lea ecx, [esp + 0x30]
call fcn.0043d820
mov dword [esp + 0x138], 0x9f060337
mov byte [esp + 0x13c], 0x88
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
mov eax, 0x51eff763
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x51eff62b]
mov ecx, eax
and ecx, edx
add ecx, ecx
add edx, eax
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov edx, ecx
and edx, 0xd59c1342
mov edi, ecx
xor edi, 0xd59c1342
lea ebx, [edi + edx*2]
mov esi, 0x6f
sub esi, ebx
lea edx, [edi + edx*2]
add edx, 0x10
and esi, 0x42
and edx, 0xbc
sub edx, esi
and ecx, 1
or ecx, edx
inc cl
mov byte [esp + eax - 0x51eff62b], cl
inc eax
cmp eax, 0x51eff76e
jne 0x420b30
movzx eax, byte [esp + 0x138]
test al, al
je 0x420bbd
lea ecx, [esp + 0x139]
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420bb0
jmp 0x420bc1
mov edx, dword [esp + 4]
mov byte [edx], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
mov eax, dword [esp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 8]
and cl, 1
mov dword [esp + 8], ecx
test eax, eax
je 0x420ae9
cmp eax, dword [esp + 0x48]
je 0x420ae9
push eax
call fcn.0040cbe0
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x420ae9