Function at 0x420870
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 ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x138], 0x91eaebfd
mov byte [esp + 0x13c], 0x9c
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov ecx, 0xcdec5f1a
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x3213a21e]
xor edx, ecx
add edx, 0xfa62247d
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov byte [esp + ecx + 0x3213a21e], dl
inc ecx
cmp ecx, 0xcdec5f22
jne 0x4208d0
mov esi, dword [edi]
movzx ecx, byte [esp + 0x138]
test cl, cl
je 0x42091b
lea edx, [esp + 0x139]
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x420910
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 + 0x50]
lea edi, [esp + 0x30]
push ecx
push edx
push edi
push dword [ebx + 0x10]
push eax
push dword [ebx + 0xc]
call fcn.00423050
add esp, 0x18
test al, al
je 0x421abb
mov dword [esp + 0x138], 0x89213330
mov byte [esp + 0x13c], 0x84
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0xf75f0ad3
nop
nop
movzx edx, byte [esp + eax + 0x8a0f665]
mov ecx, eax
xor ecx, 0x5ccc9fe0
add ecx, 0xa8981580
mov ebx, ecx
xor ebx, 0xf75f0ad3
and ecx, 0x20a02c
add ecx, ecx
sub ecx, ebx
xor ecx, edx
mov edx, 0x60
sub edx, ecx
not ecx
and ecx, 1
or edx, 1
sub ecx, edx
mov byte [esp + eax + 0x8a0f665], cl
inc eax
cmp eax, 0xf75f0adb
jne 0x420990
movzx eax, byte [esp + 0x138]
test al, al
je 0x4209fb
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4209f0
mov byte [esi], 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], 0x2e183529
mov dword [esp + 0x13c], 0xc2b150a
mov dword [esp + 0x140], 0x1a4c3c22
mov dword [esp + 0x144], 0x343b3a39
mov dword [esp + 0x148], 0x32083b01
mov dword [esp + 0x14c], 0x5fa0ffd
mov dword [esp + 0x150], 0xc8cfcecd
mov dword [esp + 0x154], 0xed02c3fc
mov dword [esp + 0x158], 0xf7dc09cb
mov dword [esp + 0x15c], 0xdecbcff7
mov dword [esp + 0x160], 0x16d6c5f3
mov dword [esp + 0x164], 0xa714f4f0
mov dword [esp + 0x168], 0x1ca6d4f6
mov dword [esp + 0x16c], 0xe3ffdfdd
mov dword [esp + 0x170], 0xeaf0d1ef
mov dword [esp + 0x174], 0xe4ebeae9
mov dword [esp + 0x178], 0xd6c5dbd1
mov dword [esp + 0x17c], 0xfcefc8e3
mov dword [esp + 0x180], 0xf8e1c3ec
mov dword [esp + 0x184], 0xfbfbfaf9
mov dword [esp + 0x188], 0xf0f7f6ed
mov dword [esp + 0x18c], 0x43fae7f1
mov dword [esp + 0x190], 0x9e869382
mov dword [esp + 0x194], 0xb6458792
mov dword [esp + 0x198], 0x80878685
mov dword [esp + 0x19c], 0xbef28ab5
mov dword [esp + 0x1a0], 0xa39dae9d
mov dword [esp + 0x1a4], 0x9497b891
mov dword [esp + 0x1a8], 0x90979695
mov dword [esp + 0x1ac], 0xb8939291
mov dword [esp + 0x1b0], 0xaa9962a1
mov dword [esp + 0x1b4], 0xa4abaaa9
mov dword [esp + 0x1b8], 0x9d8b8493
mov dword [esp + 0x1bc], 0xb196aea1
mov byte [esp + 0x1c0], 0xfc
mov dword [esp + 0x1c1], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe9
xor cl, byte [esp + eax + 0x138]
add cl, 0x73
mov byte [esp + eax + 0x138], cl
inc eax
cmp eax, 0x8d
jne 0x420bb0
mov dword [esp + 0x58], 0x94526266
mov dword [esp + 0x5c], 0xec913ffc
mov dword [esp + 0x60], 0xf9d0945c
mov dword [esp + 0x64], 0x1d1e1f00
mov dword [esp + 0x68], 0x1961a87
mov dword [esp + 0x6c], 0xed198040
mov dword [esp + 0x70], 0x11121314
mov dword [esp + 0x74], 0x75deb848
mov dword [esp + 0x78], 0x4812f7b1
mov dword [esp + 0x7c], 0xf1f2fa4a
mov dword [esp + 0x80], 0xf5f6f7f0
mov dword [esp + 0x84], 0xe9eaebf4
mov dword [esp + 0x88], 0xa4625256
mov dword [esp + 0x8c], 0xa26e7fcc
mov dword [esp + 0x90], 0x2aa76be6
mov dword [esp + 0x94], 0x4d4e4f30
mov dword [esp + 0x98], 0x11aa0414
mov dword [esp + 0x9c], 0x457a1bdf
mov dword [esp + 0xa0], 0x41c5d01c
mov dword [esp + 0xa4], 0x655e5f40
mov dword [esp + 0xa8], 0x595a5ba4
mov dword [esp + 0xac], 0xfc30f58
mov dword [esp + 0xb0], 0x3c70b74
mov dword [esp + 0xb4], 0xc7fb3768
mov dword [esp + 0xb8], 0x696a6b6c
mov dword [esp + 0xbc], 0x593af43c
mov dword [esp + 0xc0], 0x71f53464
mov dword [esp + 0xc4], 0x7de4a638
mov dword [esp + 0xc8], 0x797a7b7c
mov dword [esp + 0xcc], 0x2d767778
mov dword [esp + 0xd0], 0x5a7375e3
mov dword [esp + 0xd4], 0x8d8e8f70
mov dword [esp + 0xd8], 0xb5de1ed4
mov dword [esp + 0xdc], 0x7ac9df88
mov byte [esp + 0xe0], 0x84
mov byte [esp + 0xe3], 0
mov word [esp + 0xe1], 0
mov eax, 0x82
mov edi, 0x625b2d7c
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x2a]
lea ebx, [eax - 0x312d96ff]
mov ecx, edi
xor ecx, ebx
and ecx, edx
xor ecx, ebx
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x70
mov byte [esp + eax - 0x2a], cl
inc eax
dec edi
cmp eax, 0x10e
jne 0x420d50
lea eax, [esp + 0x138]
lea edx, [esp + 0x58]
lea ecx, [esp + 0x128]
push eax
push 0x88
push edx
lea edi, [esp + 0x3c]
push edi
call fcn.00441010
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
xor ebx, ebx
or eax, edx
je 0x421aeb
mov dword [esp + 0x138], 0x49d0d5a4
mov byte [esp + 0x13c], 0x44
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0x2171fc6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx + 0x138]
lea edx, [ebx + 0x90]
and edx, ecx
or edx, eax
add edx, ebx
add edx, edx
sub ecx, edx
add ecx, ebx
add ecx, 0x2171fc6e
mov edx, ecx
xor edx, 0xf7
and ecx, 8
add ecx, ecx
sub ecx, edx
add cl, 0x27
mov byte [esp + ebx + 0x138], cl
inc ebx
dec eax
cmp ebx, 8
jne 0x420df0
movzx eax, byte [esp + 0x138]
test al, al
je 0x420e5b
lea ecx, [esp + 0x139]
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 0x420e50
mov byte [esi], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push edi
call fcn.00441010
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
xor ebx, ebx
or eax, edx
je 0x421aeb
mov dword [esp + 0x138], 0x4f9090a2
mov byte [esp + 0x13c], 0x38
mov dword [esp + 0x13d], 0
nop
nop
nop
mov eax, ebx
add al, 0xb
xor al, byte [esp + ebx + 0x138]
add al, 0xc9
mov byte [esp + ebx + 0x138], al
inc ebx
cmp ebx, 9
jne 0x420eb0
movzx eax, byte [esp + 0x138]
test al, al
je 0x420eeb
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420ee0
mov byte [esi], 0
lea eax, [esp + 0x118]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x30]
push 0
push 8
push eax
push edx
call fcn.00440680
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x421ae9
mov dword [esp + 0x138], 0x91727579
mov byte [esp + 0x13c], 0x9c
mov dword [esp + 0x13d], 0
mov eax, 0xda
mov ecx, 0x25
nop
nop
movzx edi, byte [esp + eax + 0x5e]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0xbe
mov byte [esp + eax + 0x5e], dl
inc eax
dec ecx
cmp eax, 0xe3
jne 0x420f40
movzx eax, byte [esp + 0x138]
test al, al
je 0x420f7b
lea ecx, [esp + 0x139]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420f70
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xe8], ecx
xor ebx, ebx
cmp eax, ecx
je 0x421aeb
lea edi, [esp + 0x30]
jmp 0x420fd0
mov dword [esp], 0
push dword [esp + 0x2c]
call fcn.004046a0
add esp, 4
and bl, 1
or bl, byte [esp]
mov eax, dword [esp + 0xec]
add eax, 8
cmp eax, dword [esp + 0xe8]
je 0x421ac5
mov dword [esp + 0xc], ebx
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xec], eax
mov eax, dword [eax + 4]
mov dword [esp], eax
push 0x198
push 0
lea eax, [esp + 0x140]
push eax
call fcn.0040c760
add esp, 0xc
xor ebx, ebx
jmp 0x42101e
lea edi, [esp + 0x30]
inc ebx
cmp ebx, 0xb
je 0x4211f0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x144]
push eax
push dword [esp + 0x10]
push dword [esp + 0x40]
call fcn.00440530
test eax, eax
js 0x421014
movzx eax, byte [esp + 0x208]
movzx ecx, byte [esp + 0x209]
or al, 0x30
mov byte [esp + 0x10], al
or cl, 0x30
mov byte [esp + 0x11], cl
movzx ecx, byte [esp + 0x20a]
or cl, 0x30
mov byte [esp + 0x12], cl
movzx ecx, byte [esp + 0x2c8]
or cl, 0x30
mov byte [esp + 0x13], cl
mov word [esp + 0x14], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x11]
inc ecx
test al, al
jne 0x421090
mov byte [esi + ecx], 0
cmp byte [esp + 0x20a], 0
jne 0x421210
add esi, ecx
mov dword [esp + 0x58], 0x197b708f
mov byte [esp + 0x5c], 0x1c
lea eax, [esp + 0x5d]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x58]
mov edi, eax
and edi, 0xc
xor edi, 0x2818bfc
mov ecx, eax
and ecx, 3
sub ecx, edi
xor ecx, edx
add ecx, 0xc87bbeb
mov edi, ecx
xor edi, 0x7ffffffe
mov edx, ecx
or edx, 1
and edx, edi
add edx, edx
mov edi, edx
and edi, ecx
or edx, ecx
xor edx, 1
add edx, edi
mov byte [esp + eax + 0x58], dl
inc eax
cmp eax, 0xc
jne 0x4210e0
movzx eax, byte [esp + 0x58]
test al, al
je 0x42114b
lea ecx, [esp + 0x59]
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 0x421140
mov byte [esi], 0
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x58], 0xff676980
mov dword [esp + 0xf0], 0xe0e7e6e5
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x29
xor cl, byte [esp + eax + 0xf0]
add cl, 0x33
mov byte [esp + eax + 0xf0], cl
inc eax
cmp eax, 4
jne 0x421170
mov eax, dword [0x451ae0]
test eax, eax
je 0x421010
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov edi, dword [0x451ae4]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x4211c3
inc edx
cmp eax, edx
jne 0x4211b0
jmp 0x421010
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x421010
lea ecx, [esp + 0x58]
push ecx
push 0
push 2
push dword [0x451ae8]
push eax
call fcn.004425f0
add esp, 0x14
jmp 0x421010
cmp byte [esp + 0x20a], 0
jne 0x421212
mov ebx, dword [esp + 0xc]
jmp 0x420fb9
add esi, ecx
call fcn.00404860
mov dword [esp + 0x2c], eax
push eax
call fcn.00404490
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x58], 0x1ff1f5fb
mov byte [esp + 0x5c], 8
lea eax, [esp + 0x5d]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x39deebc
lea ecx, [esp + 0x58]
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
lea ebx, [eax - 0x39dee00]
and ebx, edx
or edx, eax
not edx
or edx, ebx
add edx, 0xba5e8f5e
mov ebx, edx
and ebx, 0x53
xor edx, 0x53
lea edx, [edx + ebx*2]
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x39deeb4
jne 0x421250
movzx eax, byte [esp + 0x58]
test al, al
je 0x42129b
lea ecx, [esp + 0x59]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421290
mov byte [esi], 0
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov ecx, eax
or ecx, edx
je 0x4212e0
mov ecx, edi
push 0
push 0
push 0x40
mov ebx, edi
lea edi, [esp + 0x64]
push edi
push edx
push eax
call fcn.00440530
test eax, eax
js 0x4212e0
mov ecx, ebx
mov edx, edi
push dword [esp]
call fcn.00423850
add esp, 4
jmp 0x4212e2
xor eax, eax
mov dword [esp + 0x58], 0x1bb0b8bf
mov byte [esp + 0x5c], 0x20
lea ecx, [esp + 0x5d]
mov byte [ecx + 2], 0
mov word [ecx], 0
mov ecx, 0xb9
mov edi, 0x46
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x61]
mov edx, edi
or edx, ebx
not ebx
or ebx, ecx
and ebx, edx
mov dl, 0x62
sub dl, bl
mov byte [esp + ecx - 0x61], dl
inc ecx
dec edi
cmp ecx, 0xc1
jne 0x421310
movzx ecx, byte [esp + 0x58]
test cl, cl
je 0x421360
lea edx, [esp + 0x59]
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x30]
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 0x421368
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x30]
mov byte [esi], 0
test al, al
je 0x420fa0
push dword [esp]
call fcn.00404660
add esp, 4
test eax, eax
je 0x421526
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x294]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.00440530
test eax, eax
js 0x4216e0
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x114]
push ebx
push edx
push eax
call fcn.00440530
test eax, eax
js 0x4216e0
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0xfc]
push edi
push edx
push eax
call fcn.00440530
test eax, eax
js 0x4216e0
cmp byte [esp + 0x107], 0
lea eax, [esp + 0xf0]
mov dword [esp + 8], eax
js 0x421530
mov dword [esp + 0x10], 0x41db47fb
mov dword [esp + 0x14], 0x4dd043ef
mov dword [esp + 0x18], 0x49024f2c
mov dword [esp + 0x1c], 0xb5d64beb
mov dword [esp + 0x20], 0xb112b717
mov word [esp + 0x24], 0xb3b0
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x10]
mov edx, ecx
xor edx, 0x3bd1a3f0
mov ebx, eax
and ebx, 0x20
add edx, ebx
add edx, 0x850b001
xor edx, edi
add edx, 0xab545c4a
mov edi, edx
and edi, 0x3b
xor edx, 0x8b55553b
lea edi, [edx + edi*2]
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0xc5
mov byte [esp + ecx + 0x10], dl
inc ecx
add eax, 2
cmp ecx, 0x1b
jne 0x421480
movzx ebx, word [esp + 0x10]
test bx, bx
je 0x421591
lea eax, [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, ecx
mov dword [esp], ecx
jmp 0x4214fc
movzx ebx, word [eax]
test bx, bx
je 0x4215a6
movzx edi, word [edx]
test di, di
je 0x42159b
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp di, bx
je 0x42151e
mov dword [esp], ecx
mov edx, ecx
je 0x4214f0
lea eax, [esp + 0x10]
jmp 0x4214f0
mov al, 1
mov dword [esp], eax
jmp 0x420fa7
mov ebx, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
mov eax, ebx
or eax, edi
je 0x4216e0
mov eax, dword [esp + 0xf8]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp], ecx
mov eax, ecx
jns 0x421563
mov eax, 0xffffffff
push eax
call fcn.0040c650
add esp, 4
lea ecx, [esp + 0x30]
push 0
push 0
push dword [esp + 8]
mov dword [esp + 0x14], eax
push eax
push edi
push ebx
call fcn.00440530
test eax, eax
jns 0x421438
jmp 0x4216e0
mov eax, dword [esp + 8]
lea edx, [esp + 0x58]
jmp 0x4215b7
lea edx, [esp + 0x58]
mov ebx, edx
jmp 0x4216bb
lea edx, [esp + 0x58]
mov ebx, edx
mov eax, dword [esp]
test eax, eax
je 0x4216bb
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x4216bb
lea ecx, [eax + 0x14]
mov dword [esp + 4], ecx
xor ecx, ecx
nop
cmp di, 0x5c
je 0x4215ea
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x4215d0
mov ebx, edx
jmp 0x4216bb
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 4]
je 0x4216b6
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x421650
mov ebx, edx
xor edx, edx
mov dword [esp + 0xe4], eax
nop
nop
nop
nop
mov edi, dword [esp + 4]
movzx eax, word [edi]
mov word [esp], ax
xor eax, eax
cmp word [esp], 0
setne al
lea edi, [edi + eax*2]
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], edi
movzx edi, word [esp]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x421610
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x58]
mov edi, dword [esp + 4]
jmp 0x421654
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x4216b6
mov dword [esp], 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]
mov word [ebx + 6], cx
add ebx, 8
add eax, 0xfffffffc
jne 0x42165a
lea edx, [esp + 0x58]
mov word [ebx], 0
cmp byte [esp + 0x107], 0
jns 0x4216d5
push dword [esp + 8]
call fcn.0040c660
lea edx, [esp + 0x5c]
add esp, 4
cmp edx, ebx
jne 0x421786
nop
nop
nop
mov dword [esp + 0x10], 0x3fac39f1
mov dword [esp + 0x14], 0x23b13d9b
mov dword [esp + 0x18], 0x27b4218b
mov dword [esp + 0x1c], 0x2bbe258d
mov dword [esp + 0x20], 0x2f2e29bb
mov eax, 0x34d7a74a
mov ecx, 0xcb2858b5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x34d7a73a]
mov edx, eax
and edx, edi
add edx, edx
mov ebx, ecx
sub ebx, edi
add edi, eax
and ebx, edx
not edx
and edx, edi
sub edx, ebx
add dl, 0x8e
mov byte [esp + eax - 0x34d7a73a], dl
inc eax
dec ecx
cmp eax, 0x34d7a75e
jne 0x421720
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x58]
mov ebx, edx
test ax, ax
je 0x421781
lea ecx, [esp + 0x12]
mov ebx, edx
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 0x421770
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 eax, [esi + ecx]
lea edx, [esp + ecx]
add edx, 0x58
mov ecx, ebx
xor ecx, 0xfffffffc
mov dword [esp], ebx
or ebx, 3
and ebx, ecx
mov dword [esp + 8], ebx
mov ecx, ebx
shr ecx, 1
mov dword [esp + 4], edx
mov edi, eax
mov ebx, dword [esp + 4]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov edi, dword [esp + 8]
mov ebx, edi
not ebx
or ebx, 1
add ebx, edi
mov ecx, ebx
inc ecx
je 0x421881
and edi, 0xfffffffe
add edx, edi
add eax, edi
mov edi, ecx
and edi, 7
je 0x42181a
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov ebx, edi
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx + edi]
mov byte [eax + edi], cl
inc edi
cmp ebx, edi
jne 0x421800
add edx, edi
add eax, edi
mov ecx, dword [esp + 4]
sub ecx, edi
mov ebx, dword [esp + 8]
cmp ebx, 7
jb 0x421881
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
movzx ecx, byte [edx + edi]
mov byte [eax + edi], cl
movzx ecx, byte [edx + edi + 1]
mov byte [eax + edi + 1], cl
movzx ecx, byte [edx + edi + 2]
mov byte [eax + edi + 2], cl
movzx ecx, byte [edx + edi + 3]
mov byte [eax + edi + 3], cl
movzx ecx, byte [edx + edi + 4]
mov byte [eax + edi + 4], cl
movzx ecx, byte [edx + edi + 5]
mov byte [eax + edi + 5], cl
movzx ecx, byte [edx + edi + 6]
mov byte [eax + edi + 6], cl
movzx ecx, byte [edx + edi + 7]
mov byte [eax + edi + 7], cl
mov ecx, ebx
add edi, 8
cmp ebx, edi
jne 0x421830
mov dword [esp + 0x10], 0xdbafad76
mov word [esp + 0x14], 0x4d72
lea eax, [esp + 0x26]
mov byte [eax - 0xc], 0
mov dword [eax - 0x10], 0
mov eax, 0xd4d14e92
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x2b2eb17e]
xor edx, eax
add edx, 0x6a416790
mov ecx, edx
and ecx, 0x25
xor edx, 0xd7e97725
lea ecx, [edx + ecx*2]
mov edi, 1
sub edi, edx
and edi, 1
or ecx, 1
sub ecx, edi
add cl, 0x71
mov byte [esp + eax + 0x2b2eb17e], cl
inc eax
cmp eax, 0xd4d14e9d
jne 0x4218b0
mov edx, dword [esp]
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x42191b
lea ecx, [esp + 0x11]
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 0x421910
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 0x421930
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421950
mov eax, 0xffffffff
jmp 0x421959
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040c650
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x421991
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 0x421980
mov dword [esp + 4], eax
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x17e419cb
mov dword [esp + 0x14], 0x13991589
mov dword [esp + 0x18], 0xf8211c2
mov dword [esp + 0x1c], 0xb860d84
mov word [esp + 0x20], 0x908
lea ecx, [esp + 0x26]
mov word [ecx], 0
mov dword [ecx - 4], 0
mov ecx, 0xc6
mov edx, 1
nop
nop
nop
mov edi, edx
and edi, 4
mov ebx, ecx
and ebx, 0xbb
or ebx, edi
xor bl, byte [esp + ecx - 0xb6]
xor bl, 0x44
add bl, 0x22
mov byte [esp + ecx - 0xb6], bl
inc ecx
dec edx
cmp ecx, 0xde
jne 0x4219e0
add eax, 2
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x421a31
lea edx, [esp + 0x5a]
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421a20
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421a61
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 0x421a50
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x2c]
call fcn.00405460
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421a80
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0040cfd0
mov dword [esp], eax
push edi
call fcn.004054f0
add esp, 4
push ebx
call fcn.0040c660
add esp, 4
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x30]
jmp 0x420fa7
mov dword [esp + 0xc], 0
jmp 0x421aef
mov eax, dword [esp + 0x44]
and bl, 1
test eax, eax
je 0x421aeb
cmp eax, dword [esp + 0x48]
je 0x421aeb
push eax
call fcn.0040c660
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x421aeb
xor ebx, ebx
mov dword [esp + 0xc], ebx
lea ecx, [esp + 0x30]
call fcn.0043fe30
mov dword [esp + 0x138], 0x8b3a3f2b
mov byte [esp + 0x13c], 0x80
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
mov eax, 0xcd196c63
mov ecx, 0x32e6949c
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x32e694d5]
lea edi, [ecx - 0x32e693fe]
mov ebx, edx
not ebx
or ebx, edi
lea edi, [edx + ebx*2]
lea edx, [eax + edi]
mov ebx, ecx
sub ebx, edi
mov edi, edx
not edi
or ebx, edi
and edx, 0x1a
and ebx, 0xe5
sub edx, ebx
mov byte [esp + eax + 0x32e694d5], dl
inc eax
dec ecx
cmp eax, 0xcd196c6d
jne 0x421b30
movzx ebx, byte [esp + 0x138]
test bl, bl
je 0x421b9d
lea ecx, [esp + 0x139]
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], bl
inc esi
movzx ebx, byte [ecx]
inc ecx
test bl, bl
jne 0x421b90
jmp 0x421ba4
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov byte [esi], 0
mov dword [edx], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret