Function at 0x420810
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, 0x2e8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x148], 0x49bea7ad
mov byte [esp + 0x14c], 0x2c
mov dword [esp + 0x14d], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx + 0x148]
mov ebx, ecx
and ebx, 0x18
mov esi, edx
xor esi, 0xda17118c
add esi, ebx
mov ebx, esi
xor ebx, edi
lea eax, [ebx + ebx]
not eax
add eax, ebx
and eax, esi
add esi, edi
add eax, eax
sub esi, eax
mov eax, esi
and eax, 0x6d
xor esi, 0x6d
lea eax, [esi + eax*2]
add al, 0xd7
mov byte [esp + edx + 0x148], al
inc edx
add ecx, 2
cmp edx, 9
jne 0x420860
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
movzx ecx, byte [esp + 0x148]
test cl, cl
je 0x4208dd
lea edx, [esp + 0x149]
mov ebx, dword [ebp + 0x10]
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 0x4208d0
jmp 0x4208e0
mov ebx, dword [ebp + 0x10]
mov byte [esi], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea eax, [esp + 0x48]
lea ecx, [esp + 0x58]
lea edi, [esp + 0x38]
push eax
push ecx
push edi
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push ebx
push dword [eax + 0xc]
call fcn.00422c60
add esp, 0x18
test al, al
je 0x4219d8
mov dword [esp + 0x148], 0x39819390
mov byte [esp + 0x14c], 0x24
mov dword [esp + 0x14d], 0
mov eax, 0x1c6df2c8
nop
movzx ecx, byte [esp + eax - 0x1c6df180]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x18
mov byte [esp + eax - 0x1c6df180], cl
inc eax
cmp eax, 0x1c6df2d1
jne 0x420950
movzx eax, byte [esp + 0x148]
test al, al
je 0x42099b
lea ecx, [esp + 0x149]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420990
mov byte [esi], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x148], 0xc6f8edc9
mov dword [esp + 0x14c], 0x84db8dfa
mov dword [esp + 0x150], 0xeac4d4d2
mov dword [esp + 0x154], 0xcccbcac9
mov dword [esp + 0x158], 0xc2e8db91
mov dword [esp + 0x15c], 0x8d8ae795
mov dword [esp + 0x160], 0xf8c7c6c5
mov dword [esp + 0x164], 0xd5b2f3a4
mov dword [esp + 0x168], 0xafc4a9eb
mov dword [esp + 0x16c], 0xf6fbe7af
mov dword [esp + 0x170], 0xbefecdc3
mov dword [esp + 0x174], 0xffbcdcc0
mov dword [esp + 0x178], 0xb4feecce
mov dword [esp + 0x17c], 0xf3d7f7f5
mov dword [esp + 0x180], 0x1ae0c1e7
mov dword [esp + 0x184], 0x1c1b1a19
mov dword [esp + 0x188], 0x4e3d3b41
mov dword [esp + 0x18c], 0x14073813
mov dword [esp + 0x190], 0x8113324
mov dword [esp + 0x194], 0x1b0b0a09
mov dword [esp + 0x198], 0xf0e35
mov dword [esp + 0x19c], 0x530a3f01
mov dword [esp + 0x1a0], 0x60e0312
mov dword [esp + 0x1a4], 0x6e6d2f02
mov dword [esp + 0x1a8], 0x303f3e3d
mov dword [esp + 0x1ac], 0x16223a6d
mov dword [esp + 0x1b0], 0x73356635
mov dword [esp + 0x1b4], 0x2c3f0821
mov dword [esp + 0x1b8], 0x202f2e2d
mov dword [esp + 0x1bc], 0x18232221
mov dword [esp + 0x1c0], 0x5a797231
mov dword [esp + 0x1c4], 0x5c5b5a59
mov dword [esp + 0x1c8], 0x756b7c03
mov dword [esp + 0x1cc], 0x410e4651
mov byte [esp + 0x1d0], 0x94
mov byte [esp + 0x1d5], 0
mov dword [esp + 0x1d1], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
xor ebx, 0xbb
mov edx, eax
and edx, 0x88
sub edx, ebx
xor dl, byte [esp + ecx + 0x148]
add dl, 0xa7
mov byte [esp + ecx + 0x148], dl
inc ecx
add eax, 2
cmp ecx, 0x8e
jne 0x420b60
mov dword [esp + 0x78], 0xac62525e
mov dword [esp + 0x7c], 0xd4a107c4
mov dword [esp + 0x80], 0xb9a0dc64
mov dword [esp + 0x84], 0x55565750
mov dword [esp + 0x88], 0x51ce5adf
mov dword [esp + 0x8c], 0xb549d010
mov dword [esp + 0x90], 0x4142435c
mov dword [esp + 0x94], 0xd56c808
mov dword [esp + 0x98], 0x28628fc1
mov dword [esp + 0x9c], 0x81828a2a
mov dword [esp + 0xa0], 0xbdbebf80
mov dword [esp + 0xa4], 0xb9babbbc
mov dword [esp + 0xa8], 0xfc32020e
mov dword [esp + 0xac], 0xf2362794
mov dword [esp + 0xb0], 0x6aef2b8e
mov dword [esp + 0xb4], 0x65666760
mov dword [esp + 0xb8], 0x218a3c2c
mov dword [esp + 0xbc], 0x6d4a2be7
mov dword [esp + 0xc0], 0x910d2024
mov dword [esp + 0xc4], 0xbd969790
mov dword [esp + 0xc8], 0x999a9b7c
mov dword [esp + 0xcc], 0xd713d798
mov dword [esp + 0xd0], 0xf30fcbbc
mov dword [esp + 0xd4], 0x3f0bcfa8
mov dword [esp + 0xd8], 0x898a8b84
mov dword [esp + 0xdc], 0xa9ca3cc4
mov dword [esp + 0xe0], 0x813dfc8c
mov dword [esp + 0xe4], 0xb53c7ef8
mov dword [esp + 0xe8], 0xb9babbb4
mov dword [esp + 0xec], 0xf5bebfb8
mov dword [esp + 0xf0], 0x9aa3bd33
mov dword [esp + 0xf4], 0xa5a6a7a0
mov dword [esp + 0xf8], 0x8de626ec
mov dword [esp + 0xfc], 0x4af9e7a8
mov byte [esp + 0x100], 0xac
mov word [esp + 0x105], 0
mov dword [esp + 0x101], 0
mov eax, 0xd3c36837
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x2c3c9841]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xed
mov byte [esp + eax + 0x2c3c9841], cl
inc eax
cmp eax, 0xd3c368c6
jne 0x420d30
lea ebx, [esp + 0x148]
lea eax, [esp + 0x78]
lea ecx, [esp + 0x138]
push ebx
push 0x88
push eax
push edi
call fcn.004407d0
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], eax
or eax, edx
je 0x4219d8
mov dword [esp + 0x148], 0xcfa4a790
mov byte [esp + 0x14c], 0x38
mov dword [esp + 0x14d], 0
mov dword [esp + 0x150], 0
mov eax, 0xb4
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
lea ecx, [eax - 0x6f6fd400]
or ecx, edx
and edx, eax
not ecx
or ecx, edx
mov edx, ecx
and edx, 8
xor ecx, 0x88
lea ecx, [ecx + edx*2]
inc cl
mov byte [ebx], cl
inc ebx
dec eax
cmp eax, 0xa8
jne 0x420dc0
movzx eax, byte [esp + 0x148]
test al, al
je 0x420e0b
lea ecx, [esp + 0x149]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420e00
mov byte [esi], 0
lea eax, [esp + 0x130]
lea ecx, [esp + 0x138]
push 0
push 8
push eax
push edi
call fcn.004407d0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x4219d8
mov dword [esp + 0x148], 0xff505042
mov byte [esp + 0x14c], 0xc8
mov word [esp + 0x14d], 0
mov byte [esp + 0x14f], 0
mov eax, 0x5bd3053
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5bd2f0b]
xor ecx, eax
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0x60
mov byte [esp + eax - 0x5bd2f0b], cl
inc eax
cmp eax, 0x5bd305b
jne 0x420e70
movzx eax, byte [esp + 0x148]
test al, al
je 0x420ebb
lea ecx, [esp + 0x149]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420eb0
mov byte [esi], 0
lea eax, [esp + 0x128]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x38]
push 0
push 8
push eax
push edx
call fcn.0043fd60
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x4219d8
mov dword [esp + 0x148], 0xcb525367
mov byte [esp + 0x14c], 0xc0
mov dword [esp + 0x14d], 0
mov dword [esp + 0x150], 0
lea eax, [esp + 0x148]
mov ecx, 0xce
nop
nop
nop
nop
nop
movzx edi, byte [eax]
lea edx, [ecx - 0x14ecf500]
or edx, edi
and edi, ecx
not edx
or edx, edi
mov edi, edx
and edi, 1
or edx, 1
add edx, edi
add dl, 0xa
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xc2
jne 0x420f20
movzx eax, byte [esp + 0x148]
test al, al
je 0x420f6b
lea ecx, [esp + 0x149]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420f60
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x110], ecx
cmp eax, ecx
je 0x4219d8
mov dword [esp + 0x34], 0
lea ebx, [esp + 0x38]
jmp 0x420fd9
mov dword [esp + 4], 0
push dword [esp + 0xc]
call fcn.004046d0
add esp, 4
mov eax, dword [esp + 0x34]
and al, 1
or al, byte [esp + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x114]
add eax, 8
cmp eax, dword [esp + 0x110]
je 0x421a5d
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x114], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
push 0x198
push 0
lea eax, [esp + 0x150]
push eax
call fcn.0040c610
add esp, 0xc
xor eax, eax
jmp 0x42101e
mov eax, dword [esp + 0xc]
inc eax
cmp eax, 0xb
je 0x4211c0
mov dword [esp + 0xc], eax
mov ecx, ebx
push 0
push 0
push 0x198
lea eax, [esp + 0x154]
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.0043fbd0
test eax, eax
js 0x421010
movzx eax, byte [esp + 0x218]
movzx ecx, byte [esp + 0x219]
or al, 0x30
mov byte [esp + 0x60], al
or cl, 0x30
mov byte [esp + 0x61], cl
movzx ecx, byte [esp + 0x21a]
or cl, 0x30
mov byte [esp + 0x62], cl
movzx ecx, byte [esp + 0x2d8]
or cl, 0x30
mov byte [esp + 0x63], cl
mov word [esp + 0x64], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x61]
inc ecx
test al, al
jne 0x421090
mov byte [esi + ecx], 0
cmp byte [esp + 0x21a], 0
jne 0x4211d0
add esi, ecx
mov dword [esp + 0x78], 0xbbe5ec15
mov byte [esp + 0x7c], 0xb0
lea eax, [esp + 0x7d]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0x9d
xor cl, byte [esp + eax + 0x78]
add cl, 0xef
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 8
jne 0x4210d0
movzx eax, byte [esp + 0x78]
test al, al
je 0x42110b
lea ecx, [esp + 0x79]
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 0x421100
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0x101f1e1d
mov byte [esp + 0x7c], 0
xor eax, eax
xor ecx, ecx
nop
mov edx, eax
and edx, 0xa
mov ebx, ecx
xor ebx, 0xb5
add ebx, edx
mov dl, 0x2f
sub dl, bl
xor dl, byte [esp + ecx + 0x78]
mov dh, 0x66
sub dh, dl
mov byte [esp + ecx + 0x78], dh
inc ecx
add eax, 2
cmp ecx, 5
jne 0x421130
mov eax, dword [0x450c68]
test eax, eax
lea ebx, [esp + 0x38]
je 0x421010
mov ecx, dword [esp + 0x78]
xor edx, edx
mov edi, dword [0x450c6c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x421193
inc edx
cmp eax, edx
jne 0x421180
jmp 0x421010
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x421010
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x450c70]
push eax
call fcn.00441a90
add esp, 0x14
jmp 0x421010
cmp byte [esp + 0x21a], 0
jne 0x4211d2
jmp 0x420fc2
add esi, ecx
call fcn.00404890
mov dword [esp + 0xc], eax
push eax
call fcn.004044c0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x78], 0x7fd1d5db
mov byte [esp + 0x7c], 0x48
lea eax, [esp + 0x7d]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x13
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x65]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xa1
mov byte [esp + eax + 0x65], cl
inc eax
cmp eax, 0x1b
jne 0x421210
movzx eax, byte [esp + 0x78]
test al, al
je 0x42124b
lea ecx, [esp + 0x79]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421240
mov byte [esi], 0
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
mov ecx, eax
or ecx, edx
je 0x421290
mov ecx, ebx
push 0
push 0
push 0x40
lea edi, [esp + 0x84]
push edi
push edx
push eax
call fcn.0043fbd0
test eax, eax
js 0x421290
mov ecx, ebx
mov edx, edi
push dword [esp + 4]
call fcn.00423500
add esp, 4
jmp 0x421292
xor eax, eax
mov dword [esp + 0x78], 0x997c4479
mov byte [esp + 0x7c], 0xe4
mov dword [esp + 0x7d], 0
mov ecx, 0xd8
mov edi, 7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, edi
and edx, 0x1c
mov ebx, ecx
and ebx, 0xe3
or ebx, edx
xor bl, byte [esp + ecx - 0x60]
xor bl, 0x1c
add bl, 0xc8
mov byte [esp + ecx - 0x60], bl
inc ecx
dec edi
cmp ecx, 0xe1
jne 0x4212c0
movzx ecx, byte [esp + 0x78]
test cl, cl
je 0x421310
lea edx, [esp + 0x79]
lea ebx, [esp + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421300
jmp 0x421314
lea ebx, [esp + 0x38]
mov byte [esi], 0
test al, al
je 0x420fa0
push dword [esp + 4]
call fcn.00404690
add esp, 4
test eax, eax
je 0x4214b0
mov eax, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x12c]
push edi
push edx
push eax
call fcn.0043fbd0
test eax, eax
js 0x421690
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call fcn.0043fbd0
test eax, eax
js 0x421690
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea edi, [esp + 0x6c]
push edi
push edx
push eax
call fcn.0043fbd0
test eax, eax
js 0x421690
cmp byte [esp + 0x77], 0
lea eax, [esp + 0x60]
mov dword [esp + 0x30], eax
js 0x4214bb
mov dword [esp + 0x10], 0x33c131ed
mov dword [esp + 0x14], 0x3fcc3dd1
mov dword [esp + 0x18], 0x3bf63918
mov dword [esp + 0x1c], 0xc73ac525
mov dword [esp + 0x20], 0xc326c121
mov word [esp + 0x24], 0xcdcc
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x8b
lea ecx, [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
lea edi, [eax - 0x65c69c00]
or edi, edx
not edi
and edx, eax
or edx, edi
mov ebx, edx
and ebx, 0xbb
and edx, 0x44
xor edx, 0x45
sub ebx, edx
inc bl
mov byte [ecx], bl
inc ecx
dec eax
cmp eax, 0x70
jne 0x421430
movzx edi, word [esp + 0x10]
test di, di
je 0x4214e8
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, ecx
mov dword [esp + 4], ecx
jmp 0x421488
movzx edi, word [eax]
test di, di
je 0x4214fd
movzx ebx, word [edx]
test bx, bx
je 0x4214f2
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x4214a8
mov dword [esp + 4], ecx
mov edx, ecx
je 0x421480
lea eax, [esp + 0x10]
jmp 0x421480
mov al, 1
mov dword [esp + 4], eax
jmp 0x420fa8
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, ecx
or eax, edi
je 0x421690
mov eax, dword [esp + 0x68]
mov ebx, eax
inc ebx
mov dword [esp + 4], ecx
jns 0x4215b3
mov eax, 0xffffffff
jmp 0x4215ba
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x78]
jmp 0x42150f
lea edx, [esp + 0x78]
mov ebx, edx
jmp 0x42166d
lea edx, [esp + 0x78]
mov ebx, edx
mov eax, dword [esp + 4]
test eax, eax
je 0x42166d
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x42166d
lea ecx, [eax + 0x14]
mov dword [esp + 8], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x42154a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x421530
mov ebx, edx
jmp 0x42166d
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 8]
je 0x421668
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x421600
mov ebx, edx
xor edx, edx
mov dword [esp + 0x10c], eax
mov edi, dword [esp + 8]
movzx eax, word [edi]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x10c]
mov dword [esp + 8], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x421570
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x78]
mov edi, dword [esp + 8]
jmp 0x421604
lea eax, [eax*2 + 2]
push eax
call fcn.0040c590
add esp, 4
mov edx, ebx
and edx, 0xfffffffd
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
xor ecx, 2
imul ecx, edx
add ebx, ecx
lea ecx, [esp + 0x38]
push 0
push 0
push ebx
mov dword [esp + 0x3c], eax
push eax
push edi
push dword [esp + 0x18]
call fcn.0043fbd0
test eax, eax
jns 0x4213dc
jmp 0x421690
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x421668
mov dword [esp + 4], 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 + 4]
mov word [ebx + 6], cx
add ebx, 8
add eax, 0xfffffffc
jne 0x42160a
lea edx, [esp + 0x78]
mov word [ebx], 0
cmp byte [esp + 0x77], 0
jns 0x421684
push dword [esp + 0x30]
call fcn.0040c5a0
lea edx, [esp + 0x7c]
add esp, 4
cmp edx, ebx
jne 0x421726
nop
nop
nop
nop
mov dword [esp + 0x10], 0xb1e08fc7
mov dword [esp + 0x14], 0xb523b3d5
mov dword [esp + 0x18], 0xb9d8b7dd
mov dword [esp + 0x1c], 0xbd2ebbd3
mov dword [esp + 0x20], 0xa1bebf2d
lea eax, [esp + 0x26]
mov byte [eax], 0
mov word [eax - 2], 0
mov eax, 0x5b21ab1d
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5b21ab0d]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x6f
mov byte [esp + eax - 0x5b21ab0d], cl
inc eax
cmp eax, 0x5b21ab34
jne 0x4216d0
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x78]
mov ebx, edx
test ax, ax
je 0x421721
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 0x421710
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 eax, ebx
and eax, 0xfffffffc
lea ecx, [esi + eax]
mov dword [esp + 4], ecx
lea edx, [esp + eax]
add edx, 0x78
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 0x4217b0
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 0x4217b0
mov edx, dword [esp + 8]
movzx edx, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], dl
cmp eax, 2
je 0x4217b0
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 + 0x10], 0xed051b7e
mov word [esp + 0x14], 0x637a
mov dword [esp + 0x16], 0
mov eax, 0xe9
mov ecx, 0xa077a616
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xd9]
lea edi, [edx + edx]
not edi
add edi, edx
and edi, ecx
and edx, eax
or edx, edi
mov edi, 0x71
sub edi, edx
not edx
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
mov byte [esp + eax - 0xd9], dl
inc eax
dec ecx
cmp eax, 0xf3
jne 0x4217e0
add esi, ebx
movzx eax, byte [esp + 0x10]
mov edi, ebx
test al, al
je 0x42183b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421830
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax], 0
lea eax, [eax + 2]
jne 0x421850
lea ecx, [ebx + eax]
add ecx, 0xfffffffe
add eax, ebx
mov edx, 1
sub edx, eax
and edx, ebx
mov eax, ebx
not eax
and eax, ecx
sub eax, edx
sar eax, 1
sar edi, 1
lea ecx, [edi + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421888
mov eax, 0xffffffff
jmp 0x421891
add edi, eax
lea eax, [edi*2 + 0x14]
push eax
call fcn.0040c590
add esp, 4
movzx ecx, word [ebx]
mov edi, eax
test cx, cx
je 0x4218c1
add ebx, 2
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x4218b0
mov dword [esp + 8], eax
mov word [edi], 0x2f
mov dword [esp + 0x10], 0x3f8c39eb
mov dword [esp + 0x14], 0x23b93d99
mov dword [esp + 0x18], 0x27b221f2
mov dword [esp + 0x1c], 0x2bbe25bc
mov word [esp + 0x20], 0x2928
mov dword [esp + 0x22], 0
mov ecx, 0xe8ef754a
nop
nop
movzx edx, byte [esp + ecx + 0x17108ac6]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x8e
mov byte [esp + ecx + 0x17108ac6], dl
inc ecx
cmp ecx, 0xe8ef7560
jne 0x421900
add edi, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x421951
lea edx, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421940
mov word [edi], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421981
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421970
mov word [edi], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
call fcn.00405500
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4219a0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040ce60
mov dword [esp + 4], eax
push edi
call fcn.00405590
add esp, 4
push ebx
call fcn.0040c5a0
add esp, 4
lea ebx, [esp + 0x38]
jmp 0x420fa8
xor ebx, ebx
lea ecx, [esp + 0x38]
call fcn.0043f3e0
mov dword [esp + 0x148], 0xbb1a176b
mov byte [esp + 0x14c], 0xb0
mov word [esp + 0x14d], 0
mov byte [esp + 0x14f], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x5d
xor al, byte [esp + ecx + 0x148]
add al, 0x2f
mov byte [esp + ecx + 0x148], al
inc ecx
cmp ecx, 8
jne 0x421a10
movzx eax, byte [esp + 0x148]
test al, al
je 0x421a4b
lea ecx, [esp + 0x149]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421a40
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]
mov ebx, dword [esp + 0x34]
and bl, 1
test eax, eax
je 0x4219da
cmp eax, dword [esp + 0x50]
je 0x4219da
push eax
call fcn.0040c5a0
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x4219da