Function at 0x41f980
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], 0x611a0b05
mov byte [esp + 0x144], 0x94
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov ecx, 0x66
mov edx, 0x99
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0xda]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
add bl, 2
mov byte [esp + ecx + 0xda], bl
inc ecx
dec edx
cmp ecx, 0x6e
jne 0x41f9e0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41fa2b
lea edx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41fa20
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 ecx, [esp + 0x48]
lea edx, [esp + 0x58]
lea ebx, [esp + 0x34]
xor edi, edi
push ecx
push edx
push ebx
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00422560
add esp, 0x18
test al, al
je 0x420bd6
mov dword [esp + 0x140], 0x99c1f3f0
mov byte [esp + 0x144], 0x64
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x98
xor cl, byte [esp + eax + 0x140]
add cl, 8
mov byte [esp + eax + 0x140], cl
inc eax
cmp eax, 0xc
jne 0x41fab0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41faeb
lea ecx, [esp + 0x141]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fae0
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], 0xcefce3c3
mov dword [esp + 0x144], 0x88c18be6
mov dword [esp + 0x148], 0xfac8d8d6
mov dword [esp + 0x14c], 0xc0c1c2c3
mov dword [esp + 0x150], 0xc2ecddeb
mov dword [esp + 0x154], 0x9796e19f
mov dword [esp + 0x158], 0xcccdcecf
mov dword [esp + 0x15c], 0xcfaeeda0
mov dword [esp + 0x160], 0xa5f8afed
mov dword [esp + 0x164], 0xfee1e1a9
mov dword [esp + 0x168], 0xa6e2f3c5
mov dword [esp + 0x16c], 0xf5b8d8dc
mov dword [esp + 0x170], 0xb0f2e0c2
mov dword [esp + 0x174], 0xf1ddf1ff
mov dword [esp + 0x178], 0xeae4c7e9
mov dword [esp + 0x17c], 0x10111213
mov dword [esp + 0x180], 0x46333d3b
mov dword [esp + 0x184], 0x180d241d
mov dword [esp + 0x188], 0x1c173528
mov dword [esp + 0x18c], 0x19010203
mov dword [esp + 0x190], 0x405060f
mov dword [esp + 0x194], 0x5116390b
mov dword [esp + 0x198], 0x3e120516
mov dword [esp + 0x19c], 0x666b293e
mov dword [esp + 0x1a0], 0x34353637
mov dword [esp + 0x1a4], 0x1e2e2217
mov dword [esp + 0x1a8], 0x113b6e3f
mov dword [esp + 0x1ac], 0x2035043b
mov dword [esp + 0x1b0], 0x24252627
mov dword [esp + 0x1b4], 0x24292a2b
mov dword [esp + 0x1b8], 0x2a7f7a3b
mov dword [esp + 0x1bc], 0x50515253
mov dword [esp + 0x1c0], 0x7f617005
mov dword [esp + 0x1c4], 0x430a4e5b
mov byte [esp + 0x1c8], 0x98
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c9], 0
mov eax, 0x9ad863c4
mov ecx, 0x65279c3b
nop
nop
nop
movzx edx, byte [esp + eax + 0x65279d7c]
mov edi, ecx
and edi, 0x5ac
mov ebx, eax
and ebx, 0x82c84253
or ebx, edi
xor ebx, 0x82c84253
and ebx, ecx
mov edi, edx
not edi
lea edi, [edx + edi*2]
inc edi
or edi, ebx
or edx, eax
and edx, edi
add edx, 0xf9c60d2b
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
mov byte [esp + eax + 0x65279d7c], dl
inc eax
dec ecx
cmp eax, 0x9ad86454
jne 0x41fcb0
mov dword [esp + 0x78], 0x3446767a
mov dword [esp + 0x7c], 0xcc399bdc
mov dword [esp + 0x80], 0xd1f83c7c
mov dword [esp + 0x84], 0xbdbabbb8
mov dword [esp + 0x88], 0xa92abe3b
mov dword [esp + 0x8c], 0xcdb12868
mov dword [esp + 0x90], 0xa9a6a7a4
mov dword [esp + 0x94], 0x65ba2060
mov dword [esp + 0x98], 0xb086eb29
mov dword [esp + 0x9c], 0x191e16ae
mov dword [esp + 0xa0], 0x151a1b18
mov dword [esp + 0xa4], 0x11161714
mov dword [esp + 0xa8], 0xc496a6aa
mov dword [esp + 0xac], 0xce8a9b2c
mov dword [esp + 0xb0], 0x4ecb8f0a
mov dword [esp + 0xb4], 0x4d4a4b48
mov dword [esp + 0xb8], 0xb92e9c84
mov dword [esp + 0xbc], 0x7556b7fb
mov dword [esp + 0xc0], 0x79edf8bc
mov dword [esp + 0xc4], 0x557a7b78
mov dword [esp + 0xc8], 0x617e7f14
mov dword [esp + 0xcc], 0xa3efab60
mov dword [esp + 0xd0], 0xa7ebaf44
mov dword [esp + 0xd4], 0xdbe7a340
mov dword [esp + 0xd8], 0x116e6f6c
mov dword [esp + 0xdc], 0x31d69cdc
mov dword [esp + 0xe0], 0x299ddc14
mov dword [esp + 0xe4], 0x1d9c52d0
mov dword [esp + 0xe8], 0x11e1f1c
mov dword [esp + 0xec], 0xcd020300
mov dword [esp + 0xf0], 0x3e071d8f
mov dword [esp + 0xf4], 0xd0a0b08
mov dword [esp + 0xf8], 0x15c282c4
mov dword [esp + 0xfc], 0x56e1fb30
mov byte [esp + 0x100], 0x34
mov word [esp + 0x105], 0
mov dword [esp + 0x101], 0
xor ebx, ebx
movzx eax, byte [esp + ebx + 0x78]
mov dword [esp + 4], eax
lea eax, [ebx + ebx]
mov dword [esp + 0xc], eax
and eax, 0x1ba
mov edi, ebx
xor edi, 0x4b1c88dd
add edi, eax
mov edx, dword [esp + 4]
and edx, edi
mov ecx, edx
and ecx, 0xfffffffd
mov eax, edx
or eax, 0xfd
inc eax
imul eax, ecx
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
sub eax, edx
add eax, edi
add al, byte [esp + 4]
add al, 0xaf
mov byte [esp + ebx + 0x78], al
mov eax, dword [esp + 0xc]
and eax, 2
xor ebx, 1
add ebx, eax
cmp ebx, 0x8f
jb 0x41fe90
lea eax, [esp + 0x140]
lea edx, [esp + 0x78]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00441270
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ebx, ebx
or eax, edx
je 0x420bda
mov dword [esp + 0x140], 0xff444750
mov byte [esp + 0x144], 0xc8
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0xd3
xor al, byte [esp + ebx + 0x140]
add al, 0xe1
mov byte [esp + ebx + 0x140], al
inc ebx
cmp ebx, 8
jne 0x41ff60
movzx eax, byte [esp + 0x140]
test al, al
je 0x41ff9b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ff90
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00441270
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x420bd6
mov dword [esp + 0x140], 0x87202012
mov byte [esp + 0x144], 0xb8
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0xb369a59f
mov edi, 0x4c965a60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x4c965ba1]
mov dword [esp + 0xc], ecx
mov ebx, eax
and ebx, ecx
mov ecx, ebx
and ecx, 2
mov edx, ebx
or ebx, 2
imul ebx, ecx
xor ecx, 2
and edx, 0xffffffbd
imul edx, ecx
add ebx, edx
mov edx, ebx
not edx
and edx, eax
mov dword [esp + 4], edi
and ebx, edi
sub edx, ebx
add edx, dword [esp + 0xc]
mov edi, 1
sub edi, edx
mov ecx, 0x1b
sub ecx, edx
not ecx
or edx, 1
or ecx, 1
add edx, 0xe4
and edx, ecx
not edi
and edi, 1
add edx, edi
mov byte [esp + eax + 0x4c965ba1], dl
inc eax
mov edi, dword [esp + 4]
dec edi
cmp eax, 0xb369a5ab
jne 0x420010
movzx eax, byte [esp + 0x140]
test al, al
je 0x4200ab
lea ecx, [esp + 0x141]
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 0x4200a0
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 fcn.004408d0
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
mov edi, 0
je 0x420bd6
mov dword [esp + 0x140], 0x81221d69
mov byte [esp + 0x144], 0xb4
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0x38ff515e
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x38ff501e]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x2a
mov byte [esp + eax - 0x38ff501e], cl
inc eax
cmp eax, 0x38ff5169
jne 0x420110
movzx eax, byte [esp + 0x140]
test al, al
je 0x42015b
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 0x420150
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
jne 0x4201b6
jmp 0x420bdc
mov dword [esp + 4], 0
push dword [esp + 0xc]
call fcn.00404700
add esp, 4
mov ebx, dword [esp + 0x44]
and bl, 1
or bl, byte [esp + 4]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x420c7d
mov dword [esp + 0x44], ebx
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040c870
add esp, 0xc
xor ebx, ebx
lea edi, [esp + 0x34]
jmp 0x4201fe
lea edi, [esp + 0x34]
inc ebx
cmp ebx, 0xb
je 0x4203b0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x18]
call fcn.00440780
test eax, eax
js 0x4201f4
movzx eax, byte [esp + 0x210]
movzx ecx, byte [esp + 0x211]
or al, 0x30
mov byte [esp + 0x60], al
or cl, 0x30
mov byte [esp + 0x61], cl
movzx ecx, byte [esp + 0x212]
or cl, 0x30
mov byte [esp + 0x62], cl
movzx ecx, byte [esp + 0x2d0]
or cl, 0x30
mov byte [esp + 0x63], cl
mov word [esp + 0x64], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x61]
inc ecx
test al, al
jne 0x420270
mov byte [esi + ecx], 0
cmp byte [esp + 0x212], 0
jne 0x4203d0
add esi, ecx
mov dword [esp + 0x78], 0xfadb4a5
mov byte [esp + 0x7c], 0x18
lea eax, [esp + 0x7d]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0xbb
mov ecx, 0x44
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x43]
mov edi, edx
not edi
or edi, ecx
or edx, eax
and edx, edi
add dl, 0x59
mov byte [esp + eax - 0x43], dl
inc eax
dec ecx
cmp eax, 0xc3
jne 0x4202c0
movzx eax, byte [esp + 0x78]
test al, al
je 0x4202fb
lea ecx, [esp + 0x79]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4202f0
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0x4c4d4a4b
mov word [esp + 0x7c], 0
mov eax, 0x72
mov ecx, 0x8d
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 6]
mov edi, eax
or edi, edx
not edx
or edx, ecx
and edx, edi
add dl, 0xc6
mov byte [esp + eax + 6], dl
inc eax
dec ecx
cmp eax, 0x78
jne 0x420330
mov eax, dword [0x452df4]
test eax, eax
je 0x4201f0
mov ecx, dword [esp + 0x78]
xor edx, edx
mov edi, dword [0x452df8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x420383
inc edx
cmp eax, edx
jne 0x420370
jmp 0x4201f0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4201f0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x452dfc]
push eax
call fcn.00442cc0
add esp, 0x14
jmp 0x4201f0
cmp byte [esp + 0x212], 0
jne 0x4203d2
xor edi, edi
mov ebx, dword [esp + 0x44]
jmp 0x42019f
add esi, ecx
call fcn.004048c0
mov dword [esp + 0xc], eax
push eax
call fcn.004044f0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x78], 0x4f1115eb
mov byte [esp + 0x7c], pe_nt_image_headers32
lea eax, [esp + 0x7d]
mov dword [eax + 3], 0
mov dword [eax], 0
mov eax, 0x8ebe4feb
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x7141b08d]
xor ecx, eax
mov edx, 0x97
sub edx, ecx
add ecx, 0x68
and edx, 0x80
and ecx, 0x7f
sub ecx, edx
add cl, 0x81
mov byte [esp + eax + 0x7141b08d], cl
inc eax
cmp eax, 0x8ebe4ff7
jne 0x420410
movzx eax, byte [esp + 0x78]
test al, al
je 0x42045b
lea ecx, [esp + 0x79]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420450
mov byte [esi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor edi, edi
mov ecx, eax
or ecx, edx
je 0x4204b0
lea ecx, [esp + 0x34]
push 0
push 0
push 0x40
lea ebx, [esp + 0x84]
push ebx
push edx
push eax
call fcn.00440780
test eax, eax
js 0x4204b0
lea ecx, [esp + 0x34]
mov edx, ebx
push dword [esp + 4]
call fcn.00422db0
add esp, 4
jmp 0x4204b2
xor eax, eax
mov dword [esp + 0x78], 0x27b8404b
mov byte [esp + 0x7c], 0x28
lea ecx, [esp + 0x7d]
mov byte [ecx + 4], 0
mov dword [ecx], 0
xor ecx, ecx
nop
mov ebx, edi
and ebx, 0xe
mov edx, ecx
xor edx, 0xb7
add edx, ebx
xor dl, byte [esp + ecx + 0x78]
add dl, 0x6d
mov byte [esp + ecx + 0x78], dl
inc ecx
add edi, 2
cmp ecx, 0xa
jne 0x4204d0
movzx ecx, byte [esp + 0x78]
test cl, cl
je 0x420520
lea edx, [esp + 0x79]
xor edi, edi
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 0x420510
jmp 0x420522
xor edi, edi
mov byte [esi], 0
test al, al
je 0x420180
push dword [esp + 4]
call fcn.004046c0
add esp, 4
test eax, eax
je 0x4206c0
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
lea edi, [esp + 0x34]
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.00440780
test eax, eax
js 0x420890
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.00440780
test eax, eax
js 0x420890
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.00440780
test eax, eax
js 0x420890
cmp byte [esp + 0x77], 0
lea eax, [esp + 0x60]
mov dword [esp + 0x30], eax
js 0x4206cb
mov dword [esp + 0x10], 0xc15bc7bb
mov dword [esp + 0x14], 0xcd50c3af
mov dword [esp + 0x18], 0xc982cfec
mov dword [esp + 0x1c], 0xf556cbab
mov dword [esp + 0x20], 0xf192f797
mov word [esp + 0x24], 0xf3f0
lea eax, [esp + 0x26]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0xd2
mov ecx, 0x2e
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xc2]
mov edi, edx
not edi
or edi, ecx
add edi, eax
and edx, ecx
or edx, edi
add dl, 0xeb
mov byte [esp + eax - 0xc2], dl
inc eax
dec ecx
cmp eax, 0xee
jne 0x420640
movzx edi, word [esp + 0x10]
test di, di
je 0x4206fc
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, ecx
mov dword [esp + 4], ecx
jmp 0x420698
movzx edi, word [eax]
test di, di
je 0x420711
movzx ebx, word [edx]
test bx, bx
je 0x420706
add eax, 2
add edx, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x4206b8
mov dword [esp + 4], ecx
mov edx, ecx
je 0x420690
lea eax, [esp + 0x10]
jmp 0x420690
mov al, 1
mov dword [esp + 4], eax
jmp 0x420188
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov eax, ecx
or eax, edx
je 0x420890
mov edi, dword [esp + 0x68]
mov ebx, edi
inc ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
jns 0x4207ad
mov eax, 0xffffffff
jmp 0x4207b4
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x78]
jmp 0x420723
lea edx, [esp + 0x78]
mov ebx, edx
jmp 0x42086d
lea edx, [esp + 0x78]
mov ebx, edx
mov eax, dword [esp + 4]
test eax, eax
je 0x42086d
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x42086d
mov ebx, eax
add eax, 0x14
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x42075a
movzx edi, word [ebx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x420740
mov ebx, edx
jmp 0x42086d
mov ebx, edx
test ecx, ecx
je 0x420864
sar ecx, 1
mov edx, ecx
and edx, 3
je 0x420804
xor edi, edi
mov dword [esp + 4], edx
lea ebx, [esp + 0x78]
nop
nop
nop
nop
nop
mov dword [esp + 8], ebx
movzx ebx, word [eax]
xor edx, edx
test bx, bx
setne dl
lea eax, [eax + edx*2]
mov edx, dword [esp + 8]
mov word [edx], bx
mov ebx, dword [esp + 8]
add ebx, 2
inc edi
cmp dword [esp + 4], edi
jne 0x420780
mov edx, ecx
sub edx, edi
jmp 0x42080a
lea eax, [edi*2 + 2]
push eax
call fcn.0040c7f0
add esp, 4
mov edx, 2
sub edx, edi
and edx, 2
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add ebx, ecx
lea ecx, [esp + 0x34]
push 0
push 0
push ebx
mov dword [esp + 0x3c], eax
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.00440780
test eax, eax
jns 0x4205ee
jmp 0x420890
lea ebx, [esp + 0x78]
mov edx, ecx
dec ecx
cmp ecx, 3
jb 0x420864
mov ecx, ebx
movzx edi, word [eax]
xor ebx, ebx
test di, di
setne bl
mov word [ecx], di
lea edi, [eax + ebx*2]
movzx eax, word [eax + ebx*2]
xor ebx, ebx
test ax, ax
setne bl
mov word [ecx + 2], ax
lea eax, [edi + ebx*2]
movzx edi, word [edi + ebx*2]
xor ebx, ebx
test di, di
setne bl
mov word [ecx + 4], di
lea edi, [eax + ebx*2]
movzx ebx, word [eax + ebx*2]
xor eax, eax
test bx, bx
setne al
lea eax, [edi + eax*2]
mov word [ecx + 6], bx
lea ebx, [ecx + 8]
add edx, 0xfffffffc
jne 0x420810
mov word [ebx], 0
lea edx, [esp + 0x78]
cmp byte [esp + 0x77], 0
jns 0x420884
push dword [esp + 0x30]
call fcn.0040c800
lea edx, [esp + 0x7c]
add esp, 4
cmp edx, ebx
jne 0x420956
nop
nop
nop
nop
mov dword [esp + 0x10], 0x8f3c8951
mov dword [esp + 0x14], 0x83318d2b
mov dword [esp + 0x18], 0x8734813b
mov dword [esp + 0x1c], 0x9b2e853d
mov dword [esp + 0x20], 0x9f9e992b
mov dword [esp + 0x24], 0
mov eax, 0x30e0a962
mov ecx, 0xcf1f569d
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x30e0a952]
mov ebx, ecx
and ebx, 0xc400020c
xor edi, 0xde422a4c
mov edx, eax
and edx, 0x30e081f3
or edx, ebx
xor edx, 0x1a420040
mov ebx, edi
and ebx, edx
add edx, edi
add ebx, ebx
sub edx, ebx
lea ebx, [edx + 0x15]
mov edi, 0xea
sub edi, edx
or edi, 1
add edi, edx
or ebx, 1
add ebx, edi
add bl, 0x16
mov byte [esp + eax - 0x30e0a952], bl
inc eax
dec ecx
cmp eax, 0x30e0a97a
jne 0x4208d0
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x78]
mov ebx, edx
test ax, ax
je 0x420951
lea ecx, [esp + 0x12]
mov ebx, edx
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420940
mov word [ebx], 0
sub ebx, edx
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, ebx
and ecx, 0xfffffffc
lea edi, [esi + ecx]
lea eax, [esp + ecx]
add eax, 0x78
mov ecx, ebx
not ecx
or ecx, 3
mov dword [esp + 8], ebx
add ebx, ecx
inc ebx
mov ecx, ebx
shr 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 0x4209a5
and ebx, 0xfffffffe
movzx eax, byte [eax + ebx]
mov ecx, dword [esp + 4]
mov byte [ecx + ebx], al
mov dword [esp + 0x10], 0xbb57452e
mov word [esp + 0x14], 0x3522
lea eax, [esp + 0x26]
mov byte [eax - 0xe], 0
mov word [eax - 0x10], 0
xor edi, edi
xor ecx, ecx
lea edx, [esp + 0x10]
nop
nop
nop
nop
nop
nop
movzx eax, byte [edx]
mov dword [esp + 4], eax
mov eax, edi
and eax, 0x7f26a694
mov ebx, ecx
xor ebx, 0xc06cacb5
sub ebx, eax
inc ebx
mov eax, ebx
and eax, dword [esp + 4]
add eax, eax
sub ebx, eax
add ebx, dword [esp + 4]
mov eax, ebx
and eax, 0x71
or ebx, 0x71
add ebx, eax
inc bl
mov byte [edx], bl
inc edx
dec ecx
add edi, 0xfffffffe
cmp ecx, 0xfffffff7
jne 0x4209d0
mov edx, dword [esp + 8]
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x420a3b
lea ecx, [esp + 0x11]
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 0x420a30
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 0x420a50
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420a70
mov eax, 0xffffffff
jmp 0x420a79
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040c7f0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x420ab1
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 0x420aa0
mov dword [esp + 8], eax
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x79c87b55
mov dword [esp + 0x14], 0x7df77fe3
mov dword [esp + 0x18], 0x71e6732e
mov dword [esp + 0x1c], 0x75e277f8
mov dword [esp + 0x20], 0x6b74
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx + 0x10]
mov ebx, edx
xor ebx, 0x699a0e3f
add ebx, ecx
xor ebx, edi
neg ebx
lea edi, [ebx + ebx]
and edi, 0x78
xor ebx, 0xc3
sub ebx, edi
add bl, 2
mov byte [esp + edx + 0x10], bl
inc edx
add ecx, 2
cmp edx, 0x14
jne 0x420af0
add eax, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x420b51
lea edx, [esp + 0x7a]
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 0x420b40
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x420b81
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 0x420b70
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
call fcn.00405480
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x420ba0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040d480
mov dword [esp + 4], eax
push edi
call fcn.00405510
add esp, 4
push ebx
call fcn.0040c800
add esp, 4
xor edi, edi
jmp 0x420188
xor ebx, ebx
jmp 0x420bdc
xor edi, edi
lea ecx, [esp + 0x34]
call fcn.0043fff0
mov dword [esp + 0x140], 0x7916e905
mov byte [esp + 0x144], 0x64
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
nop
nop
movzx eax, byte [esp + edi + 0x140]
mov ecx, 0xb1666497
sub ecx, edi
or ecx, eax
mov edx, 0x97
sub edx, edi
and edx, eax
xor edx, ecx
lea eax, [edx + edx]
not eax
add eax, edx
add al, 0xf8
mov byte [esp + edi + 0x140], al
mov eax, edi
xor eax, 1
and edi, 1
lea edi, [eax + edi*2]
cmp edi, 0xc
jb 0x420c10
movzx eax, byte [esp + 0x140]
test al, al
je 0x420c6b
lea ecx, [esp + 0x141]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420c60
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 0x420bdc
cmp eax, dword [esp + 0x50]
je 0x420bdc
push eax
call fcn.0040c800
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x420bdc