Function at 0x41f240
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 edi, dword [ebp + 0x10]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x138], 0x7eee99f
mov byte [esp + 0x13c], pe_nt_image_headers32
mov dword [esp + 0x13d], 0
mov esi, 0xe049b8bf
nop
nop
nop
movzx edx, byte [esp + esi + 0x1fb64879]
mov ebx, edx
and ebx, esi
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, esi
add al, 0x45
mov byte [esp + esi + 0x1fb64879], al
inc esi
cmp esi, 0xe049b8c8
jne 0x41f290
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f2fb
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f2f0
mov ebx, edx
mov byte [edx], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x50]
lea edx, [esp + 0x30]
push eax
push ecx
push edx
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push edi
push dword [eax + 0xc]
call fcn.00421a50
add esp, 0x18
test al, al
je 0x41f9ad
mov dword [esp + 0x138], 0x274fbdb4
mov byte [esp + 0x13c], 0x28
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
mov eax, 0x37
mov ecx, 0xc8
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x101]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xed
mov byte [esp + eax + 0x101], dl
inc eax
dec ecx
cmp eax, 0x41
jne 0x41f380
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f3cb
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f3c0
mov dword [esp], ebx
mov byte [ebx], 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], 0xae7855a9
mov dword [esp + 0x13c], 0x4cab754a
mov dword [esp + 0x140], 0x7a8c9c62
mov dword [esp + 0x144], 0x949b9a99
mov dword [esp + 0x148], 0x92489b41
mov dword [esp + 0x14c], 0x455a4f5d
mov dword [esp + 0x150], 0x888f8e8d
mov dword [esp + 0x154], 0x6d42835c
mov dword [esp + 0x158], 0x577c498b
mov dword [esp + 0x15c], 0x7e8b8f57
mov dword [esp + 0x160], 0xb6768593
mov dword [esp + 0x164], 0x67b49490
mov dword [esp + 0x168], 0xbc667496
mov dword [esp + 0x16c], 0x639f7f7d
mov dword [esp + 0x170], 0x6a90b16f
mov dword [esp + 0x174], 0x646b6a69
mov dword [esp + 0x178], 0xb685bbb1
mov dword [esp + 0x17c], 0x5c6f8863
mov dword [esp + 0x180], 0x58a183ac
mov dword [esp + 0x184], 0x5b5b5a59
mov dword [esp + 0x188], 0x505756ad
mov dword [esp + 0x18c], 0x835aa751
mov dword [esp + 0x190], 0xbe46b342
mov dword [esp + 0x194], 0x968547b2
mov dword [esp + 0x198], 0x40474645
mov dword [esp + 0x19c], 0xde524a95
mov dword [esp + 0x1a0], 0xe33dee3d
mov dword [esp + 0x1a4], 0x3437d831
mov dword [esp + 0x1a8], 0x30373635
mov dword [esp + 0x1ac], 0xd8333231
mov dword [esp + 0x1b0], 0x2af9e221
mov dword [esp + 0x1b4], 0x242b2a29
mov dword [esp + 0x1b8], 0xfdcbc4f3
mov dword [esp + 0x1bc], 0x11f62e21
mov byte [esp + 0x1c0], 0x5c
mov byte [esp + 0x1c5], 0
mov dword [esp + 0x1c1], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd9
xor cl, byte [esp + eax + 0x138]
add cl, 0xc3
mov byte [esp + eax + 0x138], cl
inc eax
cmp eax, 0x8e
jne 0x41f590
mov dword [esp + 0x58], 0x10cafefe
mov dword [esp + 0x5c], 0x40379558
mov dword [esp + 0x60], 0x537c30f0
mov dword [esp + 0x64], 0xa7a6a5a4
mov dword [esp + 0x68], 0xbb2ea63d
mov dword [esp + 0x6c], 0x474f24e4
mov dword [esp + 0x70], 0xbbbab9b8
mov dword [esp + 0x74], 0xef462cec
mov dword [esp + 0x78], 0xd48a6d33
mov dword [esp + 0x7c], 0x1b1a0eaa
mov dword [esp + 0x80], 0x1f1e1d1c
mov dword [esp + 0x84], 0x13121110
mov dword [esp + 0x88], 0x409aaeae
mov dword [esp + 0x8c], 0x46869528
mov dword [esp + 0x90], 0xc641810e
mov dword [esp + 0x94], 0xd7d6d5d4
mov dword [esp + 0x98], 0x8b32e088
mov dword [esp + 0x9c], 0xefd2b175
mov dword [esp + 0xa0], 0xeb637cb0
mov dword [esp + 0xa4], 0xdfe6e5e4
mov dword [esp + 0xa8], 0xe3e2e118
mov dword [esp + 0xac], 0xa165a5fc
mov dword [esp + 0xb0], 0xad61a1d8
mov dword [esp + 0xb4], 0x596dadcc
mov dword [esp + 0xb8], 0xf3f2f1f0
mov dword [esp + 0xbc], 0x33529858
mov dword [esp + 0xc0], 0x1b935008
mov dword [esp + 0xc4], 0x798da5c
mov dword [esp + 0xc8], 0x3020100
mov dword [esp + 0xcc], 0x471e1d1c
mov dword [esp + 0xd0], 0x361d1381
mov dword [esp + 0xd4], 0x17161514
mov dword [esp + 0xd8], 0x2f468a48
mov dword [esp + 0xdc], 0xce1f752c
mov byte [esp + 0xe0], 0x28
mov byte [esp + 0xe5], 0
mov dword [esp + 0xe1], 0
xor edi, edi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xc], edi
movzx eax, byte [esp + ecx + 0x58]
mov esi, ecx
and esi, 0x9c
mov edx, ecx
or edx, 0xfb816263
sub edx, esi
add edx, edi
xor edx, eax
mov edi, edx
not edi
mov ebx, edi
and ebx, 0xf1
mov eax, edi
and edi, 0x73
lea esi, [edx + edi*2]
mov edi, dword [esp + 0xc]
and edx, 2
imul edx, ebx
and eax, 2
or ebx, 2
imul ebx, eax
sub edx, esi
add edx, ebx
add dl, 0xf3
mov byte [esp + ecx + 0x58], dl
inc ecx
dec edi
cmp edi, 0xffffff72
jne 0x41f730
lea ebx, [esp + 0x138]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x128]
push ebx
push 0x88
push eax
lea esi, [esp + 0x3c]
push esi
call fcn.0043ff90
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x41f9bc
mov dword [esp + 0x138], 0x91e8edfc
mov byte [esp + 0x13c], 0x9c
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
mov eax, 0x65
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
lea ecx, [eax - 0x56a95f00]
or ecx, edx
and edx, eax
not ecx
or ecx, edx
mov edx, ecx
not edx
add ecx, 0xfd
and edx, 1
or ecx, 1
add ecx, edx
mov byte [ebx], cl
inc ebx
dec eax
cmp eax, 0x59
jne 0x41f800
movzx eax, byte [esp + 0x138]
test al, al
mov edi, dword [esp]
je 0x41f85b
lea ecx, [esp + 0x139]
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 0x41f850
mov byte [edi], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push esi
call fcn.0043ff90
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
xor ecx, ecx
or eax, edx
je 0x4204af
mov dword [esp + 0x138], 0xf1141c6e
mov byte [esp + 0x13c], 0xfc
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0xaa
xor al, byte [esp + ecx + 0x138]
add al, 0xae
mov byte [esp + ecx + 0x138], al
inc ecx
cmp ecx, 0xb
jne 0x41f8c0
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f8fb
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f8f0
mov byte [edi], 0
lea eax, [esp + 0x118]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x30]
push 0
push 8
push eax
push edx
call fcn.0043f500
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x420485
mov dword [esp], edi
mov dword [esp + 0x138], 0x99fefdc1
mov byte [esp + 0x13c], 0x64
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
lea eax, [esp + 0x138]
mov ecx, 0xe7
nop
nop
movzx edx, byte [eax]
lea esi, [edx + edx]
not esi
add esi, edx
mov edi, esi
xor edi, edx
sub edi, esi
and esi, edx
add edi, esi
or edi, ecx
and edx, ecx
xor edx, edi
mov bl, 0x87
sub bl, dl
mov byte [eax], bl
inc eax
dec ecx
cmp ecx, 0xdb
jne 0x41f960
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f9c6
lea ecx, [esp + 0x139]
mov edi, dword [esp]
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f9a0
jmp 0x41f9c9
mov dword [esp + 0x2c], 0
mov edi, ebx
jmp 0x4204b3
xor ecx, ecx
mov edi, dword [esp]
jmp 0x4204af
mov edi, dword [esp]
mov byte [edi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x100], ecx
cmp eax, ecx
je 0x420485
xor ecx, ecx
lea esi, [esp + 0x30]
jmp 0x41fa1e
xor ebx, ebx
push dword [esp + 0xc]
call fcn.00404df0
add esp, 4
mov ecx, dword [esp + 0x2c]
and cl, 1
or cl, bl
mov eax, dword [esp + 0x104]
add eax, 8
cmp eax, dword [esp + 0x100]
je 0x420489
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x104], eax
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
push 0x198
push 0
lea eax, [esp + 0x140]
push eax
call fcn.0040ce90
add esp, 0xc
xor ebx, ebx
jmp 0x41fa6d
mov edi, dword [esp]
inc ebx
cmp ebx, 0xb
je 0x41fc20
mov ecx, esi
push 0
push 0
push 0x198
lea eax, [esp + 0x144]
push eax
push dword [esp + 0x14]
push dword [esp + 0x20]
call fcn.0043f370
test eax, eax
js 0x41fa63
movzx eax, byte [esp + 0x208]
movzx ecx, byte [esp + 0x209]
or al, 0x30
mov byte [esp + 0xe8], al
or cl, 0x30
mov byte [esp + 0xe9], cl
movzx ecx, byte [esp + 0x20a]
or cl, 0x30
mov byte [esp + 0xea], cl
movzx ecx, byte [esp + 0x2c8]
or cl, 0x30
mov byte [esp + 0xeb], cl
mov word [esp + 0xec], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi + ecx], al
movzx eax, byte [esp + ecx + 0xe9]
inc ecx
test al, al
jne 0x41faf0
mov byte [edi + ecx], 0
cmp byte [esp + 0x20a], 0
jne 0x41fc40
add edi, ecx
mov dword [esp + 0x58], 0x4fad94a5
mov byte [esp + 0x5c], 0x38
mov dword [esp + 0x5d], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov esi, eax
and esi, 0x16
mov edx, ecx
xor edx, 0x8b
add edx, esi
xor dl, byte [esp + ecx + 0x58]
add dl, 0x49
mov byte [esp + ecx + 0x58], dl
inc ecx
add eax, 2
cmp ecx, 9
jne 0x41fb30
movzx eax, byte [esp + 0x58]
test al, al
je 0x41fb6b
lea ecx, [esp + 0x59]
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fb60
mov dword [esp], edi
mov byte [edi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x58], 0x80b0a0d
lea eax, [esp + 0x5c]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x43
mov ecx, 0xbc
movzx esi, byte [esp + eax + 0x15]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xb1
mov byte [esp + eax + 0x15], dl
inc eax
dec ecx
cmp eax, 0x4a
jne 0x41fba0
mov eax, dword [0x44f534]
test eax, eax
lea esi, [esp + 0x30]
je 0x41fa60
mov ecx, dword [esp + 0x58]
xor edx, edx
mov edi, dword [0x44f538]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x41fbf3
inc edx
cmp eax, edx
jne 0x41fbe0
jmp 0x41fa60
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41fa60
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x44f53c]
push eax
call fcn.00440f10
add esp, 0x14
jmp 0x41fa60
cmp byte [esp + 0x20a], 0
jne 0x41fc42
mov ecx, dword [esp + 0x2c]
jmp 0x41fa07
add edi, ecx
call fcn.00404fb0
mov dword [esp + 0xc], eax
push eax
call fcn.00404970
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x58], 0x27c1cdcb
mov byte [esp + 0x5c], 0x28
lea eax, [esp + 0x5c]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x58]
mov ebx, eax
and ebx, 5
mov ecx, eax
and ecx, 2
mov esi, ecx
xor esi, 2
imul esi, ebx
or ebx, 2
imul ebx, ecx
mov ecx, eax
xor ecx, 0xddb17f7
add ecx, esi
add ecx, ebx
xor ecx, edx
add ecx, 0x5feb917
mov edx, ecx
xor edx, 0xeb
and ecx, 0x14
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x58], cl
inc eax
cmp eax, 0xc
jne 0x41fc80
movzx eax, byte [esp + 0x58]
test al, al
je 0x41fd00
lea ecx, [esp + 0x59]
lea ebx, [esp + 0x58]
lea esi, [esp + 0x30]
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 0x41fcf0
jmp 0x41fd08
lea ebx, [esp + 0x58]
lea esi, [esp + 0x30]
mov byte [edi], 0
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov ecx, eax
or ecx, edx
je 0x41fd50
mov ecx, esi
push 0
push 0
push 0x40
push ebx
push edx
push eax
call fcn.0043f370
test eax, eax
js 0x41fd5c
mov ecx, esi
mov edx, ebx
push dword [esp + 8]
call fcn.004222d0
add esp, 4
mov dword [esp + 4], eax
jmp 0x41fd64
mov eax, edi
mov dword [esp + 4], 0
jmp 0x41fd66
mov dword [esp + 4], 0
mov eax, edi
mov dword [esp + 0x58], 0xe718000b
mov byte [esp + 0x5c], 0xe8
lea ecx, [esp + 0x5c]
mov byte [ecx + 5], 0
mov dword [ecx + 1], 0
mov esi, 0xdb1be58
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [edx]
mov ecx, edi
not ecx
or ecx, 0xabf0015d
lea ebx, [edi + ecx]
inc ebx
and edi, 0xffffffa2
mov ecx, edi
xor ecx, 0xa2
xor edi, 0x540ffea2
or edi, ecx
or ebx, edi
xor ebx, esi
xor ebx, 0xabf0015d
mov ecx, ebx
and ecx, 0xbc
add ecx, ebx
or ebx, 0x43
sub ecx, ebx
mov byte [edx], cl
inc edx
dec esi
cmp esi, 0xdb1be4e
jne 0x41fd90
movzx ecx, byte [esp + 0x58]
test cl, cl
je 0x41fe00
lea edx, [esp + 0x59]
mov edi, eax
lea esi, [esp + 0x30]
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41fdf0
jmp 0x41fe06
mov edi, eax
lea esi, [esp + 0x30]
mov byte [edi], 0
cmp byte [esp + 4], 0
je 0x41f9f0
push dword [esp + 8]
call fcn.00404db0
add esp, 4
test eax, eax
je 0x41ffaa
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.0043f370
test eax, eax
mov dword [esp], edi
js 0x420170
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.0043f370
test eax, eax
js 0x420170
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 + 0xf4]
push edi
push edx
push eax
call fcn.0043f370
test eax, eax
js 0x4200d5
cmp byte [esp + 0xff], 0
lea eax, [esp + 0xe8]
mov dword [esp + 4], eax
js 0x41ffb1
mov dword [esp + 0x10], 0x13a111bd
mov dword [esp + 0x14], 0x6fdc6dd1
mov dword [esp + 0x18], 0x6b366908
mov dword [esp + 0x1c], 0x67ea65c5
mov dword [esp + 0x20], 0x63c661c1
mov word [esp + 0x24], 0x7d7c
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov edx, 0x3c
nop
movzx eax, byte [esp + edx - 0x2c]
lea ebx, [edx - 0x44def900]
and ebx, edx
and ebx, eax
mov esi, eax
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x7d
mul cl
mov ecx, eax
mov eax, esi
add cl, al
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, edx
add al, 0xd4
mov byte [esp + edx - 0x2c], al
inc edx
cmp edx, 0x57
jne 0x41ff20
movzx edi, word [esp + 0x10]
test di, di
je 0x41fff1
lea eax, [esp + 0x10]
mov edx, dword [esp + 4]
mov ecx, edx
jmp 0x41ff88
movzx edi, word [eax]
test di, di
je 0x420000
movzx ebx, word [ecx]
test bx, bx
je 0x41fff7
add ecx, 2
add eax, 2
lea esi, [edx + 2]
cmp bx, di
je 0x41ffa2
mov edx, esi
mov ecx, esi
je 0x41ff80
lea eax, [esp + 0x10]
jmp 0x41ff80
mov bl, 1
jmp 0x41f9f2
mov edx, dword [esp + 0xe8]
mov edi, dword [esp + 0xec]
mov eax, edx
or eax, edi
je 0x4200d5
mov eax, dword [esp + 0xf0]
mov ecx, eax
and ecx, 1
xor eax, 1
lea ebx, [eax + ecx*2]
test ebx, ebx
mov dword [esp + 8], edx
jns 0x420093
mov eax, 0xffffffff
jmp 0x420096
mov edx, dword [esp + 4]
jmp 0x42000c
lea ebx, [esp + 0x58]
jmp 0x420140
lea ebx, [esp + 0x58]
test edx, edx
je 0x420140
movzx edi, word [edx + 0x14]
lea ebx, [esp + 0x58]
test di, di
je 0x420140
lea eax, [edx + 0x14]
xor ecx, ecx
lea ebx, [esp + 0x58]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x420048
movzx edi, word [edx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x420030
jmp 0x420140
test ecx, ecx
je 0x42013b
sar ecx, 1
mov edx, ecx
and edx, 3
je 0x4200dd
xor edi, edi
lea ebx, [esp + 0x58]
mov dword [esp + 8], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov edx, dword [esp + 8]
mov word [ebx], si
add ebx, 2
inc edi
cmp edx, edi
jne 0x420070
mov esi, ecx
sub esi, edi
jmp 0x4200e3
lea eax, [ebx + ebx]
push eax
call fcn.0040ce10
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
mov ecx, esi
push 0
push 0
push ebx
mov dword [esp + 0x10], eax
push eax
push edi
push dword [esp + 0x1c]
call fcn.0043f370
test eax, eax
jns 0x41fedd
mov edi, dword [esp]
jmp 0x420170
lea ebx, [esp + 0x58]
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x42013b
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 0x4200e9
mov word [ebx], 0
cmp byte [esp + 0xff], 0
jns 0x420156
push dword [esp + 4]
call fcn.0040ce20
add esp, 4
lea eax, [esp + 0x58]
cmp eax, ebx
mov edi, dword [esp]
jne 0x420226
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0xf968fbbb
mov dword [esp + 0x14], 0xfd6fff5d
mov dword [esp + 0x18], 0xf160f365
mov dword [esp + 0x1c], 0xf562f76f
mov dword [esp + 0x20], 0xe9eaeb65
lea eax, [esp + 0x26]
mov byte [eax], 0
mov word [eax - 2], 0
mov edx, 0xff
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0xef]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
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, edx
add al, 5
mov byte [esp + edx - 0xef], al
inc edx
cmp edx, 0x116
jne 0x4201b0
movzx eax, word [esp + 0x10]
lea ebx, [esp + 0x58]
test ax, ax
je 0x420221
lea ecx, [esp + 0x12]
lea ebx, [esp + 0x58]
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420210
mov word [ebx], 0
mov edx, ebx
lea eax, [esp + 0x58]
sub edx, eax
mov ecx, edx
shr ecx, 2
mov esi, edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
and eax, 0xfffffffc
lea edi, [esi + eax]
add eax, esp
add eax, 0x58
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, eax
mov dword [esp + 4], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x42026f
mov ecx, edx
and ecx, 2
movzx eax, byte [eax + ecx]
mov esi, dword [esp + 4]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0xabbfbd16
mov word [esp + 0x14], 0x1d12
lea eax, [esp + 0x26]
mov word [eax - 0xc], 0
mov dword [eax - 0x10], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x10]
mov ebx, eax
and ebx, 0x14
mov edi, ecx
xor edi, 0x9e44fbba
add edi, ebx
mov ebx, edi
and ebx, esi
add ebx, ebx
add edi, esi
mov esi, edi
not esi
and esi, ebx
not ebx
and ebx, edi
sub ebx, esi
add bl, 0x5e
mov byte [esp + ecx + 0x10], bl
inc ecx
add eax, 2
cmp ecx, 0xc
jne 0x4202a0
mov edi, dword [esp]
add edi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x4202fb
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4202f0
mov dword [esp], edi
mov byte [edi], 0
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x420310
lea ecx, [edi + eax]
add ecx, 0xfffffffe
mov eax, edi
not eax
and eax, ecx
xor ecx, edi
add eax, eax
sub eax, ecx
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420341
mov eax, 0xffffffff
jmp 0x42034a
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040ce10
add esp, 4
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x420381
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x420370
mov word [ebx], 0x2f
mov dword [esp + 0x10], 0x83cc81ef
mov dword [esp + 0x14], 0x87318521
mov dword [esp + 0x18], 0x8b3e89e6
mov dword [esp + 0x1c], 0x8f3a8d34
mov word [esp + 0x20], 0x9190
lea ecx, [esp + 0x26]
mov byte [ecx - 2], 0
mov word [ecx - 4], 0
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x20
xor dl, byte [esp + ecx + 0x10]
add dl, 0x60
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x15
jne 0x4203c0
add ebx, 2
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x420401
lea edx, [esp + 0x5a]
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 0x4203f0
mov word [ebx], 0
movzx ecx, word [esp + 0x10]
mov esi, eax
test cx, cx
je 0x420431
lea edx, [esp + 0x12]
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 0x420420
mov word [ebx], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
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 0x420450
mov ecx, dword [ebp + 8]
push ebx
push edi
push esi
call fcn.0040d7a0
mov ebx, eax
push edi
call fcn.00405ca0
add esp, 4
push esi
call fcn.0040ce20
add esp, 4
mov edi, dword [esp]
lea esi, [esp + 0x30]
jmp 0x41f9f2
xor ecx, ecx
jmp 0x4204af
mov eax, dword [esp + 0x44]
and cl, 1
test eax, eax
je 0x4204af
cmp eax, dword [esp + 0x48]
je 0x4204af
push eax
mov esi, ecx
call fcn.0040ce20
mov ecx, esi
add esp, 4
mov dword [esp + 0x44], 0
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x30]
call fcn.0043eb40
mov dword [esp + 0x138], 0x19b6a945
mov byte [esp + 0x13c], 0x24
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x38
xor al, byte [esp + ecx + 0x138]
add al, 0xe8
mov byte [esp + ecx + 0x138], al
inc ecx
cmp ecx, 0xc
jne 0x4204f0
movzx eax, byte [esp + 0x138]
test al, al
je 0x42052b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420520
mov byte [edi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, dword [esp + 0x2c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret