Function at 0x420290
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, 0x2e0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0xc97e676d
mov byte [esp + 0x144], 0xec
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov ecx, 0x2c
mov edx, 0xd3
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x114]
mov esi, ebx
not esi
lea edi, [ebx + ebx]
not edi
add edi, ebx
or edi, esi
and edi, ecx
and ebx, edx
or ebx, edi
add bl, 0x24
mov byte [esp + ecx + 0x114], bl
inc ecx
dec edx
cmp ecx, 0x34
jne 0x4202f0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x42034b
lea edx, [esp + 0x141]
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 0x420340
mov byte [esi], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x48]
lea edx, [esp + 0x58]
lea edi, [esp + 0x38]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00422820
add esp, 0x18
test al, al
je 0x42155f
mov dword [esp + 0x140], 0x3fd7c5dc
mov byte [esp + 0x144], 0x48
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
lea eax, [esp + 0x140]
mov ecx, 0x176c188c
nop
nop
nop
nop
nop
movzx edx, byte [eax]
lea edi, [ecx - 0x176c1800]
and edi, edx
or edx, ecx
not edx
or edx, edi
mov edi, edx
xor edi, 0x8ae38540
and edx, 0xf51c7abf
add edx, edx
sub edx, edi
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x176c1881
jne 0x4203d0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42042b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420420
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], 0x828a9651
mov dword [esp + 0x144], 0x7d7e9b60
mov dword [esp + 0x148], 0x4773629d
mov dword [esp + 0x14c], 0x48494e4f
mov dword [esp + 0x150], 0x726b4598
mov dword [esp + 0x154], 0x7d767462
mov dword [esp + 0x158], 0x7c7d4243
mov dword [esp + 0x15c], 0x4471a9aa
mov dword [esp + 0x160], 0xaa4fb24f
mov dword [esp + 0x164], 0xb8b85e4f
mov dword [esp + 0x168], 0x4661ac4c
mov dword [esp + 0x16c], 0x675845a6
mov dword [esp + 0x170], 0x6cbaa278
mov dword [esp + 0x174], 0xacad6a6e
mov dword [esp + 0x178], 0xd7216aab
mov dword [esp + 0x17c], 0x18191e1f
mov dword [esp + 0x180], 0xc237c5cf
mov dword [esp + 0x184], 0x101d3c15
mov dword [esp + 0x188], 0xc33cd20
mov dword [esp + 0x18c], 0x1090e0f
mov dword [esp + 0x190], 0x4050a3e
mov dword [esp + 0x194], 0xca330e07
mov dword [esp + 0x198], 0x332e2e0a
mov dword [esp + 0x19c], 0x152a0d0e
mov dword [esp + 0x1a0], 0x34353a3b
mov dword [esp + 0x1a4], 0x12223ee3
mov dword [esp + 0x1a8], 0xf92fe233
mov dword [esp + 0x1ac], 0x28250c27
mov dword [esp + 0x1b0], 0x24252a2b
mov dword [esp + 0x1b4], 0x14212627
mov dword [esp + 0x1b8], 0xde0bee2f
mov dword [esp + 0x1bc], 0xd8d9dedf
mov dword [esp + 0x1c0], 0xbf9f80d
mov dword [esp + 0x1c4], 0xdf06dad7
mov byte [esp + 0x1c8], 0x90
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c9], 0
mov ebx, 0x7f7fe086
mov edi, 0x80801f79
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x7f7fdf46]
mov dword [esp + 4], ecx
xor ecx, ebx
or ecx, edi
test cl, 2
sete al
mov edx, ecx
not dl
mov ah, dl
or ah, 2
mul ah
mov dh, al
shr cl, 1
and cl, 1
and dl, 0x7d
mov eax, ecx
mul dl
add dh, dh
mov ecx, dword [esp + 4]
sub cl, dh
add al, al
sub cl, al
movzx eax, cl
add eax, ebx
add al, 0x62
mov byte [esp + ebx - 0x7f7fdf46], al
inc ebx
dec edi
cmp ebx, 0x7f7fe116
jne 0x4205f0
mov dword [esp + 0x78], 0xe8aed2d2
mov dword [esp + 0x7c], 0x58eb8d40
mov dword [esp + 0x80], 0x771ce8a8
mov dword [esp + 0x84], 0x4b4a4d4c
mov dword [esp + 0x88], 0x5fca4ad5
mov dword [esp + 0x8c], 0x7b73dc9c
mov dword [esp + 0x90], 0x5f5e4140
mov dword [esp + 0x94], 0x836ac484
mov dword [esp + 0x98], 0xf4ae05c7
mov dword [esp + 0x9c], 0x7060af6
mov dword [esp + 0xa0], 0x7b7a0504
mov dword [esp + 0xa4], 0x7f7e7978
mov dword [esp + 0xa8], 0xb8fe8282
mov dword [esp + 0xac], 0xbafaed10
mov dword [esp + 0xb0], 0x22a9f972
mov dword [esp + 0xb4], 0x3b3a3d3c
mov dword [esp + 0xb8], 0xef16c8e0
mov dword [esp + 0xbc], 0x33cee9ad
mov dword [esp + 0xc0], 0xf87a4e8
mov dword [esp + 0xc4], 0xf30a0d0c
mov dword [esp + 0xc8], 0x7060930
mov dword [esp + 0xcc], 0xd995dd04
mov dword [esp + 0xd0], 0xcd89d9e0
mov dword [esp + 0xd4], 0x718dc5e4
mov dword [esp + 0xd8], 0x17161918
mov dword [esp + 0xdc], 0xefce80c0
mov dword [esp + 0xe0], 0xff77c810
mov dword [esp + 0xe4], 0xeb70b634
mov dword [esp + 0xe8], 0xe7e6e9e8
mov dword [esp + 0xec], 0x3be2e5e4
mov dword [esp + 0xf0], 0x12fde779
mov dword [esp + 0xf4], 0xfbfafdfc
mov dword [esp + 0xf8], 0xb226e20
mov dword [esp + 0xfc], 0xd2032df4
mov byte [esp + 0x100], 0xf0
mov byte [esp + 0x103], 0
mov word [esp + 0x101], 0
mov eax, 0x96
mov edi, 0x32dc7a69
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x1e]
mov ecx, edi
or ecx, edx
not edx
or edx, eax
and edx, ecx
mov ebx, edx
neg ebx
mov dword [esp + 4], edx
add edx, 0x1b19bef
mov ecx, edx
and edx, 0xf2
and ebx, 0xd
or ebx, edx
not ecx
xor ebx, 0xf3
and ecx, 1
or ecx, ebx
mov edx, dword [esp + 4]
and edx, 1
add ecx, edx
mov byte [esp + eax - 0x1e], cl
inc eax
dec edi
cmp eax, 0x122
jne 0x4207e0
lea eax, [esp + 0x140]
lea edx, [esp + 0x78]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea edi, [esp + 0x44]
push edi
call fcn.0043feb0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ebx, ebx
or eax, edx
je 0x421561
mov dword [esp + 0x140], 0xc9607d6c
mov byte [esp + 0x144], 0xec
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, ebx
add al, 0x2c
xor al, byte [esp + ebx + 0x140]
add al, 0x24
mov byte [esp + ebx + 0x140], al
inc ebx
cmp ebx, 0xb
jne 0x420890
movzx eax, byte [esp + 0x140]
test al, al
je 0x4208cb
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4208c0
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.0043feb0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x42155f
mov dword [esp + 0x140], 0xcf9090a2
mov byte [esp + 0x144], 0x38
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0x4b
mov ecx, 0x58f9b7b4
nop
movzx edx, byte [esp + eax + 0xf5]
lea edi, [edx + edx]
not edi
add edi, edx
mov ebx, edx
and ebx, 0x49
and edi, 0x16
or edi, ebx
xor edi, edx
xor edi, 0x16
mov ebx, edx
not ebx
or ebx, edi
and ebx, eax
mov edi, ecx
or edi, edx
sub edx, edi
add edx, ecx
or edx, ebx
add dl, 0x89
mov byte [esp + eax + 0xf5], dl
inc eax
dec ecx
cmp eax, 0x56
jne 0x420930
movzx eax, byte [esp + 0x140]
test al, al
je 0x42099b
lea ecx, [esp + 0x141]
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 0x420990
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x38]
push 0
push 8
push eax
push edx
call fcn.0043f470
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x42155f
mov dword [esp + 0x140], 0x61c2cdd9
mov byte [esp + 0x144], 0x74
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0x559d7016
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x559d6ed6]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x92
mov byte [esp + eax - 0x559d6ed6], cl
inc eax
cmp eax, 0x559d7022
jne 0x420a00
movzx eax, byte [esp + 0x140]
test al, al
je 0x420a4b
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 0x420a40
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
xor ebx, ebx
cmp eax, ecx
je 0x421561
lea edi, [esp + 0x38]
jmp 0x420a8b
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x4215ed
mov dword [esp + 0x30], ebx
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040cef0
add esp, 0xc
xor ebx, ebx
jmp 0x420ace
lea edi, [esp + 0x38]
inc ebx
cmp ebx, 0xb
je 0x420ca0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x18]
call fcn.0043f2f0
test eax, eax
js 0x420ac4
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x60], cl
sete al
xor al, 0x31
mov byte [esp + 0x61], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0x62], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0x63], al
mov word [esp + 0x64], 0xa
xor eax, eax
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x61]
inc eax
test cl, cl
jne 0x420b40
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x420c90
cmp byte [esp + 0x210], 0
jne 0x420b7f
mov edx, dword [esp + 0x184]
or edx, dword [esp + 0x180]
je 0x420c90
add esi, eax
mov dword [esp + 0x78], 0x9bfdc4ed
mov byte [esp + 0x7c], 0x60
mov dword [esp + 0x7d], 0
mov eax, 0xffe35d19
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x1ca35f]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
xor edx, 0x7e
and ecx, 1
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x1ca35f], cl
inc eax
cmp eax, 0xffe35d22
jne 0x420ba0
movzx eax, byte [esp + 0x78]
test al, al
je 0x420beb
lea ecx, [esp + 0x79]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420be0
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0xe0e7e6e5
mov byte [esp + 0x7c], 0
mov eax, 0x33dd2a9
movzx ecx, byte [esp + eax - 0x33dd231]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xb3
mov byte [esp + eax - 0x33dd231], cl
inc eax
cmp eax, 0x33dd2ae
jne 0x420c10
mov eax, dword [0x450b18]
test eax, eax
je 0x420ac0
mov ecx, dword [esp + 0x78]
xor edx, edx
mov edi, dword [0x450b1c]
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x420c63
inc edx
cmp eax, edx
jne 0x420c50
jmp 0x420ac0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x420ac0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x450b20]
push eax
call fcn.00441600
add esp, 0x14
jmp 0x420ac0
add esi, eax
test cl, cl
jne 0x420cb0
jmp 0x420a70
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x420a70
call fcn.00404fa0
mov dword [esp + 0x34], eax
push eax
call fcn.00404960
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x78], 0x9e7e3e9
mov byte [esp + 0x7c], 4
lea eax, [esp + 0x7d]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x181ba6bf
lea ecx, [esp + 0x78]
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
mov ebx, eax
or ebx, edx
lea edi, [eax - 0x181ba600]
and edi, edx
not ebx
or ebx, edi
lea edx, [ebx + 0x788a41bf]
mov edi, 0x40
sub edi, ebx
mov ebx, edx
and edi, 0xa6
and edx, 0x59
or edx, edi
and ebx, 1
xor edx, 0xa7
lea edx, [edx + ebx*2]
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x181ba6b7
jne 0x420cf0
movzx eax, byte [esp + 0x78]
test al, al
je 0x420d60
lea edx, [esp + 0x79]
lea ecx, [esp + 0x38]
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 0x420d50
jmp 0x420d64
lea ecx, [esp + 0x38]
mov byte [esi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov edi, eax
or edi, edx
je 0x420db0
push 0
push 0
push 0x40
mov ebx, ecx
lea edi, [esp + 0x84]
push edi
push edx
push eax
call fcn.0043f2f0
test eax, eax
js 0x420dba
mov ecx, ebx
mov edx, edi
push dword [esp + 8]
call fcn.00423340
add esp, 4
jmp 0x420dbc
mov dword [esp + 4], 0
jmp 0x420dc0
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0x78], 0x8728201b
mov byte [esp + 0x7c], 0xb8
lea eax, [esp + 0x7d]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x9f
mov ecx, 0x60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x27]
mov edx, eax
xor edx, ecx
and edx, edi
xor edx, ecx
mov bl, 0xe4
sub bl, dl
mov byte [esp + eax - 0x27], bl
inc eax
dec ecx
cmp eax, 0xa9
jne 0x420df0
movzx eax, byte [esp + 0x78]
test al, al
je 0x420e40
lea ecx, [esp + 0x79]
mov ebx, dword [esp + 0x30]
lea edi, [esp + 0x38]
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 0x420e30
jmp 0x420e48
mov ebx, dword [esp + 0x30]
lea edi, [esp + 0x38]
mov byte [esi], 0
push dword [esp + 8]
call fcn.00404da0
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 4]
and cl, dl
cmp cl, 1
jne 0x421000
mov dword [esp + 8], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043f2f0
test eax, eax
js 0x4211d0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
lea ecx, [eax + eax]
and ecx, 0x20
xor eax, 0x10
add eax, ecx
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043f2f0
test eax, eax
js 0x4211d0
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x6c]
push edi
push edx
push eax
call fcn.0043f2f0
test eax, eax
js 0x4211d0
cmp byte [esp + 0x77], 0
lea eax, [esp + 0x60]
mov dword [esp + 0x2c], eax
js 0x421009
mov dword [esp + 0x10], 0x910b9f2b
mov dword [esp + 0x14], 0x95009337
mov dword [esp + 0x18], 0x89d297f4
mov dword [esp + 0x1c], 0x8d1e8b2b
mov dword [esp + 0x20], 0x81228f2f
mov word [esp + 0x24], 0x8380
mov dword [esp + 0x26], 0
mov eax, 0x4e9274a5
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x4e927495]
lea edx, [eax - 0x4e927400]
and edx, edi
or edi, eax
lea ecx, [edi + edi]
not ecx
add ecx, edi
and edi, 0xa1
and ecx, 0x5e
or ecx, edi
xor ecx, edx
xor cl, 0x5e
add cl, 0xc7
mov byte [esp + eax - 0x4e927495], cl
inc eax
cmp eax, 0x4e9274bf
jne 0x420f60
movzx ebx, word [esp + 0x10]
test bx, bx
je 0x421062
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, ecx
mov dword [esp + 4], ecx
jmp 0x420fcc
movzx ebx, word [eax]
test bx, bx
je 0x421077
movzx edi, word [edx]
test di, di
je 0x42106c
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp di, bx
je 0x420ff0
mov dword [esp + 4], ecx
mov edx, ecx
je 0x420fc0
lea eax, [esp + 0x10]
jmp 0x420fc0
mov dword [esp + 4], edx
jmp 0x421547
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, ebx
or eax, edi
je 0x4211d0
mov eax, dword [esp + 0x68]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x421034
mov eax, 0xffffffff
push eax
call fcn.0040ce70
add esp, 4
lea ecx, [esp + 0x38]
push 0
push 0
push dword [esp + 0xc]
mov dword [esp + 0x38], eax
push eax
push edi
push ebx
call fcn.0043f2f0
test eax, eax
jns 0x420f20
jmp 0x4211d0
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x78]
jmp 0x421089
lea ebx, [esp + 0x78]
mov edx, ebx
jmp 0x4211a3
lea ebx, [esp + 0x78]
mov edx, ebx
mov eax, dword [esp + 4]
test eax, eax
je 0x4211a3
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x4211a3
lea ecx, [eax + 0x14]
mov dword [esp + 0xc], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x4210ca
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x4210b0
mov ebx, edx
jmp 0x4211a3
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 0xc]
je 0x42119e
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x421133
mov ebx, edx
xor edx, edx
mov dword [esp + 0x104], eax
nop
nop
nop
nop
mov edi, dword [esp + 0xc]
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 + 0x104]
mov dword [esp + 0xc], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x4210f0
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x78]
mov edi, dword [esp + 0xc]
jmp 0x421137
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x42119e
nop
nop
nop
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 0x421140
lea edx, [esp + 0x78]
mov word [ebx], 0
cmp byte [esp + 0x77], 0
mov edi, edx
jns 0x4211bc
push dword [esp + 0x2c]
call fcn.0040ce80
lea edi, [esp + 0x7c]
add esp, 4
cmp edi, ebx
jne 0x421276
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0x77c479a1
mov dword [esp + 0x14], 0x73c175cb
mov dword [esp + 0x18], 0x4ffc71cb
mov dword [esp + 0x1c], 0x4bc64df5
mov dword [esp + 0x20], 0x474649fb
mov word [esp + 0x24], 0
mov eax, 0xc1da8196
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x3e257e7a]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x11
xor ecx, 0x11
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x3e257e7a], cl
inc eax
cmp eax, 0xc1da81ac
jne 0x421210
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x78]
mov ebx, edi
test ax, ax
je 0x421271
lea ecx, [esp + 0x12]
mov ebx, edi
nop
nop
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 0x421260
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, 0x78
mov dword [esp + 4], edx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov edx, eax
mov dword [esp + 0xc], edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x4212c4
mov ecx, dword [esp + 4]
and ecx, 2
movzx eax, byte [eax + ecx]
mov edx, dword [esp + 0xc]
mov byte [edx + ecx], al
push 0xa
push 0xb
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x14]
call fcn.004230b0
add esp, 0x10
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0xed051b7e
mov dword [esp + 0x14], 0x7d425440
mov byte [esp + 0x18], 0
mov ecx, 0x69
mov edi, 0x16
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x59]
mov edx, edi
and edx, 0x1d
mov ebx, ecx
and ebx, 0x62
or ebx, edx
xor ebx, ecx
xor ebx, eax
xor ebx, 0x1d
and ebx, eax
xor ebx, ecx
add bl, 0xf3
mov byte [esp + ecx - 0x59], bl
inc ecx
dec edi
cmp ecx, 0x72
jne 0x421300
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x42135d
lea edx, [esp + 0x11]
mov eax, dword [esp + 8]
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 0x421350
jmp 0x421361
mov eax, dword [esp + 8]
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x42137b
inc eax
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421370
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x421390
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
and edx, edi
mov eax, edi
not eax
and eax, ecx
sub eax, edx
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x4213c8
mov eax, 0xffffffff
jmp 0x4213d1
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040ce70
add esp, 4
mov ebx, eax
movzx ecx, word [edi]
mov dword [esp + 8], eax
test cx, cx
je 0x421401
add edi, 2
mov ebx, dword [esp + 8]
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x4213f0
inc esi
mov word [ebx], 0x2f
mov dword [esp + 0x10], 0xe33ce1df
mov dword [esp + 0x14], 0xe711e501
mov dword [esp + 0x18], 0xfb0ef9c6
mov dword [esp + 0x1c], 0xff0afd74
mov word [esp + 0x20], 0xf1f0
mov dword [esp + 0x22], 0
mov ecx, 0x4079e0a8
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x4079e098]
mov dword [esp + 4], eax
mov edi, ecx
and edi, eax
mov eax, edi
or eax, 0xfffffffd
inc eax
mov edx, edi
and edx, 0xfffffffd
imul edx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add edx, dword [esp + 4]
sub edx, edi
add edx, ecx
mov eax, edx
not eax
and eax, 0x14
and edx, 0xeb
sub edx, eax
add dl, 0xcc
mov byte [esp + ecx - 0x4079e098], dl
inc ecx
cmp ecx, 0x4079e0be
jne 0x421440
add ebx, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x4214c1
lea edx, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4214b0
mov word [ebx], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4214f1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4214e0
mov word [ebx], 0
mov ebx, 0xffffffff
push dword [esp + 0x34]
call fcn.00405c10
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421510
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040d820
mov dword [esp + 4], eax
push edi
call fcn.00405ca0
add esp, 4
push ebx
call fcn.0040ce80
add esp, 4
mov ebx, dword [esp + 0x30]
lea edi, [esp + 0x38]
push dword [esp + 0x34]
call fcn.00404de0
add esp, 4
and bl, 1
or bl, byte [esp + 4]
jmp 0x420a74
xor ebx, ebx
lea ecx, [esp + 0x38]
call fcn.0043ea80
mov dword [esp + 0x140], 0x117a816d
mov byte [esp + 0x144], 0xc
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x82
xor al, byte [esp + ecx + 0x140]
add al, 0x76
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0xb
jne 0x4215a0
movzx eax, byte [esp + 0x140]
test al, al
je 0x4215db
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4215d0
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
and bl, 1
test eax, eax
je 0x421561
cmp eax, dword [esp + 0x50]
je 0x421561
push eax
call fcn.0040ce80
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x421561