Function at 0x420510
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], 0x39969f85
mov byte [esp + 0x13c], 0x24
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
mov ecx, 0x48
mov edx, 0xb7
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0xf0]
lea edi, [esi + esi]
not edi
add edi, esi
and edi, 0x9a
and esi, 0x65
or esi, edi
mov edi, edx
and edi, 0x9a
mov ebx, ecx
and ebx, 0x45
or ebx, edi
xor ebx, esi
add bl, 0x98
mov byte [esp + ecx + 0xf0], bl
inc ecx
dec edx
cmp ecx, 0x53
jne 0x420570
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x138]
test cl, cl
je 0x4205db
lea edx, [esp + 0x139]
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 0x4205d0
mov edi, esi
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 + 0x50]
lea esi, [esp + 0x2c]
push ecx
push edx
push esi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.004229c0
add esp, 0x18
test al, al
je 0x420cf0
mov dword [esp + 0x138], 0xbebf5f4
mov byte [esp + 0x13c], 0
mov dword [esp + 0x13d], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x138]
mov esi, eax
and esi, 2
mov ebx, ecx
xor ebx, esi
and esi, ecx
xor ebx, 0xec510841
lea esi, [ebx + esi*2]
lea ebx, [edx + edx]
not ebx
add ebx, edx
or ebx, esi
not edx
and edx, esi
not ebx
or ebx, edx
add bl, 0xbb
mov byte [esp + ecx + 0x138], bl
inc ecx
add eax, 2
cmp ecx, 9
jne 0x420650
movzx eax, byte [esp + 0x138]
test al, al
je 0x4206bd
lea ecx, [esp + 0x139]
mov edx, edi
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 0x4206b0
jmp 0x4206bf
mov edx, edi
mov edi, edx
mov byte [edx], 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 + 0x58], 0x362a3a7f
mov dword [esp + 0x5c], 0x5f5e3154
mov dword [esp + 0x60], 0x71415e33
mov dword [esp + 0x64], 0x544b4a49
mov dword [esp + 0x68], 0x46496b24
mov dword [esp + 0x6c], 0x5f46404a
mov dword [esp + 0x70], 0x585f5e5d
mov dword [esp + 0x74], 0xa8632f32
mov dword [esp + 0x78], 0xceaddeb1
mov dword [esp + 0x7c], 0xd4dcbaa9
mov dword [esp + 0x80], 0xb293c0a0
mov dword [esp + 0x84], 0x89bcb3d6
mov dword [esp + 0x88], 0x88dace84
mov dword [esp + 0x8c], 0xc0cf8e8e
mov dword [esp + 0x90], 0xc1b386c5
mov dword [esp + 0x94], 0x84bbbab9
mov dword [esp + 0x98], 0xf6e5ebf1
mov dword [esp + 0x9c], 0x8cbf9883
mov dword [esp + 0xa0], 0x8881e39c
mov dword [esp + 0xa4], 0xab8b8a89
mov dword [esp + 0xa8], 0x9097969e
mov dword [esp + 0xac], 0xe681aa91
mov dword [esp + 0xb0], 0xa5ae82a2
mov dword [esp + 0xb4], 0xf7aa8b8e
mov dword [esp + 0xb8], 0xe0e7e6e5
mov dword [esp + 0xbc], 0x8ed2da95
mov dword [esp + 0xc0], 0x83ed9eed
mov dword [esp + 0xc4], 0xf4d788d1
mov dword [esp + 0xc8], 0xf0f7f6f5
mov dword [esp + 0xcc], 0xe8f3f2f1
mov dword [esp + 0xd0], 0xfa8982c1
mov dword [esp + 0xd4], 0xc4fbfaf9
mov dword [esp + 0xd8], 0xaddba4b3
mov dword [esp + 0xdc], 0xf1b6fec1
mov byte [esp + 0xe0], 0xc
mov byte [esp + 0xe3], 0
mov word [esp + 0xe1], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x58]
mov esi, eax
and esi, 0xc2
mov ebx, ecx
xor ebx, 0x6e3b361
add ebx, esi
mov esi, ebx
not esi
or esi, edx
add esi, ebx
add esi, esi
sub ebx, esi
add bl, dl
add bl, 0x19
mov byte [esp + ecx + 0x58], bl
inc ecx
add eax, 2
cmp ecx, 0x8c
jne 0x420860
mov dword [esp + 0x138], 0xfcc2d2ae
mov dword [esp + 0x13c], 0x54812764
mov dword [esp + 0x140], 0x69408cc4
mov dword [esp + 0x144], 0x75767770
mov dword [esp + 0x148], 0x11fe6a8f
mov dword [esp + 0x14c], 0x757990d0
mov dword [esp + 0x150], 0x6162636c
mov dword [esp + 0x154], 0xdd7698d8
mov dword [esp + 0x158], 0xf8029fe1
mov dword [esp + 0x15c], 0x61629afa
mov dword [esp + 0x160], 0x6d6e6f60
mov dword [esp + 0x164], 0x696a6b6c
mov dword [esp + 0x168], 0xccf2e2fe
mov dword [esp + 0x16c], 0xb2f60754
mov dword [esp + 0x170], 0x3abffb7e
mov dword [esp + 0x174], 0x45464740
mov dword [esp + 0x178], 0x19aecfc
mov dword [esp + 0x17c], 0xbddafb47
mov dword [esp + 0x180], 0xb13d4004
mov dword [esp + 0x184], 0xedb6b7b0
mov dword [esp + 0x188], 0xa9aaabac
mov dword [esp + 0x18c], 0x175317a8
mov dword [esp + 0x190], 0x135f1bcc
mov dword [esp + 0x194], 0x4f5b1ff8
mov dword [esp + 0x198], 0x999a9ba4
mov dword [esp + 0x19c], 0xf9da6c24
mov dword [esp + 0x1a0], 0xe16d2c9c
mov dword [esp + 0x1a4], 0x956cae28
mov dword [esp + 0x1a8], 0x898a8b94
mov dword [esp + 0x1ac], 0x358e8f88
mov dword [esp + 0x1b0], 0xea838d73
mov dword [esp + 0x1b4], 0x85868780
mov dword [esp + 0x1b8], 0x9d46063c
mov dword [esp + 0x1bc], 0xdaa947f8
mov byte [esp + 0x1c0], 0xfc
mov dword [esp + 0x1c1], 0
xor eax, eax
mov ecx, 0x40
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x138]
lea edx, [esi + esi]
not edx
add edx, esi
xor edx, ecx
add dl, 0x45
mov byte [esp + eax + 0x138], dl
inc eax
dec ecx
cmp eax, 0x8d
jne 0x420a30
lea eax, [esp + 0x58]
lea edx, [esp + 0x138]
lea ecx, [esp + 0x128]
push eax
push 0x88
push edx
lea eax, [esp + 0x38]
push eax
call fcn.0043f220
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x420cf0
mov dword [esp + 0x138], 0x49a0bdac
mov byte [esp + 0x13c], 0x2c
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0x3138338c
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x31383254]
lea ecx, [eax - 0x31383380]
or ecx, eax
and ecx, edx
mov esi, ecx
and esi, 0xffffff9d
mov ebx, ecx
and ebx, 2
or ecx, 2
imul ecx, ebx
xor ebx, 2
imul ebx, esi
add ecx, ebx
add edx, eax
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0x44
mov byte [esp + eax - 0x31383254], cl
inc eax
cmp eax, 0x31383394
jne 0x420ac0
movzx eax, byte [esp + 0x138]
test al, al
je 0x420b3d
lea ecx, [esp + 0x139]
mov edx, edi
lea esi, [esp + 0x2c]
nop
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 0x420b30
jmp 0x420b43
mov edx, edi
lea esi, [esp + 0x2c]
mov edi, edx
mov byte [edx], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push esi
call fcn.0043f220
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
or eax, edx
je 0x420cf0
mov dword [esp + 0x138], 0x610c0416
mov byte [esp + 0x13c], 0x94
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0xf64202e6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x9bdfe52]
xor ecx, eax
add ecx, 0x927a6b76
mov edx, ecx
xor edx, 0xf4
and ecx, 0xb
add ecx, ecx
sub ecx, edx
mov byte [esp + eax + 0x9bdfe52], cl
inc eax
cmp eax, 0xf64202ee
jne 0x420bb0
movzx eax, byte [esp + 0x138]
test al, al
je 0x420c0b
lea ecx, [esp + 0x139]
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 0x420c00
mov byte [edi], 0
lea eax, [esp + 0x118]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x2c]
push 0
push 8
push eax
push edx
call fcn.0043e7a0
mov eax, dword [esp + 0x44]
xor ebx, ebx
cmp eax, dword [esp + 0x48]
je 0x420cf2
mov dword [esp], edi
mov dword [esp + 0x138], 0x8b323327
mov byte [esp + 0x13c], 0x80
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x138]
mov esi, ebx
and esi, 2
mov ecx, eax
xor ecx, 0x9a99521
add ecx, esi
xor ecx, edx
mov edx, ecx
and edx, 0x9a01458
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
mov esi, ecx
xor esi, 0x5a
add esi, edi
add esi, edx
and ecx, 1
xor esi, 1
lea ecx, [esi + ecx*2]
mov byte [esp + eax + 0x138], cl
inc eax
add ebx, 2
cmp eax, 0xc
jne 0x420c70
movzx eax, byte [esp + 0x138]
test al, al
je 0x420d8d
lea ecx, [esp + 0x139]
mov edi, dword [esp]
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420ce0
jmp 0x420d90
xor ebx, ebx
lea ecx, [esp + 0x2c]
call fcn.0043deb0
mov dword [esp + 0x138], 0x394e495d
mov byte [esp + 0x13c], 0x3c
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
and ecx, 3
xor ecx, 0x83
mov eax, edx
and eax, 0xc
sub eax, ecx
add al, 0xb7
xor al, byte [esp + edx + 0x138]
add al, 0xfc
mov byte [esp + edx + 0x138], al
inc edx
cmp edx, 0xb
jne 0x420d30
movzx eax, byte [esp + 0x138]
test al, al
je 0x420d7b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420d70
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 edi, dword [esp]
mov byte [edi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xe8], ecx
xor ebx, ebx
cmp eax, ecx
je 0x420cf2
lea esi, [esp + 0x2c]
jmp 0x420ddb
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0xec]
add eax, 8
cmp eax, dword [esp + 0xe8]
je 0x4218a6
mov dword [esp + 0x3c], ebx
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov dword [esp + 0xec], eax
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
push 0x198
push 0
lea eax, [esp + 0x140]
push eax
call fcn.0040ce20
add esp, 0xc
xor ebx, ebx
jmp 0x420e1e
lea esi, [esp + 0x2c]
inc ebx
cmp ebx, 0xb
je 0x421030
mov ecx, esi
push 0
push 0
push 0x198
lea eax, [esp + 0x144]
push eax
push dword [esp + 0x14]
push dword [esp + 0x3c]
call fcn.0043e630
test eax, eax
js 0x420e14
cmp byte [esp + 0x208], 0
sete al
xor al, 0x31
cmp byte [esp + 0x209], 0
mov byte [esp + 0xc], al
sete cl
xor cl, 0x31
mov byte [esp + 0xd], cl
cmp byte [esp + 0x20a], 0
sete cl
xor cl, 0x31
mov byte [esp + 0xe], cl
cmp byte [esp + 0x2c8], 0
sete cl
xor cl, 0x31
mov byte [esp + 0xf], cl
mov word [esp + 0x10], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi + ecx], al
movzx eax, byte [esp + ecx + 0xd]
inc ecx
test al, al
jne 0x420ea0
mov byte [edi + ecx], 0
movzx eax, byte [esp + 0x20a]
test al, al
jne 0x421050
mov edx, dword [esp + 0x17c]
or edx, dword [esp + 0x178]
je 0x421050
add edi, ecx
mov dword [esp], edi
mov dword [esp + 0x58], 0x6b053c15
mov byte [esp + 0x5c], 0x90
lea eax, [esp + 0x5d]
mov dword [eax + 3], 0
mov dword [eax], 0
mov eax, 0xb98809a
mov edi, 0xf4677f65
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edi + 0xb9880f3]
mov ecx, edi
or ecx, esi
mov edx, ecx
sub edx, esi
add edx, eax
and edx, ecx
mov ecx, edx
and ecx, 1
or edx, 1
add edx, ecx
add dl, 6
mov byte [esp + edi + 0xb9880f3], dl
dec eax
inc edi
cmp eax, 0xb98808e
jne 0x420f10
movzx eax, byte [esp + 0x58]
test al, al
je 0x420f70
lea ecx, [esp + 0x59]
mov edi, dword [esp]
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 0x420f60
jmp 0x420f73
mov edi, dword [esp]
mov byte [edi], 0
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x58], 0xff676980
mov dword [esp + 0xf0], 0x8c8d8a8b
mov eax, 0x2556f662
mov ecx, 0x9d
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x2556f572]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
xor esi, 0xeb
and edx, 0x14
add edx, edx
sub edx, esi
inc dl
mov byte [esp + eax - 0x2556f572], dl
inc eax
dec ecx
cmp eax, 0x2556f666
jne 0x420fa0
mov eax, dword [0x44fbb4]
test eax, eax
je 0x420e10
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov esi, dword [0x44fbb8]
nop
nop
nop
cmp dword [esi + edx*8], 0xf8fd61b8
je 0x421003
inc edx
cmp eax, edx
jne 0x420ff0
jmp 0x420e10
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x420e10
lea ecx, [esp + 0x58]
push ecx
push 0
push 2
push dword [0x44fbbc]
push eax
call fcn.004403c0
add esp, 0x14
jmp 0x420e10
movzx eax, byte [esp + 0x20a]
test al, al
jne 0x42105a
jmp 0x420dc0
add edi, ecx
test al, al
je 0x420dc0
mov ebx, edi
call fcn.00405090
mov dword [esp + 0x28], eax
push eax
call fcn.00404a10
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x58], 0x15ba7a1
mov byte [esp + 0x5c], 0xf4
lea eax, [esp + 0x5d]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x58]
mov edi, eax
and edi, 0x1c
mov esi, ecx
xor esi, 0x25dfd2fe
add esi, edi
lea edi, [edx + edx]
not edi
add edi, edx
and edi, esi
not edx
or edx, esi
not edx
or edx, edi
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
add dl, 9
mov byte [esp + ecx + 0x58], dl
inc ecx
add eax, 2
cmp ecx, 0xb
jne 0x4210a0
movzx eax, byte [esp + 0x58]
test al, al
je 0x421110
lea edx, [esp + 0x59]
lea ecx, [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x421100
jmp 0x421114
lea ecx, [esp + 0x2c]
mov byte [ebx], 0
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov esi, eax
or esi, edx
mov dword [esp], ebx
je 0x421160
push 0
push 0
push 0x40
mov edi, ecx
lea esi, [esp + 0x64]
push esi
push edx
push eax
call fcn.0043e630
test eax, eax
js 0x421160
mov ecx, edi
mov edx, esi
push dword [esp + 8]
call fcn.00423230
add esp, 4
mov dword [esp + 4], eax
jmp 0x421168
mov dword [esp + 4], 0
mov dword [esp + 0x58], 0x79c4dcd9
mov byte [esp + 0x5c], 0x7c
mov dword [esp + 0x5d], 0
mov esi, 0x1b1a5b14
mov eax, 0xe5a4eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi - 0x1b1a5abc]
lea ebx, [edi + edi]
not ebx
add ebx, edi
mov edx, eax
and edx, 0xa48018
mov ecx, esi
and ecx, 0x10124b27
or ecx, edx
xor ecx, edi
lea edx, [esi - 0x1b1a5b00]
and edx, edi
not edi
and edi, ebx
mov ebx, edi
xor ebx, esi
sub ebx, edi
and edi, esi
add ebx, edi
xor ecx, 0xbac9018
or edx, ecx
mov ecx, ebx
and ecx, edx
xor edx, ebx
sub edx, ebx
add edx, ecx
add dl, 0x9c
mov byte [esp + esi - 0x1b1a5abc], dl
inc esi
dec eax
cmp esi, 0x1b1a5b1d
jne 0x421190
movzx eax, byte [esp + 0x58]
test al, al
je 0x421220
lea ecx, [esp + 0x59]
mov edi, dword [esp]
lea esi, [esp + 0x2c]
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 0x421210
jmp 0x421227
mov edi, dword [esp]
lea esi, [esp + 0x2c]
mov byte [edi], 0
cmp byte [esp + 4], 0
je 0x4213c0
push dword [esp + 8]
call fcn.00404e90
add esp, 4
test eax, eax
je 0x4213c7
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x294]
add eax, 0x28
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043e630
test eax, eax
mov dword [esp], edi
js 0x4214f2
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea ebx, [esp + 0x114]
push ebx
push edx
push eax
call fcn.0043e630
test eax, eax
js 0x4214f2
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 0x18
lea edi, [esp + 0xfc]
push edi
push edx
push eax
call fcn.0043e630
test eax, eax
js 0x4214ef
cmp byte [esp + 0x107], 0
lea eax, [esp + 0xf0]
mov dword [esp + 4], eax
js 0x4213ce
mov dword [esp + 0xc], 0x1fa919cd
mov dword [esp + 0x10], 0xe3541db9
mov dword [esp + 0x14], 0xe722e100
mov dword [esp + 0x18], 0xeb5ee545
mov dword [esp + 0x1c], 0xef32e949
mov word [esp + 0x20], 0xedec
lea eax, [esp + 0x22]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x7a
movzx ecx, byte [esp + eax - 0x6e]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
add ecx, 0xfdd14000
mov edx, ecx
and edx, 0x1d
xor ecx, 0x9d
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x6e], cl
inc eax
cmp eax, 0x95
jne 0x421340
movzx edi, word [esp + 0xc]
test di, di
je 0x421404
lea eax, [esp + 0xc]
mov edx, dword [esp + 4]
mov ecx, edx
jmp 0x42139c
movzx edi, word [eax]
test di, di
je 0x421419
movzx esi, word [ecx]
test si, si
je 0x42140d
add ecx, 2
add eax, 2
lea ebx, [edx + 2]
cmp si, di
je 0x4213b6
mov edx, ebx
mov ecx, ebx
je 0x421390
lea eax, [esp + 0xc]
jmp 0x421390
xor ebx, ebx
jmp 0x4217f2
mov bl, 1
jmp 0x4217f2
mov ecx, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
mov eax, ecx
or eax, edi
je 0x4214ef
mov eax, dword [esp + 0xf8]
mov ebx, eax
inc ebx
mov dword [esp + 8], ecx
jns 0x4214a9
mov eax, 0xffffffff
jmp 0x4214b0
mov edx, dword [esp + 4]
mov edi, dword [esp]
jmp 0x421428
lea ebx, [esp + 0x58]
mov edi, dword [esp]
jmp 0x42187f
lea ebx, [esp + 0x58]
test edx, edx
mov edi, dword [esp]
je 0x42187f
movzx esi, word [edx + 0x14]
lea ebx, [esp + 0x58]
test si, si
je 0x42187f
lea eax, [edx + 0x14]
xor ecx, ecx
nop
nop
cmp si, 0x5c
je 0x42145c
movzx esi, word [edx + ecx + 0x16]
add ecx, 2
test si, si
jne 0x421440
lea ebx, [esp + 0x58]
jmp 0x42187f
lea edx, [esp + 0x58]
mov ebx, edx
test ecx, ecx
je 0x42187a
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x42181e
xor edi, edi
mov ebx, edx
mov dword [esp + 8], esi
nop
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov word [ebx], si
mov esi, dword [esp + 8]
add ebx, 2
inc edi
cmp esi, edi
jne 0x421480
mov esi, ecx
sub esi, edi
mov edi, dword [esp]
jmp 0x421822
lea eax, [eax*2 + 2]
push eax
call fcn.0040cda0
add esp, 4
mov edx, ebx
or edx, 2
mov ecx, ebx
and ecx, 2
imul edx, ecx
xor ecx, 2
and ebx, 0xfffffffd
imul ebx, ecx
add ebx, edx
mov ecx, esi
push 0
push 0
push ebx
mov dword [esp + 0x10], eax
push eax
push edi
push dword [esp + 0x1c]
call fcn.0043e630
test eax, eax
jns 0x4212fe
mov edi, dword [esp]
lea edx, [esp + 0x58]
mov dword [esp + 0xc], 0x43ec4109
mov dword [esp + 0x10], 0x47e945e7
mov dword [esp + 0x14], 0x4be449ef
mov dword [esp + 0x18], 0x4fda4de5
mov dword [esp + 0x1c], 0xb3b2b11f
mov dword [esp + 0x20], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x70
xor cl, byte [esp + eax + 0xc]
add cl, 0xd0
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 0x18
jne 0x421530
movzx eax, word [esp + 0xc]
mov ebx, edx
test ax, ax
je 0x421571
lea ecx, [esp + 0xe]
mov ebx, edx
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 0x421560
mov word [ebx], 0
mov esi, ebx
sub esi, edx
mov ecx, esi
shr ecx, 2
mov eax, edx
mov edx, edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, esi
and eax, 0xfffffffc
lea edi, [edx + eax]
lea edx, [esp + eax]
add edx, 0x58
mov dword [esp + 8], edx
mov dword [esp + 4], esi
and esi, 3
mov ecx, esi
shr ecx, 1
mov eax, edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edi, eax
mov eax, dword [esp + 8]
mov edx, esi
xor edx, 0xfffffffe
mov ecx, esi
or ecx, 1
and ecx, edx
je 0x4215ec
xor esi, 1
or ebx, 2
and ebx, esi
movzx edx, byte [eax + ebx]
mov byte [edi + ebx], dl
cmp ecx, 1
je 0x4215ec
movzx edx, byte [eax + ebx + 1]
mov byte [edi + ebx + 1], dl
cmp ecx, 2
je 0x4215ec
movzx eax, byte [eax + ebx + 2]
mov byte [edi + ebx + 2], al
mov dword [esp + 0xc], 0xadc5bb1e
mov word [esp + 0x10], 0x231a
lea eax, [esp + 0x22]
mov byte [eax - 0xc], 0
mov dword [eax - 0x10], 0
mov edi, 0xa8363bf9
nop
movzx edx, byte [esp + edi + 0x57c9c413]
mov ebx, edx
and ebx, edi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
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, edi
add al, 0x23
mov byte [esp + edi + 0x57c9c413], al
inc edi
cmp edi, 0xa8363c04
jne 0x421610
mov edx, dword [esp]
mov esi, dword [esp + 4]
add edx, esi
movzx eax, byte [esp + 0xc]
test al, al
je 0x42167b
lea ecx, [esp + 0xd]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421670
mov dword [esp], edx
mov byte [edx], 0
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421690
sar eax, 1
sar esi, 1
lea ecx, [esi + eax]
add ecx, 0xa
test ecx, ecx
jns 0x4216b0
mov eax, 0xffffffff
jmp 0x4216b9
add esi, eax
lea eax, [esi*2 + 0x14]
push eax
call fcn.0040cda0
add esp, 4
movzx ecx, word [edi]
mov esi, eax
test cx, cx
je 0x4216f1
add edi, 2
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x4216e0
mov word [esi], 0x2f
mov dword [esp + 0xc], 0x1d00735
mov dword [esp + 0x10], 0xdfb03ef
mov dword [esp + 0x14], 0x9f20f3a
mov dword [esp + 0x18], 0x15f60bf0
mov word [esp + 0x1c], 0x1714
lea ecx, [esp + 0x22]
mov byte [ecx - 2], 0
mov word [ecx - 4], 0
mov ecx, 0x41
movzx edx, byte [esp + ecx - 0x35]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xbb
mov byte [esp + ecx - 0x35], dl
inc ecx
cmp ecx, 0x56
jne 0x421730
add esi, 2
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x421771
lea edx, [esp + 0x5a]
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421760
mov word [esi], 0
movzx ecx, word [esp + 0xc]
mov ebx, eax
test cx, cx
je 0x4217a1
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421790
mov word [esi], 0
mov esi, 0xffffffff
push dword [esp + 0x28]
call fcn.00405d10
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + esi + 1], 0
lea esi, [esi + 1]
jne 0x4217c0
mov ecx, dword [ebp + 8]
push esi
push edi
push ebx
call fcn.0040d750
mov esi, eax
push edi
call fcn.00405da0
add esp, 4
push ebx
mov ebx, esi
call fcn.0040cdb0
add esp, 4
mov edi, dword [esp]
lea esi, [esp + 0x2c]
push dword [esp + 0x28]
call fcn.00404ed0
add esp, 4
mov eax, dword [esp + 0x3c]
and al, 1
movzx eax, al
movzx ecx, bl
mov edx, ecx
xor edx, eax
add edx, eax
not ecx
and ecx, eax
cmp edx, ecx
setne bl
jmp 0x420dc4
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x42187a
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x421828
mov word [ebx], 0
cmp byte [esp + 0x107], 0
jns 0x421895
push dword [esp + 4]
call fcn.0040cdb0
add esp, 4
lea edx, [esp + 0x58]
cmp edx, ebx
jne 0x421576
jmp 0x4214f6
mov eax, dword [esp + 0x44]
and bl, 1
test eax, eax
je 0x420cf2
cmp eax, dword [esp + 0x48]
je 0x420cf2
push eax
call fcn.0040cdb0
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x420cf2