Function at 0x420140
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 edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x140], 0xf16a6b1d
mov byte [esp + 0x144], 0xfc
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xaa
xor dl, byte [esp + ecx + 0x140]
add dl, 0xae
mov byte [esp + ecx + 0x140], dl
inc ecx
cmp ecx, 0xb
jne 0x4201a0
mov esi, dword [esi]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x4201eb
lea edx, [esp + 0x141]
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 0x4201e0
mov byte [esi], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x68]
lea ebx, [esp + 0x30]
push ecx
push edx
push ebx
push dword [edi + 0x10]
push eax
push dword [edi + 0xc]
call fcn.00422640
add esp, 0x18
test al, al
je 0x4207bd
mov dword [esp + 0x140], 0x91f9efe8
mov byte [esp + 0x144], 0x9c
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
mov edi, 0x83415e5
mov ecx, 0x97cbea1a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
and eax, 0x83001f2
mov edx, ecx
and edx, 0x8248a00d
or edx, eax
lea eax, [edi - 0x8341500]
mov dword [esp + 0xc], eax
and eax, 0x91
mov ebx, ecx
and ebx, 0x2e
or ebx, eax
xor ebx, 0x6e
or ebx, dword [esp + 0xc]
movzx eax, byte [esp + ecx + 0x68341726]
xor edx, 0xe24cb40d
or edx, eax
and ebx, eax
lea eax, [edx + edx]
not eax
add eax, edx
or eax, ebx
add al, 0x7e
mov byte [esp + ecx + 0x68341726], al
dec edi
inc ecx
cmp edi, 0x83415db
jne 0x420270
movzx eax, byte [esp + 0x140]
test al, al
je 0x4202eb
lea ecx, [esp + 0x141]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4202e0
mov byte [esi], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x140], 0x6abc9777
mov dword [esp + 0x144], 0xa069a7b2
mov dword [esp + 0x148], 0xbe60909a
mov dword [esp + 0x14c], 0x98999e9f
mov dword [esp + 0x150], 0xa68c65af
mov dword [esp + 0x154], 0x9b9a899b
mov dword [esp + 0x158], 0xacada2a3
mov dword [esp + 0x15c], 0xb3925598
mov dword [esp + 0x160], 0x85a09355
mov dword [esp + 0x164], 0xb2494981
mov dword [esp + 0x168], 0x8246a7ad
mov dword [esp + 0x16c], 0x4580a0a4
mov dword [esp + 0x170], 0xf836b896
mov dword [esp + 0x174], 0x39dd393b
mov dword [esp + 0x178], 0xcec4ebc1
mov dword [esp + 0x17c], 0xc8c9cecf
mov dword [esp + 0x180], 0xe2f7e5ff
mov dword [esp + 0x184], 0xd02dccd5
mov dword [esp + 0x188], 0xdcd3fdc0
mov dword [esp + 0x18c], 0x21d9dedf
mov dword [esp + 0x190], 0xe4e5dad3
mov dword [esp + 0x194], 0xd91af1e7
mov dword [esp + 0x198], 0xfa16ed1a
mov dword [esp + 0x19c], 0xdad711fa
mov dword [esp + 0x1a0], 0xf4f5eaeb
mov dword [esp + 0x1a4], 0xd2020ec3
mov dword [esp + 0x1a8], 0xc9ffc2f3
mov dword [esp + 0x1ac], 0xf805dc07
mov dword [esp + 0x1b0], 0x405fafb
mov dword [esp + 0x1b4], 0x14010607
mov dword [esp + 0x1b8], 0xe3b3eff
mov dword [esp + 0x1bc], 0x8090e0f
mov dword [esp + 0x1c0], 0x3b09283d
mov dword [esp + 0x1c4], 0xef26ea17
mov byte [esp + 0x1c8], 0xd0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c9], 0
mov eax, 0x23c2d8e
mov ecx, 0xedc3d271
nop
nop
nop
movzx edx, byte [esp + eax - 0x23c2c4e]
mov edi, ecx
and edi, 0xe443d009
mov ebx, eax
and ebx, 0x20407f6
or ebx, edi
xor ebx, edx
xor ebx, 0xf47bf809
mov edx, 0x46
sub edx, ebx
or edx, 1
add edx, ebx
mov edi, 6
sub edi, ebx
add ebx, 0x39
and edi, 5
and ebx, 0xfa
or ebx, edi
add edx, edx
xor ebx, 0xfb
sub edx, ebx
add dl, 0x73
mov byte [esp + eax - 0x23c2c4e], dl
inc eax
dec ecx
cmp eax, 0x23c2e1e
jne 0x4204b0
mov dword [esp + 0x70], 0x74a656aa
mov dword [esp + 0x74], 0xdc698bcc
mov dword [esp + 0x78], 0xf1286cac
mov dword [esp + 0x7c], 0xcdcacbc8
mov dword [esp + 0x80], 0xd97ace4b
mov dword [esp + 0x84], 0xfdf15898
mov dword [esp + 0x88], 0xd9c6c7c4
mov dword [esp + 0x8c], 0x85ea4080
mov dword [esp + 0x90], 0x70a61b59
mov dword [esp + 0x94], 0x90e167e
mov dword [esp + 0x98], 0xf50a0b08
mov dword [esp + 0x9c], 0xf1f6f7f4
mov dword [esp + 0xa0], 0xa476867a
mov dword [esp + 0xa4], 0xbe7a6b1c
mov dword [esp + 0xa8], 0x3ebb7ffa
mov dword [esp + 0xac], 0x3d3a3b38
mov dword [esp + 0xb0], 0x691e4c64
mov dword [esp + 0xb4], 0x355677ab
mov dword [esp + 0xb8], 0x9bda86c
mov dword [esp + 0xbc], 0x750a0b08
mov dword [esp + 0xc0], 0x10e0f34
mov dword [esp + 0xc4], 0x439f5b00
mov dword [esp + 0xc8], 0x479b5f64
mov dword [esp + 0xcc], 0x8b874360
mov dword [esp + 0xd0], 0x111e1f1c
mov dword [esp + 0xd4], 0x71568c4c
mov dword [esp + 0xd8], 0x798d4c14
mov dword [esp + 0xdc], 0x6decb230
mov dword [esp + 0xe0], 0x616e6f6c
mov dword [esp + 0xe4], 0x3d626360
mov dword [esp + 0xe8], 0x6e676dff
mov dword [esp + 0xec], 0x7d7a7b78
mov dword [esp + 0xf0], 0x1522e224
mov dword [esp + 0xf4], 0x56012b70
mov byte [esp + 0xf8], 0x74
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf9], 0
mov eax, 0xa8c7fed6
mov ecx, 0x1738012a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x5738019a]
mov ebx, ecx
and ebx, 0x133801b8
mov edx, ecx
or edx, 0xcc827e47
add edx, eax
or edx, ebx
xor edx, edi
mov edi, edx
xor edi, 0x38
mov ebx, edx
xor ebx, 0x11
and ebx, edi
xor edx, 0x6e
lea edx, [edx + ebx*2]
inc dl
mov byte [esp + eax + 0x5738019a], dl
inc eax
dec ecx
cmp eax, 0xa8c7ff66
jne 0x4206b0
lea eax, [esp + 0x140]
lea edx, [esp + 0x70]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea eax, [esp + 0x3c]
push eax
call fcn.00440b90
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x4213b1
mov dword [esp + 0x140], 0x89e01dec
mov byte [esp + 0x144], 0xac
mov dword [esp + 0x145], 0
mov eax, 0x84463e1c
nop
nop
movzx ecx, byte [esp + eax + 0x7bb9c324]
xor ecx, eax
mov edx, ecx
and edx, 0x71
mov edi, ecx
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, edx
or edx, 2
imul edx, edi
xor ecx, 0x73
add ecx, ebx
add ecx, edx
inc cl
mov byte [esp + eax + 0x7bb9c324], cl
inc eax
cmp eax, 0x84463e25
jne 0x420750
movzx eax, byte [esp + 0x140]
test al, al
je 0x4207ca
lea ecx, [esp + 0x141]
lea edx, [esp + 0x30]
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 0x4207b0
jmp 0x4207ce
mov dword [esp + 0x2c], 0
jmp 0x4213b7
lea edx, [esp + 0x30]
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edx
call fcn.00440b90
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x4213b1
mov dword [esp + 0x140], 0x39848492
mov byte [esp + 0x144], 0x24
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
xor ecx, ecx
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x48
xor al, byte [esp + ecx + 0x140]
add al, 0x98
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0xc
jne 0x420830
movzx eax, byte [esp + 0x140]
test al, al
je 0x42086b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420860
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x30]
push 0
push 8
push eax
push edx
call fcn.00440120
mov eax, dword [esp + 0x5c]
xor edx, edx
cmp eax, dword [esp + 0x60]
je 0x4213b3
mov dword [esp + 0x140], 0x96e6d61
mov byte [esp + 0x144], 4
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
nop
nop
movzx eax, byte [esp + edx + 0x140]
mov ecx, eax
and ecx, edx
add cl, cl
sub al, cl
movzx eax, al
add eax, edx
mov byte [esp + edx + 0x140], al
inc edx
cmp edx, 0xa
jne 0x4208c0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42090b
lea ecx, [esp + 0x141]
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 0x420900
mov byte [esi], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x108], ecx
xor edx, edx
cmp eax, ecx
je 0x4213b3
lea edi, [esp + 0x30]
jmp 0x420962
xor ebx, ebx
lea edi, [esp + 0x30]
push dword [esp + 0xc]
call fcn.00404bc0
add esp, 4
mov edx, dword [esp + 0x2c]
and dl, 1
or dl, bl
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x4214a1
mov dword [esp + 0x2c], edx
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040ca90
add esp, 0xc
xor ebx, ebx
jmp 0x4209ae
lea edi, [esp + 0x30]
inc ebx
cmp ebx, 0xb
je 0x420ba0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x14]
push dword [esp + 0x20]
call fcn.0043ffa0
test eax, eax
js 0x4209a4
movzx eax, byte [esp + 0x210]
movzx ecx, byte [esp + 0x211]
or al, 0x30
mov byte [esp + 0x44], al
or cl, 0x30
mov byte [esp + 0x45], cl
movzx ecx, byte [esp + 0x212]
or cl, 0x30
mov byte [esp + 0x46], cl
movzx ecx, byte [esp + 0x2d0]
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 0x420a20
mov byte [esi + ecx], 0
cmp byte [esp + 0x212], 0
jne 0x420bc0
add esi, ecx
mov dword [esp + 0x70], 0xe7050c1d
mov byte [esp + 0x74], 0xe8
lea eax, [esp + 0x75]
mov dword [eax + 3], 0
mov dword [eax], 0
mov eax, 0x42e93ba7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x42e93b37]
lea edi, [eax - 0x80000000]
and edi, 0x82880039
xor edx, 0x7d653f86
mov ecx, eax
and ecx, 0x40613b86
or ecx, edi
xor ecx, 0x7d653f86
mov edi, edx
and edi, ecx
add ecx, edx
add edi, edi
sub ecx, edi
add cl, 0xbd
mov byte [esp + eax - 0x42e93b37], cl
inc eax
cmp eax, 0x42e93bb3
jne 0x420a70
movzx eax, byte [esp + 0x70]
test al, al
je 0x420adb
lea ecx, [esp + 0x71]
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 0x420ad0
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x70], 0x20272625
mov byte [esp + 0x74], 0
mov eax, 0xad097a49
movzx ecx, byte [esp + eax + 0x52f68627]
xor ecx, eax
mov edx, 1
sub edx, ecx
mov edi, 0x6d
sub edi, ecx
and ecx, 1
and edx, 1
and edi, 0xfe
or edi, edx
xor edi, 0xfe
lea ecx, [edi + ecx*2]
mov byte [esp + eax + 0x52f68627], cl
inc eax
cmp eax, 0xad097a4e
jne 0x420b00
mov eax, dword [0x451b4c]
test eax, eax
je 0x4209a0
mov ecx, dword [esp + 0x70]
xor edx, edx
mov edi, dword [0x451b50]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x420b73
inc edx
cmp eax, edx
jne 0x420b60
jmp 0x4209a0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4209a0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x451b54]
push eax
call fcn.00441b10
add esp, 0x14
jmp 0x4209a0
cmp byte [esp + 0x212], 0
jne 0x420bc2
mov edx, dword [esp + 0x2c]
jmp 0x42094b
add esi, ecx
call fcn.00404d90
mov dword [esp + 0xc], eax
push eax
call fcn.00404740
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x70], 0x218b8781
mov byte [esp + 0x74], 0x14
lea eax, [esp + 0x75]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0xb4183c46
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x4be7c42a]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xa2
mov byte [esp + eax + 0x4be7c42a], cl
inc eax
cmp eax, 0xb4183c51
jne 0x420c00
movzx eax, byte [esp + 0x70]
test al, al
je 0x420c4b
lea ecx, [esp + 0x71]
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 0x420c40
mov byte [esi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ecx, eax
or ecx, edx
je 0x420ca0
lea edi, [esp + 0x30]
mov ecx, edi
push 0
push 0
push 0x40
lea ebx, [esp + 0x7c]
push ebx
push edx
push eax
call fcn.0043ffa0
test eax, eax
js 0x420ca0
mov ecx, edi
mov edx, ebx
push dword [esp + 8]
call fcn.00422f00
add esp, 4
mov dword [esp + 4], eax
jmp 0x420ca8
mov dword [esp + 4], 0
mov dword [esp + 0x70], 0xeb003807
mov byte [esp + 0x74], 0x90
lea eax, [esp + 0x75]
mov dword [eax + 3], 0
mov dword [eax], 0
mov ebx, 0x7ba37925
nop
nop
nop
nop
nop
movzx edi, byte [esp + ebx - 0x7ba378b5]
mov ecx, edi
and ecx, ebx
mov eax, ecx
or al, 0xfd
inc al
mov edx, ecx
and dl, 0x3d
mul dl
mov edx, eax
mov eax, edi
add dl, al
mov eax, ecx
shr al, 1
and al, 1
or cl, 2
mul cl
add al, al
sub dl, al
movzx eax, dl
add eax, ebx
add al, 0x47
mov byte [esp + ebx - 0x7ba378b5], al
inc ebx
cmp ebx, 0x7ba37931
jne 0x420cd0
movzx eax, byte [esp + 0x70]
test al, al
je 0x420d3b
lea ecx, [esp + 0x71]
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 0x420d30
mov byte [esi], 0
cmp byte [esp + 4], 0
je 0x420930
push dword [esp + 8]
call fcn.00404b80
add esp, 4
test eax, eax
je 0x420eb8
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
lea ebx, [esp + 0x30]
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call fcn.0043ffa0
test eax, eax
lea edi, [esp + 0x70]
js 0x420f80
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
lea ebx, [esp + 0x40]
push edx
push eax
call fcn.0043ffa0
test eax, eax
js 0x420f80
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea edi, [esp + 0x1c]
push edi
push edx
push eax
call fcn.0043ffa0
test eax, eax
js 0x420f0d
cmp byte [esp + 0x27], 0
lea edi, [esp + 0x10]
js 0x420ebf
mov dword [esp + 0x44], 0x89078b27
mov dword [esp + 0x48], 0x85088733
mov dword [esp + 0x4c], 0x81de83e4
mov dword [esp + 0x50], 0x9d129f3f
mov dword [esp + 0x54], 0x993e9b23
mov dword [esp + 0x58], 0x9798
xor eax, eax
mov ecx, eax
add cl, 0xa3
xor cl, byte [esp + eax + 0x44]
add cl, 0xd1
mov byte [esp + eax + 0x44], cl
inc eax
cmp eax, 0x18
jne 0x420e40
movzx ebx, word [esp + 0x44]
test bx, bx
mov dword [esp + 0x104], edi
je 0x420f13
lea eax, [esp + 0x44]
mov edx, edi
mov dword [esp + 4], edi
jmp 0x420e8c
movzx ebx, word [eax]
test bx, bx
je 0x420f17
movzx edi, word [edx]
test di, di
je 0x420f57
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp di, bx
je 0x420eb0
mov dword [esp + 4], ecx
mov edx, ecx
je 0x420e80
lea eax, [esp + 0x44]
jmp 0x420e80
mov bl, 1
jmp 0x420932
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, ebx
or eax, edi
je 0x420f0d
mov eax, dword [esp + 0x18]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x420ee6
mov eax, 0xffffffff
push eax
call fcn.0040ca00
add esp, 4
lea ecx, [esp + 0x30]
push 0
push 0
push dword [esp + 0xc]
push eax
push edi
mov edi, eax
push ebx
call fcn.0043ffa0
test eax, eax
jns 0x420e0e
lea edi, [esp + 0x70]
jmp 0x420f80
mov eax, edi
jmp 0x420f23
lea ebx, [esp + 0x70]
mov eax, dword [esp + 4]
test eax, eax
je 0x420f5b
movzx edi, word [eax + 0x14]
mov ecx, eax
lea ebx, [esp + 0x70]
test di, di
je 0x420f5b
lea edx, [eax + 0x14]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x4212e8
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x420f40
lea ebx, [esp + 0x70]
cmp byte [esp + 0x27], 0
jns 0x420f71
push dword [esp + 0x104]
call fcn.0040ca10
add esp, 4
lea edi, [esp + 0x70]
cmp edi, ebx
jne 0x421016
nop
nop
nop
mov dword [esp + 0x10], 0x9f80bdb
mov dword [esp + 0x14], 0x5f707f5
mov dword [esp + 0x18], 0x1f003fd
mov dword [esp + 0x1c], 0x1d921ff7
mov dword [esp + 0x20], 0x191a1bed
mov byte [esp + 0x24], 0
mov eax, 0xc40e4043
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x3bf1bfcd]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xb1
mov byte [esp + eax + 0x3bf1bfcd], cl
inc eax
cmp eax, 0xc40e4058
jne 0x420fc0
movzx eax, word [esp + 0x10]
mov ebx, edi
test ax, ax
je 0x421011
lea ecx, [esp + 0x12]
mov ebx, edi
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 0x421000
mov word [ebx], 0
sub ebx, edi
mov ecx, ebx
shr ecx, 2
mov eax, edi
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea ecx, [esi + eax]
mov dword [esp + 4], ecx
lea edx, [esp + eax]
add edx, 0x70
mov eax, ebx
and eax, 3
mov ecx, eax
shr ecx, 1
mov dword [esp + 8], edx
mov edi, dword [esp + 4]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edi, dword [esp + 4]
mov ecx, eax
or ecx, 1
xor eax, 0xfffffffe
and eax, ecx
je 0x4210a0
mov ecx, ebx
and ecx, 2
mov edx, dword [esp + 8]
movzx edx, byte [edx + ecx]
mov byte [edi + ecx], dl
cmp eax, 1
je 0x4210a0
mov edx, dword [esp + 8]
movzx edx, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], dl
cmp eax, 2
je 0x4210a0
mov eax, dword [esp + 8]
movzx eax, byte [eax + ecx + 2]
mov byte [edi + ecx + 2], al
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0x6b7765de
mov word [esp + 0x14], 0xd5c2
lea eax, [esp + 0x16]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0xade0942e
mov ecx, 0x521f6bd1
nop
nop
nop
movzx edi, byte [esp + eax + 0x521f6be2]
lea ebx, [ecx - 0x521f6b00]
or ebx, edi
lea edx, [edi + edi]
not edx
add edx, edi
or edx, eax
and edx, ebx
mov bl, 0x19
sub bl, dl
mov byte [esp + eax + 0x521f6be2], bl
inc eax
dec ecx
cmp eax, 0xade0943a
jne 0x4210d0
mov ebx, dword [esp + 4]
add esi, ebx
movzx eax, byte [esp + 0x10]
test al, al
je 0x42112d
lea ecx, [esp + 0x11]
mov edx, dword [ebp + 0x14]
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 0x421120
jmp 0x421130
mov edx, dword [ebp + 0x14]
mov byte [esi], 0
mov edi, dword [edx]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421140
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421160
mov eax, 0xffffffff
jmp 0x421169
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040ca00
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x4211a1
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 0x421190
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0xf1a0ff8d
mov dword [esp + 0x14], 0xf57bf357
mov dword [esp + 0x18], 0xc942f78a
mov dword [esp + 0x1c], 0xcd7ecb40
mov dword [esp + 0x20], 0xcfcc
mov ecx, 0x4ef27f55
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x4ef27f45]
mov edx, edi
not edx
or edx, ecx
add edx, edi
inc edx
mov eax, edx
and eax, 2
mov ebx, edx
or edx, 2
imul edx, eax
xor eax, 2
and ebx, 0xfffffffd
imul ebx, eax
add edx, ebx
mov eax, ecx
and eax, edi
xor edi, ecx
lea eax, [edi + eax*2]
mov edi, edx
xor edi, eax
not edx
and edx, eax
add edx, edx
sub edx, edi
add dl, 0x57
mov byte [esp + ecx - 0x4ef27f45], dl
inc ecx
cmp ecx, 0x4ef27f69
jne 0x4211e0
mov eax, dword [esp + 8]
add eax, 2
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x421261
lea edx, [esp + 0x72]
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 0x421250
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421291
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 0x421280
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
call fcn.00405940
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4212b0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0040d650
mov dword [esp + 8], eax
push edi
call fcn.004059d0
add esp, 4
push ebx
mov ebx, dword [esp + 0xc]
call fcn.0040ca10
add esp, 4
jmp 0x420932
lea eax, [esp + 0x70]
mov ebx, eax
test ecx, ecx
je 0x42139c
sar ecx, 1
mov edi, ecx
and edi, 3
je 0x421340
mov dword [esp + 8], edi
xor edi, edi
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [edx]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edx, [edx + eax*2]
movzx eax, word [esp + 4]
mov word [ebx], ax
add ebx, 2
inc edi
cmp dword [esp + 8], edi
jne 0x421310
mov eax, ecx
sub eax, edi
mov edi, eax
jmp 0x421344
mov ebx, eax
mov edi, ecx
dec ecx
cmp ecx, 3
jb 0x42139c
movzx eax, word [edx]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + 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 edx, [eax + edx*2]
mov word [ebx + 6], cx
add ebx, 8
add edi, 0xfffffffc
jne 0x42134a
mov word [ebx], 0
cmp byte [esp + 0x27], 0
jns 0x420f71
jmp 0x420f62
xor edx, edx
mov dword [esp + 0x2c], edx
lea ecx, [esp + 0x30]
call fcn.0043f720
mov dword [esp + 0x140], 0xff464357
mov byte [esp + 0x144], 0xc8
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
lea edx, [esp + 0x140]
xor ecx, ecx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
movzx edx, byte [eax]
mov eax, dword [esp + 4]
and eax, 0xb5155e5a
mov edi, ecx
xor edi, 0x257550d2
sub edi, eax
inc edi
lea ebx, [edx + edx]
not ebx
add ebx, edx
mov eax, edi
or eax, edx
and edx, 0x7b
and ebx, 0x740aca84
or ebx, edx
xor ebx, edi
xor ebx, 0x8bf5357b
not eax
or eax, ebx
lea edx, [eax + eax]
not edx
add edx, eax
mov eax, dword [esp + 4]
add dl, 0xe1
mov edi, dword [esp + 0xc]
mov byte [edi], dl
mov edx, dword [esp + 0xc]
inc edx
dec ecx
add eax, 0xfffffffe
cmp ecx, 0xfffffff5
jne 0x421400
movzx eax, byte [esp + 0x140]
test al, al
je 0x42148d
lea ecx, [esp + 0x141]
mov edx, dword [ebp + 0xc]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421480
jmp 0x421490
mov edx, dword [ebp + 0xc]
mov byte [esi], 0
mov dword [edx], esi
mov eax, dword [esp + 0x2c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x5c]
and dl, 1
test eax, eax
je 0x4213b3
cmp eax, dword [esp + 0x60]
je 0x4213b3
push eax
mov edi, edx
call fcn.0040ca10
mov edx, edi
add esp, 4
mov dword [esp + 0x5c], 0
jmp 0x4213b3