Function at 0x41f940
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 + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x138], 0xc9566f65
mov byte [esp + 0x13c], 0xc4
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
xor ecx, ecx
mov edx, 0x16fd404f
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x138]
mov edi, edx
and edi, 0x10484003
mov ebx, ecx
and ebx, 0xc
or ebx, edi
xor ebx, esi
mov esi, ebx
xor esi, 0x4c
and ebx, 1
add esi, 0x71
or esi, 1
sub ebx, esi
mov byte [esp + ecx + 0x138], bl
inc ecx
dec edx
cmp ecx, 0xb
jne 0x41f9a0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x138]
test cl, cl
je 0x41f9fb
lea edx, [esp + 0x139]
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41f9f0
mov byte [esi], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x68]
lea edi, [esp + 0x2c]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00422130
add esp, 0x18
test al, al
je 0x420b88
mov dword [esp + 0x138], 0x41f9f7f8
mov byte [esp + 0x13c], 0x54
mov dword [esp + 0x13d], 0
mov eax, 0xee
mov ecx, 0x639afc11
nop
movzx edi, byte [esp + eax + 0x4a]
mov ebx, ecx
xor ebx, edi
lea edx, [edi + edi]
not edx
add edx, edi
add ebx, edi
not edi
and edi, eax
add ebx, edi
mov edi, 0xfe
sub edi, ebx
and edx, ecx
not edx
and edx, edi
add dl, 0x5a
mov byte [esp + eax + 0x4a], dl
inc eax
dec ecx
cmp eax, 0xf7
jne 0x41fa70
movzx eax, byte [esp + 0x138]
test al, al
je 0x41facb
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fac0
mov byte [esi], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x130], eax
mov dword [esp + 0x70], 0xfeac83e3
mov dword [esp + 0x74], 0xb8e1bb86
mov dword [esp + 0x78], 0x8af8e896
mov dword [esp + 0x7c], 0xe0e1e2e3
mov dword [esp + 0x80], 0xe2bcedbb
mov dword [esp + 0x84], 0x9796818f
mov dword [esp + 0x88], 0xdcdddedf
mov dword [esp + 0x8c], 0xbf9edd80
mov dword [esp + 0x90], 0x85a89fdd
mov dword [esp + 0x94], 0xcec1c199
mov dword [esp + 0x98], 0x86c2b3a5
mov dword [esp + 0x9c], 0xd588a8ac
mov dword [esp + 0xa0], 0x90d2c0a2
mov dword [esp + 0xa4], 0x314d312f
mov dword [esp + 0xa8], 0x3a446739
mov dword [esp + 0xac], 0x30313233
mov dword [esp + 0xb0], 0x66536d6b
mov dword [esp + 0xb4], 0x283d442d
mov dword [esp + 0xb8], 0x2c577558
mov dword [esp + 0xbc], 0x29212223
mov dword [esp + 0xc0], 0x2425265f
mov dword [esp + 0xc4], 0x5116691b
mov dword [esp + 0xc8], 0x6e126516
mov dword [esp + 0xcc], 0x465b196e
mov dword [esp + 0xd0], 0x14151617
mov dword [esp + 0xd4], 0x6e1e0257
mov dword [esp + 0xd8], 0x510b5e0f
mov dword [esp + 0xdc], 0x15640b
mov dword [esp + 0xe0], 0x4050607
mov dword [esp + 0xe4], 0x4797a7b
mov dword [esp + 0xe8], 0x7a2f2a6b
mov dword [esp + 0xec], 0x70717273
mov dword [esp + 0xf0], 0x2f011025
mov dword [esp + 0xf4], 0x633a7e6b
mov byte [esp + 0xf8], 0xa8
mov byte [esp + 0xfb], 0
mov word [esp + 0xf9], 0
mov eax, 0xcf0242cc
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x30fdbda4]
mov edx, ecx
not edx
or edx, eax
add dl, dl
add dl, cl
neg dl
movzx ecx, dl
add ecx, eax
add cl, 2
mov byte [esp + eax + 0x30fdbda4], cl
inc eax
cmp eax, 0xcf024358
jne 0x41fc80
mov dword [esp + 0x138], 0x589e9292
mov dword [esp + 0x13c], 0x85bfd20
mov dword [esp + 0x140], 0x370c5898
mov dword [esp + 0x144], 0xdbdadddc
mov dword [esp + 0x148], 0xef9ada55
mov dword [esp + 0x14c], 0xb136cac
mov dword [esp + 0x150], 0xefeee1e0
mov dword [esp + 0x154], 0xa31a64a4
mov dword [esp + 0x158], 0x94de2567
mov dword [esp + 0x15c], 0x27263a96
mov dword [esp + 0x160], 0x2b2a2524
mov dword [esp + 0x164], 0x2f2e2928
mov dword [esp + 0x168], 0x884ea2a2
mov dword [esp + 0x16c], 0x8a4a3df0
mov dword [esp + 0x170], 0x29949d2
mov dword [esp + 0x174], 0xb0a0d0c
mov dword [esp + 0x178], 0x5ff63840
mov dword [esp + 0x17c], 0x133e599d
mov dword [esp + 0x180], 0x1f678458
mov dword [esp + 0x184], 0x331a1d1c
mov dword [esp + 0x188], 0x272619f0
mov dword [esp + 0x18c], 0x69b56d24
mov dword [esp + 0x190], 0x7db96900
mov dword [esp + 0x194], 0xb1bd6504
mov dword [esp + 0x198], 0x37362928
mov dword [esp + 0x19c], 0x1f7ea060
mov dword [esp + 0x1a0], 0x2fb77830
mov dword [esp + 0x1a4], 0x3bb0f674
mov dword [esp + 0x1a8], 0x47463938
mov dword [esp + 0x1ac], 0xb424544
mov dword [esp + 0x1b0], 0x524d47c9
mov dword [esp + 0x1b4], 0x4b4a4d4c
mov dword [esp + 0x1b8], 0x7b02de00
mov dword [esp + 0x1bc], 0xb2631d54
mov byte [esp + 0x1c0], 0x50
mov dword [esp + 0x1c1], 0
mov eax, 0xce
mov ecx, 0x31
nop
nop
mov edi, ecx
and edi, 0x4f
mov edx, eax
and edx, 0xb0
or edx, edi
xor dl, byte [esp + eax + 0x6a]
xor dl, 0x4f
add dl, 0xfa
mov byte [esp + eax + 0x6a], dl
inc eax
dec ecx
cmp eax, 0x15b
jne 0x41fe40
lea eax, [esp + 0x70]
lea edx, [esp + 0x138]
lea ecx, [esp + 0x128]
push eax
push 0x88
push edx
lea edi, [esp + 0x38]
push edi
call fcn.0043efe0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x420b88
mov dword [esp + 0x138], 0x76c6fa0
mov byte [esp + 0x13c], 0xf8
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
mov eax, 0x8c8042ff
nop
nop
nop
movzx ecx, byte [esp + eax + 0x737fbe39]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 4
xor ecx, 4
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x737fbe39], cl
inc eax
cmp eax, 0x8c80430b
jne 0x41fed0
movzx eax, byte [esp + 0x138]
test al, al
je 0x41ff2b
lea ecx, [esp + 0x139]
nop
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 0x41ff20
mov byte [esi], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push edi
call fcn.0043efe0
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
or eax, edx
je 0x420b88
mov dword [esp + 0x138], 0x71d4acde
mov byte [esp + 0x13c], 0x4c
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0x6d
mov ecx, 0x92
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0xa6]
mov edx, eax
xor edx, ecx
and edx, edi
xor edx, ecx
add dl, 0x26
mov byte [esp + ecx + 0xa6], dl
dec eax
inc ecx
cmp eax, 0x65
jne 0x41ff90
movzx eax, byte [esp + 0x138]
test al, al
je 0x41ffdb
lea ecx, [esp + 0x139]
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 0x41ffd0
mov byte [esi], 0
lea eax, [esp + 0x118]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x2c]
push 0
push 8
push eax
push edx
call fcn.0043e5e0
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
je 0x420b88
mov dword [esp + 0x138], 0x4bd2d3a7
mov byte [esp + 0x13c], 0x40
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
mov eax, 0xdd867691
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x22798aa7]
mov edi, eax
and edi, ecx
mov ebx, edi
and ebx, 0xffffffbd
mov edx, edi
or edx, 0xfffffffd
inc edx
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, ecx
sub edx, edi
add ecx, eax
add edx, eax
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
add cl, 0x2a
mov byte [esp + eax + 0x22798aa7], cl
inc eax
cmp eax, 0xdd86769b
jne 0x420040
movzx eax, byte [esp + 0x138]
test al, al
je 0x4200ab
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4200a0
mov byte [esi], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x100], ecx
cmp eax, ecx
je 0x420b88
mov dword [esp + 0xc], 0
lea edi, [esp + 0x2c]
jmp 0x420111
xor ebx, ebx
push dword [esp + 0x28]
call fcn.00404bd0
add esp, 4
mov eax, dword [esp + 0xc]
and al, 1
or al, bl
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x104]
add eax, 8
cmp eax, dword [esp + 0x100]
je 0x420c5f
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x104], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
push 0x198
push 0
lea eax, [esp + 0x140]
push eax
call fcn.0040cd50
add esp, 0xc
xor ebx, ebx
jmp 0x42014e
lea edi, [esp + 0x2c]
inc ebx
cmp ebx, 0xb
je 0x4202f0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x144]
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
call fcn.0043e470
test eax, eax
js 0x420144
movzx eax, byte [esp + 0x208]
movzx ecx, byte [esp + 0x209]
or al, 0x30
mov byte [esp + 0x44], al
or cl, 0x30
mov byte [esp + 0x45], cl
movzx ecx, byte [esp + 0x20a]
or cl, 0x30
mov byte [esp + 0x46], cl
movzx ecx, byte [esp + 0x2c8]
or cl, 0x30
mov byte [esp + 0x47], cl
mov word [esp + 0x48], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x45]
inc ecx
test al, al
jne 0x4201c0
mov byte [esi + ecx], 0
cmp byte [esp + 0x20a], 0
jne 0x420300
add esi, ecx
mov dword [esp + 0x70], 0x9b7d446d
mov byte [esp + 0x74], 0xe0
lea eax, [esp + 0x75]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x6b833cd9
mov ecx, 0x28f98726
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x6b833c69]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0xc3
mov byte [esp + eax - 0x6b833c69], dl
inc eax
dec ecx
cmp eax, 0x6b833ce4
jne 0x420210
movzx eax, byte [esp + 0x70]
test al, al
je 0x42024b
lea ecx, [esp + 0x71]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420240
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x70], 0xbcbdbebf
lea eax, [esp + 0x75]
mov byte [eax + 1], 0
mov word [eax - 1], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x20
xor cl, byte [esp + eax + 0x70]
add cl, 0x60
mov byte [esp + eax + 0x70], cl
inc eax
cmp eax, 7
jne 0x420280
mov eax, dword [0x44f9d8]
test eax, eax
je 0x420140
mov ecx, dword [esp + 0x70]
xor edx, edx
mov edi, dword [0x44f9dc]
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x4202c3
inc edx
cmp eax, edx
jne 0x4202b0
jmp 0x420140
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x420140
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x44f9e0]
push eax
call fcn.00440440
add esp, 0x14
jmp 0x420140
cmp byte [esp + 0x20a], 0
jne 0x420302
jmp 0x4200fa
add esi, ecx
call fcn.00404d90
mov dword [esp + 0x28], eax
push eax
call fcn.00404750
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x70], 0x99c7c3f9
mov byte [esp + 0x74], 0x64
mov dword [esp + 0x75], 0
mov edi, 0x75c07f18
mov ebx, 0x8a3f80e7
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi - 0x75c07ea8]
mov dword [esp + 4], eax
mov edx, edi
and edx, eax
add edx, edx
sub edx, eax
add edx, ebx
and edx, edi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x3d
mul cl
mov ecx, eax
add cl, byte [esp + 4]
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, edi
add al, 0x88
mov byte [esp + edi - 0x75c07ea8], al
inc edi
dec ebx
cmp edi, 0x75c07f21
jne 0x420340
movzx eax, byte [esp + 0x70]
test al, al
je 0x4203c0
lea edx, [esp + 0x71]
lea ecx, [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x4203b0
jmp 0x4203c4
lea ecx, [esp + 0x2c]
mov byte [esi], 0
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
xor ebx, ebx
mov edi, eax
or edi, edx
je 0x420410
push 0
push 0
push 0x40
lea edi, [esp + 0x7c]
push edi
push edx
push eax
call fcn.0043e470
test eax, eax
js 0x420410
lea ecx, [esp + 0x2c]
mov edx, edi
push dword [esp + 8]
call fcn.00422920
add esp, 4
jmp 0x420412
xor eax, eax
mov dword [esp + 0x70], 0xb70686f
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
xor ecx, ecx
nop
nop
nop
nop
mov edi, ebx
and edi, 2
mov edx, ecx
xor edx, 1
add edx, edi
xor dl, byte [esp + ecx + 0x70]
add dl, 0xfb
mov byte [esp + ecx + 0x70], dl
inc ecx
add ebx, 2
cmp ecx, 0xc
jne 0x420430
movzx ecx, byte [esp + 0x70]
test cl, cl
je 0x420480
lea edx, [esp + 0x71]
lea edi, [esp + 0x2c]
nop
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 0x420470
jmp 0x420484
lea edi, [esp + 0x2c]
mov byte [esi], 0
test al, al
je 0x4200e0
push dword [esp + 8]
call fcn.00404b90
add esp, 4
test eax, eax
je 0x4205f0
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x294]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043e470
test eax, eax
js 0x4207d0
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.0043e470
test eax, eax
js 0x4207d0
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 + 0x1c]
push edi
push edx
push eax
call fcn.0043e470
test eax, eax
js 0x4207d0
cmp byte [esp + 0x27], 0
lea ebx, [esp + 0x10]
js 0x4205f7
mov dword [esp + 0x44], 0x299f2b7f
mov dword [esp + 0x48], 0x2d982f83
mov dword [esp + 0x4c], 0x3176334c
mov dword [esp + 0x50], 0x35823797
mov dword [esp + 0x54], 0x39663b93
mov dword [esp + 0x58], 0x3f38
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x87
xor cl, byte [esp + eax + 0x44]
add cl, 0x5d
mov byte [esp + eax + 0x44], cl
inc eax
cmp eax, 0x18
jne 0x420580
movzx edi, word [esp + 0x44]
test di, di
mov dword [esp + 0xfc], ebx
je 0x42062e
lea eax, [esp + 0x44]
mov edx, ebx
mov dword [esp + 4], ebx
jmp 0x4205c8
movzx edi, word [eax]
test di, di
je 0x420641
movzx ebx, word [edx]
test bx, bx
je 0x420636
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x4205e8
mov dword [esp + 4], ecx
mov edx, ecx
je 0x4205c0
lea eax, [esp + 0x44]
jmp 0x4205c0
mov bl, 1
jmp 0x4200e2
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, edx
or eax, edi
je 0x4207d0
mov eax, dword [esp + 0x18]
mov ecx, eax
and ecx, 1
xor eax, 1
lea ebx, [eax + ecx*2]
test ebx, ebx
mov dword [esp + 4], edx
jns 0x4206f0
mov eax, 0xffffffff
jmp 0x4206f3
mov eax, ebx
lea edx, [esp + 0x70]
jmp 0x420653
lea ebx, [esp + 0x70]
mov edx, ebx
jmp 0x4207a4
lea ebx, [esp + 0x70]
mov edx, ebx
mov eax, dword [esp + 4]
test eax, eax
je 0x4207a4
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x4207a4
lea ecx, [eax + 0x14]
mov dword [esp + 8], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x42068a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x420670
mov ebx, edx
jmp 0x4207a4
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 8]
je 0x42079f
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x420737
mov ebx, edx
xor edx, edx
mov dword [esp + 0x3c], eax
nop
nop
nop
mov edi, dword [esp + 8]
movzx eax, word [edi]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x4206b0
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x70]
mov edi, dword [esp + 8]
jmp 0x42073b
lea eax, [ebx + ebx]
push eax
call fcn.0040ccd0
add esp, 4
mov ecx, ebx
and ecx, 2
mov edx, ebx
or ebx, 2
imul ebx, ecx
xor ecx, 2
and edx, 0xfffffffd
imul edx, ecx
add ebx, edx
lea ecx, [esp + 0x2c]
push 0
push 0
push ebx
mov ebx, eax
push eax
push edi
push dword [esp + 0x18]
call fcn.0043e470
test eax, eax
jns 0x420548
jmp 0x4207d0
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x42079f
mov dword [esp + 4], eax
movzx eax, word [edi]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edi + ecx*2]
movzx ecx, word [edi + 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 edi, [eax + edx*2]
mov eax, dword [esp + 4]
mov word [ebx + 6], cx
add ebx, 8
add eax, 0xfffffffc
jne 0x420741
lea edx, [esp + 0x70]
mov word [ebx], 0
cmp byte [esp + 0x27], 0
mov edi, edx
jns 0x4207c0
push dword [esp + 0xfc]
call fcn.0040cce0
lea edi, [esp + 0x74]
add esp, 4
cmp edi, ebx
jne 0x420876
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0xd968db1b
mov dword [esp + 0x14], 0xdd6fdf7d
mov dword [esp + 0x18], 0xd160d365
mov dword [esp + 0x1c], 0xd562d76f
mov dword [esp + 0x20], 0xa9aaab65
mov byte [esp + 0x24], 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 + 0x10]
mov ebx, eax
and ebx, 0x1e
mov edi, ecx
xor edi, 0x42c23a2f
add edi, ebx
lea ebx, [edi + edi]
not ebx
add ebx, edi
xor ebx, edi
and ebx, edx
xor ebx, edi
add bl, 0x15
mov byte [esp + ecx + 0x10], bl
inc ecx
add eax, 2
cmp ecx, 0x15
jne 0x420810
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x70]
mov ebx, edi
test ax, ax
je 0x420871
lea ecx, [esp + 0x12]
mov ebx, edi
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 0x420860
mov word [ebx], 0
mov edx, ebx
sub edx, edi
mov ecx, edx
shr ecx, 2
mov eax, edi
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, 0x70
mov dword [esp + 8], edx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov edx, eax
mov dword [esp + 4], edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x4208c4
mov ecx, dword [esp + 8]
and ecx, 2
movzx eax, byte [eax + ecx]
mov edx, dword [esp + 4]
mov byte [edx + ecx], al
mov dword [esp + 0x10], 0x8ff3fd1a
mov word [esp + 0x14], 0x1d16
lea eax, [esp + 0x16]
mov byte [eax + 4], 0
mov dword [eax], 0
mov edi, 0x5319e7c5
mov edx, 0xace6183b
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi - 0x5319e7b5]
mov dword [esp + 4], ebx
mov eax, edx
or eax, ebx
lea ecx, [edx + 0x5319e800]
and ecx, ebx
not eax
or eax, ecx
lea ebx, [eax + eax]
not ebx
add ebx, eax
or ebx, edx
add ebx, edi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
add cl, byte [esp + 4]
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, edi
add al, 0x2b
mov byte [esp + edi - 0x5319e7b5], al
inc edi
dec edx
cmp edi, 0x5319e7d0
jne 0x4208f0
mov edx, dword [esp + 8]
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x42097b
lea ecx, [esp + 0x11]
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 0x420970
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 0x420990
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x4209b0
mov eax, 0xffffffff
jmp 0x4209b9
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040ccd0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x4209f1
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 0x4209e0
mov dword [esp + 8], eax
mov dword [esp + 0x3c], edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x41b04795
mov dword [esp + 0x14], 0x4ddb43af
mov dword [esp + 0x18], 0x49d24f9a
mov dword [esp + 0x1c], 0x75d64bd0
mov word [esp + 0x20], 0x7774
mov dword [esp + 0x22], 0
mov ecx, 0xe148afbb
mov eax, 0xee
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], eax
movzx eax, byte [esp + ecx + 0x1eb75055]
lea edi, [ecx + 0x66652456]
mov ebx, dword [esp + 4]
xor ebx, edi
and ebx, eax
xor ebx, edi
lea edx, [ebx + ebx]
not edx
add edx, ebx
and edx, edi
mov edi, edx
and edi, 0x47add43d
mov ebx, edx
or ebx, 0xfffffffd
inc ebx
imul ebx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
add ebx, eax
sub ebx, edx
add ebx, ecx
mov edi, ebx
xor edi, 0xfffffffe
mov edx, ebx
or edx, 1
and edx, edi
mov edi, edx
and edi, 0xfd
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
xor eax, 2
imul eax, edi
xor ebx, 1
add ebx, edx
add ebx, eax
mov byte [esp + ecx + 0x1eb75055], bl
mov eax, dword [esp + 4]
inc ecx
dec eax
cmp ecx, 0xe148afd1
jne 0x420a40
mov eax, dword [esp + 0x3c]
add eax, 2
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x420b01
lea edx, [esp + 0x72]
nop
nop
nop
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 0x420af0
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x420b31
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 0x420b20
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x28]
call fcn.004059b0
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x420b50
mov ecx, dword [ebp + 8]
push ebx
push edi
push dword [esp + 0x10]
call fcn.0040d990
mov ebx, eax
push edi
call fcn.00405a40
add esp, 4
push dword [esp + 8]
call fcn.0040cce0
add esp, 4
lea edi, [esp + 0x2c]
jmp 0x4200e2
mov dword [esp + 0xc], 0
lea ecx, [esp + 0x2c]
call fcn.0043dca0
mov dword [esp + 0x138], 0xe17a7145
mov byte [esp + 0x13c], 0xf4
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0x8082b8d6
mov ecx, 0x3f7d4729
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x7f7d4862]
mov ebx, eax
xor ebx, 0xb1745c7e
mov edx, eax
or edx, 0x82a081
and edx, ebx
mov ebx, ecx
and ebx, 0x3174442e
add edx, ebx
mov ebx, edi
and ebx, 0x7e
or ebx, 0xd079eb80
and edi, 0xffffff81
xor edi, ebx
xor edi, 0x610db7fe
mov ebx, edi
and ebx, edx
add ebx, ebx
sub edx, ebx
add edx, edi
add dl, 0xd2
mov byte [esp + eax + 0x7f7d4862], dl
inc eax
dec ecx
cmp eax, 0x8082b8de
jne 0x420bd0
movzx eax, byte [esp + 0x138]
test al, al
je 0x420c4b
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420c40
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, dword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xc]
and cl, 1
mov dword [esp + 0xc], ecx
test eax, eax
je 0x420b90
cmp eax, dword [esp + 0x60]
je 0x420b90
push eax
call fcn.0040cce0
add esp, 4
mov dword [esp + 0x5c], 0
jmp 0x420b90