Function at 0x420a00
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, 0x2f8
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x158], 0x99767f45
mov byte [esp + 0x15c], 0xe4
mov dword [esp + 0x15d], 0
mov ecx, 0x747c99d8
mov eax, 0x8b836627
nop
movzx esi, byte [esp + ecx - 0x747c9880]
mov ebx, esi
mov edi, esi
xor edi, 0x923f126d
or esi, 0x92
and esi, edi
mov edx, eax
and edx, 0x8203022d
mov edi, ecx
and edi, 0x64408992
or edi, edx
and ebx, 0x6d
xor ebx, 0x923f126d
add ebx, esi
and esi, 0x6d
sub ebx, esi
xor ebx, edi
mov edx, 0x38
sub edx, ebx
not ebx
and ebx, 1
or edx, 1
sub ebx, edx
mov byte [esp + ecx - 0x747c9880], bl
inc ecx
dec eax
cmp ecx, 0x747c99e1
jne 0x420a50
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
movzx ecx, byte [esp + 0x158]
test cl, cl
je 0x420add
lea edx, [esp + 0x159]
mov edi, dword [ebp + 0x10]
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x420ad0
jmp 0x420ae0
mov edi, 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 + 0x50]
lea ecx, [esp + 0x60]
lea edx, [esp + 0x38]
push eax
push ecx
push edx
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push edi
push dword [eax + 0xc]
call fcn.00422ff0
add esp, 0x18
test al, al
je 0x42104d
mov dword [esp + 0x158], 0xfbab9d9c
mov byte [esp + 0x15c], 0xf0
mov word [esp + 0x15d], 0
mov byte [esp + 0x15f], 0
mov eax, 0x8c7dd7fd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x7382295b]
xor ecx, eax
mov edx, ecx
not edx
and edx, 0xf2
and ecx, 0xd
sub ecx, edx
inc cl
mov byte [esp + eax + 0x7382295b], cl
inc eax
cmp eax, 0x8c7dd805
jne 0x420b60
movzx eax, byte [esp + 0x158]
test al, al
je 0x420bab
lea ecx, [esp + 0x159]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420ba0
mov byte [esi], 0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x150], eax
mov dword [esp + 0x158], 0x727a6ea1
mov dword [esp + 0x15c], 0x75766b50
mov dword [esp + 0x160], 0x9f637255
mov dword [esp + 0x164], 0x68696667
mov dword [esp + 0x168], 0x627b9d58
mov dword [esp + 0x16c], 0x757e7c72
mov dword [esp + 0x170], 0x74757273
mov dword [esp + 0x174], 0x7c81595a
mov dword [esp + 0x178], 0x5a774277
mov dword [esp + 0x17c], 0xb8b86677
mov dword [esp + 0x180], 0x9e71a484
mov dword [esp + 0x184], 0x7f989dbe
mov dword [esp + 0x188], 0x74aab278
mov dword [esp + 0x18c], 0xa4a57a76
mov dword [esp + 0x190], 0xaf916aab
mov dword [esp + 0x194], 0x98999697
mov dword [esp + 0x198], 0xb2bfbdb7
mov dword [esp + 0x19c], 0xa055849d
mov dword [esp + 0x1a0], 0xa4a385b0
mov dword [esp + 0x1a4], 0x51a9a6a7
mov dword [esp + 0x1a8], 0xacadaaa6
mov dword [esp + 0x1ac], 0x8aa356af
mov dword [esp + 0x1b0], 0x4346a64a
mov dword [esp + 0x1b4], 0xad4aa5a6
mov dword [esp + 0x1b8], 0xbcbdbabb
mov dword [esp + 0x1bc], 0xe2324693
mov dword [esp + 0x1c0], 0xe9c7f2c3
mov dword [esp + 0x1c4], 0xc83de43f
mov dword [esp + 0x1c8], 0xcccdcacb
mov dword [esp + 0x1cc], 0xdcd1cecf
mov dword [esp + 0x1d0], 0xd6fbe627
mov dword [esp + 0x1d4], 0xd8d9d6d7
mov dword [esp + 0x1d8], 0xfbc9f8f5
mov dword [esp + 0x1dc], 0x17ce2adf
mov byte [esp + 0x1e0], 0x20
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e1], 0
mov eax, 0x59
mov ecx, 0x4f0d61a5
nop
nop
nop
lea ebx, [eax - 0x4f0d61ff]
or ebx, 0x25125313
mov edx, ecx
not edx
lea edi, [ecx + ebx]
add edi, 0xb0f29f01
and edx, 0xec
or edx, edi
mov edi, eax
sub edi, ebx
mov ebx, ecx
or ebx, 0x13
and ebx, edi
not ebx
and ebx, edx
xor bl, byte [esp + eax + 0xff]
xor bl, 0x13
add bl, 0x3e
mov byte [esp + eax + 0xff], bl
inc eax
dec ecx
cmp eax, 0xe9
jne 0x420d70
mov dword [esp + 0x80], 0xe0dad6d6
mov dword [esp + 0x84], 0x501fbd78
mov dword [esp + 0x88], 0x436420e0
mov dword [esp + 0x8c], 0x5f5e5d5c
mov dword [esp + 0x90], 0xabc65ed5
mov dword [esp + 0x94], 0x4f472cec
mov dword [esp + 0x98], 0x4b4a4948
mov dword [esp + 0x9c], 0xf75e34f4
mov dword [esp + 0xa0], 0xec9a05c3
mov dword [esp + 0xa4], 0x7b7a06ea
mov dword [esp + 0xa8], 0x7060504
mov dword [esp + 0xac], 0x3020100
mov dword [esp + 0xb0], 0xb08a8686
mov dword [esp + 0xb4], 0x4e8efd28
mov dword [esp + 0xb8], 0x2e519116
mov dword [esp + 0xbc], 0x2f2e2d2c
mov dword [esp + 0xc0], 0x9b02f098
mov dword [esp + 0xc4], 0x27c2e15d
mov dword [esp + 0xc8], 0x1b9364a0
mov dword [esp + 0xcc], 0xc71e1d1c
mov dword [esp + 0xd0], 0x13121108
mov dword [esp + 0xd4], 0xd16dad14
mov dword [esp + 0xd8], 0xb571b1e8
mov dword [esp + 0xdc], 0x7975b5d4
mov dword [esp + 0xe0], 0x3020100
mov dword [esp + 0xe4], 0xe3c278b8
mov dword [esp + 0xe8], 0xb8340f8
mov dword [esp + 0xec], 0xff78ba44
mov dword [esp + 0xf0], 0xf3f2f1f0
mov dword [esp + 0xf4], 0x4ff6f5f4
mov dword [esp + 0xf8], 0x1ee5e391
mov dword [esp + 0xfc], 0xefeeedec
mov dword [esp + 0x100], 0x75e9a58
mov dword [esp + 0x104], 0xc6375de4
mov byte [esp + 0x108], 0xd8
mov byte [esp + 0x10d], 0
mov dword [esp + 0x109], 0
xor eax, eax
mov ecx, eax
add cl, 0x98
xor cl, byte [esp + eax + 0x80]
add cl, 8
mov byte [esp + eax + 0x80], cl
inc eax
cmp eax, 0x8e
jne 0x420f50
lea eax, [esp + 0x158]
lea edx, [esp + 0x80]
lea ecx, [esp + 0x148]
push eax
push 0x88
push edx
lea edi, [esp + 0x44]
push edi
call fcn.004411f0
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
or eax, edx
je 0x421dac
mov dword [esp + 0x158], 0x79101504
mov byte [esp + 0x15c], 0x64
mov word [esp + 0x15d], 0
mov byte [esp + 0x15f], 0
mov edx, 0x6ea279e8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx - 0x6ea27890]
mov ebx, edi
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xed
mul cl
mov ecx, eax
mov eax, edi
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, 0x78
mov byte [esp + edx - 0x6ea27890], al
inc edx
cmp edx, 0x6ea279f0
jne 0x420fe0
movzx eax, byte [esp + 0x158]
test al, al
je 0x421054
lea ecx, [esp + 0x159]
lea edx, [esp + 0x38]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421040
jmp 0x421058
xor ebx, ebx
jmp 0x421db0
lea edx, [esp + 0x38]
mov byte [esi], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x148]
push 0
push 8
push eax
push edx
call fcn.004411f0
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
or eax, edx
je 0x421dac
mov dword [esp + 0x158], 0xff505042
mov byte [esp + 0x15c], 0xc8
mov dword [esp + 0x15d], 0
mov dword [esp + 0x160], 0
mov eax, 0x53
mov ecx, 0xac
nop
nop
nop
movzx edi, byte [esp + eax + 0x105]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x61
mov byte [esp + eax + 0x105], dl
inc eax
dec ecx
cmp eax, 0x5f
jne 0x4210c0
movzx eax, byte [esp + 0x158]
test al, al
je 0x42110b
lea ecx, [esp + 0x159]
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
lea eax, [esp + 0x138]
lea edx, [esp + 0x54]
lea ecx, [esp + 0x38]
push 0
push 8
push eax
push edx
call fcn.004405b0
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, dword [esp + 0x58]
je 0x421dae
mov dword [esp + 0x158], 0x99060531
mov byte [esp + 0x15c], 0x9c
mov dword [esp + 0x15d], 0
mov byte [esp + 0x161], 0
nop
nop
mov eax, ecx
add al, 0x64
xor al, byte [esp + ecx + 0x158]
add al, 0xc
mov byte [esp + ecx + 0x158], al
inc ecx
cmp ecx, 0xa
jne 0x421160
movzx eax, byte [esp + 0x158]
test al, al
je 0x42119b
lea ecx, [esp + 0x159]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421190
mov byte [esi], 0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x118], ecx
cmp eax, ecx
je 0x421dac
xor ecx, ecx
lea edi, [esp + 0x38]
jmp 0x4211db
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x11c]
add eax, 8
cmp eax, dword [esp + 0x118]
je 0x421e51
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x11c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
push 0x198
push 0
lea eax, [esp + 0x160]
push eax
call fcn.0040c790
add esp, 0xc
xor ebx, ebx
jmp 0x42121e
lea edi, [esp + 0x38]
inc ebx
cmp ebx, 0xb
je 0x421470
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x164]
push eax
push dword [esp + 0x44]
push dword [esp + 0x20]
call fcn.004403f0
test eax, eax
js 0x421214
cmp byte [esp + 0x228], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x229], 0
mov byte [esp + 0x68], cl
sete al
xor al, 0x31
mov byte [esp + 0x69], al
cmp byte [esp + 0x22a], 0
sete al
xor al, 0x31
mov byte [esp + 0x6a], al
cmp byte [esp + 0x2e8], 0
sete al
xor al, 0x31
mov byte [esp + 0x6b], al
mov word [esp + 0x6c], 0xa
xor eax, eax
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x69]
inc eax
test cl, cl
jne 0x421290
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x22a]
test cl, cl
jne 0x421460
cmp byte [esp + 0x228], 0
jne 0x4212cf
mov edx, dword [esp + 0x19c]
or edx, dword [esp + 0x198]
je 0x421460
mov dword [esp + 4], ebx
add esi, eax
mov dword [esp + 8], esi
mov dword [esp + 0x80], 0x2b857c95
mov byte [esp + 0x84], 0x10
lea eax, [esp + 0x85]
mov word [eax + 4], 0
mov dword [eax], 0
mov ebx, 0xad631c85
mov edi, 0x529ce37a
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ebx + 0x529ce3fb]
mov edx, ebx
and edx, esi
add edx, edx
sub edx, esi
add edx, edi
and edx, ebx
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x9d
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, ebx
add al, 0x67
mov byte [esp + ebx + 0x529ce3fb], al
inc ebx
dec edi
cmp ebx, 0xad631c90
jne 0x421310
movzx eax, byte [esp + 0x80]
test al, al
je 0x421390
lea ecx, [esp + 0x81]
mov esi, dword [esp + 8]
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 0x421380
jmp 0x421394
mov esi, dword [esp + 8]
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x80], 0x101f1e1d
mov byte [esp + 0x84], 0
xor eax, eax
xor ecx, ecx
nop
nop
movzx edx, byte [esp + ecx + 0x80]
mov edi, eax
and edi, 0xa
mov ebx, ecx
xor ebx, 0x78b96ec5
add ebx, edi
mov edi, edx
and edi, ebx
add edi, edi
sub ebx, edi
add bl, dl
add bl, 0x27
mov byte [esp + ecx + 0x80], bl
inc ecx
add eax, 2
cmp ecx, 5
jne 0x4213c0
mov eax, dword [0x451d6c]
test eax, eax
mov ebx, dword [esp + 4]
je 0x421210
mov ecx, dword [esp + 0x80]
xor edx, edx
mov edi, dword [0x451d70]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x421433
inc edx
cmp eax, edx
jne 0x421420
jmp 0x421210
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x421210
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x451d74]
push eax
call fcn.00442ab0
add esp, 0x14
jmp 0x421210
add esi, eax
test cl, cl
jne 0x421480
jmp 0x4211c0
movzx ecx, byte [esp + 0x22a]
test cl, cl
je 0x4211c0
call fcn.00404b30
mov dword [esp + 0x48], eax
push eax
call fcn.00404760
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x80], 0x3b99859f
mov byte [esp + 0x84], 0x20
lea eax, [esp + 0x85]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 9
mov ecx, 0xf6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x77]
mov ebx, eax
or ebx, edx
not edx
or edx, ecx
and edx, ebx
add dl, 0xd3
mov byte [esp + eax + 0x77], dl
inc eax
dec ecx
cmp eax, 0x14
jne 0x4214d0
movzx eax, byte [esp + 0x80]
test al, al
je 0x42150b
lea ecx, [esp + 0x81]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421500
mov byte [esi], 0
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x194]
mov ecx, eax
or ecx, edx
je 0x421560
mov ecx, edi
push 0
push 0
push 0x40
mov ebx, edi
lea edi, [esp + 0x8c]
push edi
push edx
push eax
call fcn.004403f0
test eax, eax
js 0x42156a
mov ecx, ebx
mov edx, edi
push dword [esp + 8]
call fcn.00423a90
add esp, 4
jmp 0x42156c
mov dword [esp + 4], 0
jmp 0x421570
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0x80], 0x89646c69
mov byte [esp + 0x84], 0xac
lea eax, [esp + 0x85]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x2747c95c
mov ebx, 0x18b836a3
movzx edi, byte [esp + eax - 0x2747c8dc]
mov ecx, ebx
and ecx, 0x18b81433
mov edx, eax
and edx, 0x2242404c
or edx, ecx
xor edx, edi
mov ecx, edx
not ecx
and ecx, 0x33
or edx, 0x33
add edx, ecx
inc dl
mov byte [esp + eax - 0x2747c8dc], dl
inc eax
dec ebx
cmp eax, 0x2747c967
jne 0x4215a0
movzx eax, byte [esp + 0x80]
test al, al
je 0x421610
lea ecx, [esp + 0x81]
lea edi, [esp + 0x38]
mov ebx, dword [esp + 4]
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 0x421600
jmp 0x421618
lea edi, [esp + 0x38]
mov ebx, dword [esp + 4]
mov byte [esi], 0
push dword [esp + 8]
call fcn.00404930
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x421c17
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x2b0]
mov edx, dword [esp + 0x2b4]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x13c]
push ebx
push edx
push eax
call fcn.004403f0
test eax, eax
js 0x4218a0
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x134]
push ebx
push edx
push eax
call fcn.004403f0
test eax, eax
js 0x4218a0
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x74]
push edi
push edx
push eax
call fcn.004403f0
test eax, eax
js 0x4218a0
cmp byte [esp + 0x7f], 0
lea eax, [esp + 0x68]
mov dword [esp + 0x30], eax
js 0x421848
mov dword [esp + 0x10], 0x23b12155
mov dword [esp + 0x14], 0x27b42541
mov dword [esp + 0x18], 0x5b1e5978
mov dword [esp + 0x1c], 0x5fca5d3d
mov dword [esp + 0x20], 0x533e5131
mov word [esp + 0x24], 0x5554
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov ecx, 0x3e24ea37
mov dword [esp + 8], 0x3e24ea39
xor edi, edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], edi
movzx eax, byte [esp + ecx - 0x3e24ea27]
lea ebx, [ecx + 1]
mov dword [esp + 0x124], ebx
mov edx, dword [esp + 0x34]
and ebx, eax
add ebx, ebx
sub ebx, eax
add ebx, edx
add ebx, 0xc1db15c7
lea ecx, [edx + 0x1db15c7]
or ecx, ebx
lea edi, [edi + ecx*2]
mov dword [esp + 0x120], edi
mov edi, dword [esp + 8]
add ecx, edi
add ecx, ecx
mov ebx, dword [esp + 4]
sub ebx, ecx
mov ecx, dword [esp + 0x120]
add ecx, edx
add ecx, 0x3e24ea3a
xor ecx, eax
and ebx, eax
add ebx, ebx
sub ebx, ecx
mov eax, ebx
not eax
add ebx, 0xc9476ce7
or eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
mov eax, dword [esp + 4]
mov byte [esp + eax - 0x3e24ea27], bl
inc edi
mov dword [esp + 8], edi
mov edi, dword [esp + 0xc]
dec edx
add edi, 2
mov eax, dword [esp + 0x124]
mov ecx, eax
cmp eax, 0x3e24ea52
jne 0x421740
movzx edi, word [esp + 0x10]
test di, di
je 0x421c31
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, ecx
mov dword [esp + 4], ecx
jmp 0x42181c
movzx edi, word [eax]
test di, di
je 0x421c4c
movzx ebx, word [edx]
test bx, bx
je 0x421c3e
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x421840
mov dword [esp + 4], ecx
mov edx, ecx
je 0x421810
lea eax, [esp + 0x10]
jmp 0x421810
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov eax, edi
or eax, ebx
je 0x4218a0
mov eax, dword [esp + 0x70]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x42186f
mov eax, 0xffffffff
push eax
call fcn.0040c700
add esp, 4
lea ecx, [esp + 0x38]
push 0
push 0
push dword [esp + 0xc]
mov dword [esp + 0x3c], eax
push eax
push ebx
push edi
call fcn.004403f0
test eax, eax
jns 0x4216e7
nop
nop
nop
nop
nop
nop
nop
nop
lea edi, [esp + 0x80]
mov dword [esp + 0x10], 0x930491d9
mov dword [esp + 0x14], 0x9f099d3f
mov dword [esp + 0x18], 0x9b0c9937
mov dword [esp + 0x1c], 0x871a852d
mov dword [esp + 0x20], 0x83828117
mov word [esp + 0x24], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa4
xor cl, byte [esp + eax + 0x10]
add cl, 0xcc
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x16
jne 0x4218e0
movzx eax, word [esp + 0x10]
mov ebx, edi
test ax, ax
je 0x421921
lea ecx, [esp + 0x12]
mov ebx, edi
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 0x421910
mov word [ebx], 0
mov edx, ebx
sub edx, edi
mov ecx, edx
shr ecx, 2
mov eax, edi
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, edx
and ecx, 0xfffffffc
lea edi, [esi + ecx]
lea eax, [esp + ecx]
add eax, 0x80
mov dword [esp + 4], edx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov edx, eax
mov dword [esp + 8], edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x421976
mov ecx, dword [esp + 4]
and ecx, 2
movzx eax, byte [eax + ecx]
mov edx, dword [esp + 8]
mov byte [edx + ecx], al
push 0xa
push 0xb
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x120]
call fcn.00423890
add esp, 0x10
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0x1d0d0f6a
mov dword [esp + 0x14], 0x6d4e5c48
mov word [esp + 0x18], 0
mov ecx, 1
mov edi, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ebx, [ecx - 1]
movzx eax, byte [esp + ecx + 0xf]
mov edx, edi
or edx, 0xd32bd967
or ebx, 0xd32bd967
add ebx, edx
lea edx, [ecx + ebx]
and edx, eax
add edx, edx
add ebx, eax
sub ebx, edx
add ebx, ecx
add bl, 0xfd
mov byte [esp + ecx + 0xf], bl
inc ecx
dec edi
cmp ecx, 0xb
jne 0x4219c0
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x421a1d
lea edx, [esp + 0x11]
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421a10
jmp 0x421a21
mov eax, dword [esp + 8]
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x421a3b
inc eax
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421a30
mov byte [esi], 0xa
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 0x421a50
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421a70
mov eax, 0xffffffff
jmp 0x421a79
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040c700
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x421ab1
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 0x421aa0
mov dword [esp + 8], eax
inc esi
mov dword [esp + 0xc], edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0xc30cc12f
mov dword [esp + 0x14], 0xc751c561
mov dword [esp + 0x18], 0xcb5ec926
mov dword [esp + 0x1c], 0xcf5acd54
mov dword [esp + 0x20], 0xb1b0
xor eax, eax
xor edx, edx
nop
nop
nop
nop
nop
mov dword [esp + 4], eax
mov edi, edx
xor edi, 0xe55859ce
mov ebx, dword [esp + 4]
and ebx, 0x22
sub ebx, edi
mov edi, ebx
and edi, 0xa250630
xor ebx, 0xb651f30
lea ecx, [ebx + edi*2]
mov eax, 0x31
sub eax, ecx
movzx ecx, byte [esp + edx + 0x10]
lea edi, [ebx + edi*2]
add edi, 0xe55859ce
mov ebx, ecx
not ebx
and edi, ebx
or ebx, eax
lea eax, [ecx + ebx]
inc eax
or eax, edi
mov ecx, 0xf0
sub ecx, eax
or ecx, 1
add ecx, eax
lea ebx, [eax + 0xf]
or ebx, 1
add ebx, ecx
add bl, 0x10
mov byte [esp + edx + 0x10], bl
mov eax, dword [esp + 4]
inc edx
add eax, 2
cmp edx, 0x14
jne 0x421af0
mov eax, dword [esp + 0xc]
add eax, 2
movzx ecx, word [esp + 0x80]
test cx, cx
je 0x421b91
lea edx, [esp + 0x82]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421b80
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421bc1
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 0x421bb0
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x48]
call fcn.00405770
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421be0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040d0a0
mov dword [esp + 4], eax
push edi
call fcn.00405800
add esp, 4
push ebx
mov ebx, dword [esp + 8]
call fcn.0040c710
add esp, 4
lea edi, [esp + 0x38]
push dword [esp + 0x48]
call fcn.00404970
add esp, 4
mov ecx, dword [esp + 0x4c]
and cl, 1
or cl, bl
jmp 0x4211c4
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x80]
jmp 0x421c61
lea ebx, [esp + 0x80]
mov edx, ebx
jmp 0x421d76
lea ebx, [esp + 0x80]
mov edx, ebx
mov eax, dword [esp + 4]
test eax, eax
je 0x421d76
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x421d76
lea ecx, [eax + 0x14]
mov dword [esp + 8], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x421c9a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x421c80
mov ebx, edx
jmp 0x421d76
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 8]
je 0x421d71
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x421d03
mov ebx, edx
xor edx, edx
mov dword [esp + 0xc], eax
nop
nop
nop
nop
nop
nop
nop
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 + 0xc]
mov dword [esp + 8], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x421cc0
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x80]
mov edi, dword [esp + 8]
jmp 0x421d07
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x421d71
nop
nop
nop
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 0x421d10
lea edx, [esp + 0x80]
mov word [ebx], 0
cmp byte [esp + 0x7f], 0
mov edi, edx
js 0x421d8c
cmp edi, ebx
jne 0x421926
jmp 0x4218a7
push dword [esp + 0x30]
call fcn.0040c710
lea edi, [esp + 0x84]
add esp, 4
cmp edi, ebx
jne 0x421926
jmp 0x4218a7
xor ecx, ecx
mov ebx, ecx
lea ecx, [esp + 0x38]
call fcn.0043faf0
mov dword [esp + 0x158], 0x315a416d
mov byte [esp + 0x15c], 0xcc
mov word [esp + 0x15d], 0
mov byte [esp + 0x15f], 0
mov eax, 0xb2
mov ecx, 0x4d
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0xa6]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x86
mov byte [esp + eax + 0xa6], dl
inc eax
dec ecx
cmp eax, 0xba
jne 0x421df0
movzx eax, byte [esp + 0x158]
test al, al
je 0x421e3d
lea ecx, [esp + 0x159]
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421e30
jmp 0x421e3f
mov edx, ebx
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x54]
and cl, 1
test eax, eax
je 0x421dae
cmp eax, dword [esp + 0x58]
je 0x421dae
push eax
mov edi, ecx
call fcn.0040c710
mov ecx, edi
add esp, 4
mov dword [esp + 0x54], 0
jmp 0x421dae