Function at 0x420b40
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 dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x140], 0x41eafbe5
mov byte [esp + 0x144], 0x54
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor ecx, ecx
mov eax, 0xd3e08c11
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov ecx, dword [esp]
and ecx, 0xfffffffc
lea edi, [eax + ecx]
mov eax, edx
shr eax, 2
mov ebx, edx
and ebx, 0x7ffffffc
or ebx, 2
mov esi, edx
shr esi, 1
and esi, 1
imul esi, ebx
mov ebx, edx
not ebx
add esi, esi
sub edi, esi
sub esi, ecx
movzx ecx, byte [esp + edx + 0x140]
mov dword [esp + 4], ecx
and ebx, 2
imul ebx, eax
lea eax, [ebx*4]
sub edi, eax
lea eax, [edx + ebx*4]
add esi, eax
add esi, 0x2c1f73ee
mov eax, ecx
and eax, esi
mov ecx, esi
mov ebx, eax
and ebx, 2
mov esi, eax
or eax, 2
imul eax, ebx
xor ebx, 2
and esi, 0xfffffffd
imul esi, ebx
add eax, esi
mov ebx, eax
not ebx
and ebx, ecx
mov ecx, dword [esp]
and eax, edi
sub ebx, eax
mov eax, dword [esp + 0xc]
add bl, byte [esp + 4]
add bl, 0x5a
mov byte [esp + edx + 0x140], bl
inc edx
add ecx, 2
dec eax
cmp edx, 0xb
jne 0x420ba0
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
movzx eax, byte [esp + 0x140]
test al, al
je 0x420c6d
lea ecx, [esp + 0x141]
mov edx, dword [ebp + 0x10]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420c60
jmp 0x420c70
mov edx, dword [ebp + 0x10]
mov byte [esi], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x50]
lea edi, [esp + 0x2c]
push eax
push ecx
push edi
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push edx
push dword [eax + 0xc]
call fcn.00423070
add esp, 0x18
test al, al
je 0x421df0
mov dword [esp + 0x140], 0x4f17e5ec
mov byte [esp + 0x144], pe_nt_image_headers32
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
mov eax, 0xeb
mov ecx, 0x14
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x55]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
add dl, 0x69
mov byte [esp + eax + 0x55], dl
inc eax
dec ecx
cmp eax, 0xf5
jne 0x420cf0
movzx eax, byte [esp + 0x140]
test al, al
je 0x420d2b
lea ecx, [esp + 0x141]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420d20
mov byte [esi], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x140], 0x9e869269
mov dword [esp + 0x144], 0x75729778
mov dword [esp + 0x148], 0x737f668d
mov dword [esp + 0x14c], 0x70717273
mov dword [esp + 0x150], 0x6e674580
mov dword [esp + 0x154], 0x756a649e
mov dword [esp + 0x158], 0x44454647
mov dword [esp + 0x15c], 0x4c79b1b6
mov dword [esp + 0x160], 0xa65bb65b
mov dword [esp + 0x164], 0xb0b05243
mov dword [esp + 0x168], 0xb269bc5c
mov dword [esp + 0x16c], 0x6b40b5aa
mov dword [esp + 0x170], 0x64b6a660
mov dword [esp + 0x174], 0xa4a56662
mov dword [esp + 0x178], 0xe3291edf
mov dword [esp + 0x17c], 0x20212223
mov dword [esp + 0x180], 0xdec3c5db
mov dword [esp + 0x184], 0x2815cc25
mov dword [esp + 0x188], 0x343fdd28
mov dword [esp + 0x18c], 0x9313233
mov dword [esp + 0x190], 0x3c3d3e2a
mov dword [esp + 0x194], 0xfe27023b
mov dword [esp + 0x198], 0x3f3a1a3e
mov dword [esp + 0x19c], 0x1d3e1d12
mov dword [esp + 0x1a0], 0xc0d0e0f
mov dword [esp + 0x1a4], 0xe63632ff
mov dword [esp + 0x1a8], 0xe11be617
mov dword [esp + 0x1ac], 0x102dfc2b
mov dword [esp + 0x1b0], 0x1c1d1e1f
mov dword [esp + 0x1b4], 0xc191a1b
mov dword [esp + 0x1b8], 0xea171adb
mov dword [esp + 0x1bc], 0xe0e1e2e3
mov dword [esp + 0x1c0], 0x7f1001d
mov dword [esp + 0x1c4], 0xd31ad6eb
mov byte [esp + 0x1c8], 0xb8
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c9], 0
mov eax, 0x87704308
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x788fbe38]
xor ecx, eax
mov edx, ecx
and edx, 0x3a
xor ecx, 0x3a
lea ecx, [ecx + edx*2]
add cl, 0x9e
mov byte [esp + eax + 0x788fbe38], cl
inc eax
cmp eax, 0x87704398
jne 0x420ef0
mov dword [esp + 0x70], 0xf0baaeae
mov dword [esp + 0x74], 0x20f79548
mov dword [esp + 0x78], 0x532cf0b0
mov dword [esp + 0x7c], 0x47464544
mov dword [esp + 0x80], 0x4bfe46cd
mov dword [esp + 0x84], 0x677fc484
mov dword [esp + 0x88], 0x4b4a4948
mov dword [esp + 0x8c], 0x9f66dc9c
mov dword [esp + 0x90], 0xf4ba1dd3
mov dword [esp + 0x94], 0xb0a1efa
mov dword [esp + 0x98], 0xf0e0d0c
mov dword [esp + 0x9c], 0x73727170
mov dword [esp + 0xa0], 0xa0eafefe
mov dword [esp + 0xa4], 0xa6e6d518
mov dword [esp + 0xa8], 0x26a1e17e
mov dword [esp + 0xac], 0x37363534
mov dword [esp + 0xb0], 0xfb12c0f8
mov dword [esp + 0xb4], 0x3fd2f1b5
mov dword [esp + 0xb8], 0x3b83acf0
mov dword [esp + 0xbc], 0xef060504
mov dword [esp + 0xc0], 0x3020128
mov dword [esp + 0xc4], 0xc185c50c
mov dword [esp + 0xc8], 0xdd81c1e8
mov dword [esp + 0xcc], 0x899dddfc
mov dword [esp + 0xd0], 0x13121110
mov dword [esp + 0xd4], 0xf3d288c8
mov dword [esp + 0xd8], 0xb93d018
mov dword [esp + 0xdc], 0xe768aa2c
mov dword [esp + 0xe0], 0xe3e2e1e0
mov dword [esp + 0xe4], 0x27eeedec
mov dword [esp + 0xe8], 0xf6edd361
mov dword [esp + 0xec], 0xf7f6f5f4
mov dword [esp + 0xf0], 0x1f267a38
mov dword [esp + 0xf4], 0xde0f35fc
mov byte [esp + 0xf8], 0xf8
mov dword [esp + 0xf9], 0
mov eax, 0x6dd7a594
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x6dd7a524]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x1c
mov byte [esp + eax - 0x6dd7a524], cl
inc eax
cmp eax, 0x6dd7a621
jne 0x4210a0
lea ebx, [esp + 0x140]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x130]
push ebx
push 0x88
push eax
push edi
call fcn.00440ca0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ecx, ecx
or eax, edx
je 0x421df6
mov dword [esp + 0x140], 0x99707544
mov byte [esp + 0x144], 0xe4
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x58
xor al, byte [esp + ecx + 0x140]
add al, 0x48
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0xb
jne 0x421130
movzx eax, byte [esp + 0x140]
test al, al
je 0x42116b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421160
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.00440ca0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x421df4
mov dword [esp + 0x140], 0xc7606072
mov byte [esp + 0x144], 0xd8
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0x50
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
lea ecx, [eax - 0x2f605800]
or ecx, edx
and edx, eax
not ecx
or ecx, edx
mov edx, ecx
or edx, 0x94
add edx, ecx
not ecx
or ecx, 0x94
add edx, ecx
add dl, 2
mov byte [ebx], dl
inc ebx
dec eax
cmp eax, 0x45
jne 0x4211d0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42122b
lea ecx, [esp + 0x141]
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 0x421220
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x2c]
push 0
push 8
push eax
push edx
call fcn.00440220
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x421df4
mov dword [esp + 0x140], 0x61020d39
mov byte [esp + 0x144], 0x94
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov eax, 6
mov ecx, 0x99
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x85
mov edx, eax
and edx, 0xa
or edx, edi
xor dl, byte [esp + eax + 0x13a]
xor dl, 0xe5
add dl, 2
mov byte [esp + eax + 0x13a], dl
inc eax
dec ecx
cmp eax, 0xe
jne 0x421290
movzx eax, byte [esp + 0x140]
test al, al
je 0x4212db
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4212d0
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x421df4
xor ecx, ecx
lea edi, [esp + 0x2c]
jmp 0x42131b
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x421ead
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040c8d0
add esp, 0xc
xor ebx, ebx
jmp 0x421362
lea edi, [esp + 0x2c]
mov esi, dword [esp + 0xc]
inc ebx
cmp ebx, 0xb
je 0x4215c0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.004400b0
test eax, eax
js 0x421358
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x58], cl
sete al
xor al, 0x31
mov byte [esp + 0x59], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0x5a], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0x5b], al
mov word [esp + 0x5c], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x59]
inc eax
test cl, cl
jne 0x4213e0
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x4215b0
cmp byte [esp + 0x210], 0
jne 0x42141f
mov edx, dword [esp + 0x184]
or edx, dword [esp + 0x180]
je 0x4215b0
mov dword [esp], ebx
add esi, eax
mov dword [esp + 0x70], 0x7655c8d
mov byte [esp + 0x74], 0xf8
mov dword [esp + 0x75], 0
mov eax, 0xe3dbf67f
mov ecx, 0x4240980
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x1c2409f1]
mov edi, ecx
and edi, 0x4240867
mov ebx, eax
and ebx, 0xa242d498
or ebx, edi
xor ebx, edx
mov edx, ebx
not edx
and edx, 4
xor ebx, 0xe3
lea edx, [ebx + edx*2]
inc dl
mov byte [esp + eax + 0x1c2409f1], dl
inc eax
dec ecx
cmp eax, 0xe3dbf688
jne 0x421450
movzx eax, byte [esp + 0x70]
test al, al
je 0x4214ab
lea ecx, [esp + 0x71]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4214a0
mov dword [esp + 0xc], esi
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x70], 0xf8fbfafd
lea eax, [esp + 0x74]
mov byte [eax + 2], 0
mov word [eax], 0
mov ebx, 0x11736eab
mov edi, 0x6e8c9154
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ebx - 0x11736e3b]
mov eax, edi
and eax, 0x50
mov edx, ebx
and edx, 0xaf
or edx, eax
xor edx, esi
xor edx, 0xaf
and edx, ebx
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0xbd
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, 0xa9
mov byte [esp + ebx - 0x11736e3b], al
inc ebx
dec edi
cmp ebx, 0x11736eb2
jne 0x4214f0
mov eax, dword [0x45316c]
test eax, eax
mov ebx, dword [esp]
je 0x421350
mov ecx, dword [esp + 0x70]
xor edx, edx
mov edi, dword [0x453170]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x421583
inc edx
cmp eax, edx
jne 0x421570
jmp 0x421350
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x421350
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x453174]
push eax
call fcn.004421f0
add esp, 0x14
jmp 0x421350
add esi, eax
test cl, cl
jne 0x4215d0
jmp 0x421300
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x421300
call fcn.00404af0
mov dword [esp + 0xc], eax
push eax
call fcn.00404720
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x70], 0xe14b4741
mov byte [esp + 0x74], 0xf4
lea eax, [esp + 0x74]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x56
xor cl, byte [esp + eax + 0x70]
add cl, 0x52
mov byte [esp + eax + 0x70], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xc
jb 0x421610
movzx eax, byte [esp + 0x70]
test al, al
je 0x42164b
lea ecx, [esp + 0x71]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421640
mov byte [esi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x4216a0
mov ecx, edi
push 0
push 0
push 0x40
lea edi, [esp + 0x7c]
push edi
push edx
push eax
call fcn.004400b0
test eax, eax
js 0x4216a9
lea ecx, [esp + 0x2c]
mov edx, edi
push dword [esp + 4]
call fcn.00423c40
add esp, 4
mov dword [esp], eax
jmp 0x4216b0
mov dword [esp], 0
jmp 0x4216b4
mov dword [esp], 0
lea edi, [esp + 0x2c]
mov dword [esp + 0x70], 0x19847c79
mov byte [esp + 0x74], 0x1c
lea eax, [esp + 0x74]
mov byte [eax + 3], 0
mov word [eax + 1], 0
nop
movzx eax, byte [esp + ebx + 0x70]
mov ecx, ebx
xor ecx, 0x7b
mov edx, ebx
or edx, 4
and edx, ecx
mov ecx, ebx
xor ecx, 4
lea ecx, [ecx + edx*2]
mov edx, eax
and edx, 0x33
or edx, 0x44
and eax, 0xffffffcc
xor eax, ecx
xor eax, edx
xor al, 0x44
add al, 0xec
mov byte [esp + ebx + 0x70], al
inc ebx
cmp ebx, 8
jne 0x4216d0
movzx eax, byte [esp + 0x70]
test al, al
je 0x421730
lea ecx, [esp + 0x71]
mov ebx, dword [esp]
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 0x421720
jmp 0x421733
mov ebx, dword [esp]
mov byte [esi], 0
push dword [esp + 4]
call fcn.004048f0
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x421dd6
mov dword [esp + 4], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.004400b0
test eax, eax
js 0x421a90
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.004400b0
test eax, eax
js 0x421a90
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x64]
push edi
push edx
push eax
call fcn.004400b0
test eax, eax
js 0x421a90
cmp byte [esp + 0x6f], 0
lea ebx, [esp + 0x58]
js 0x4218ae
mov dword [esp + 0x10], 0x17991975
mov dword [esp + 0x14], 0x139c1589
mov dword [esp + 0x18], 0xf721130
mov dword [esp + 0x1c], 0xb860d6d
mov dword [esp + 0x20], 0x7620969
mov word [esp + 0x24], 0x504
lea eax, [esp + 0x26]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 6
xor cl, byte [esp + eax + 0x10]
add cl, 0xe2
mov byte [esp + eax + 0x10], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x19
jb 0x421840
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 0x100], ebx
je 0x4218de
lea eax, [esp + 0x10]
mov edx, ebx
mov dword [esp], ebx
jmp 0x421888
movzx edi, word [eax]
test di, di
je 0x4218f1
movzx ebx, word [edx]
test bx, bx
je 0x4218e6
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp bx, di
je 0x4218a6
mov dword [esp], ecx
mov edx, ecx
je 0x421880
lea eax, [esp + 0x10]
jmp 0x421880
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, ecx
or eax, edx
je 0x421a90
mov edi, dword [esp + 0x60]
mov ebx, edi
inc ebx
mov dword [esp], ecx
mov dword [esp + 8], edx
jns 0x4219a0
mov eax, 0xffffffff
jmp 0x4219a7
mov eax, ebx
lea edx, [esp + 0x70]
jmp 0x421902
lea ebx, [esp + 0x70]
mov edx, ebx
jmp 0x421a61
lea ebx, [esp + 0x70]
mov edx, ebx
mov eax, dword [esp]
test eax, eax
je 0x421a61
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x421a61
lea ecx, [eax + 0x14]
mov dword [esp + 8], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x42193a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x421920
mov ebx, edx
jmp 0x421a61
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 8]
je 0x421a5c
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x4219f5
mov ebx, edx
xor edx, edx
mov dword [esp + 0x104], eax
mov edi, dword [esp + 8]
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 + 0x104]
mov dword [esp + 8], edi
movzx edi, word [esp]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x421960
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x70]
mov edi, dword [esp + 8]
jmp 0x4219f9
lea eax, [edi*2 + 2]
push eax
call fcn.0040c730
add esp, 4
mov edx, 2
sub edx, edi
and edx, 2
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add ebx, ecx
lea ecx, [esp + 0x2c]
push 0
push 0
push ebx
mov ebx, eax
push eax
push dword [esp + 0x18]
push dword [esp + 0x14]
call fcn.004400b0
test eax, eax
jns 0x4217fb
jmp 0x421a90
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x421a5c
nop
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 0x421a00
lea edx, [esp + 0x70]
mov word [ebx], 0
cmp byte [esp + 0x6f], 0
mov edi, edx
jns 0x421a7d
push dword [esp + 0x100]
call fcn.0040c740
lea edi, [esp + 0x74]
add esp, 4
cmp edi, ebx
jne 0x421b36
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0x97049921
mov dword [esp + 0x14], 0x9301950b
mov dword [esp + 0x18], 0x8f1c910b
mov dword [esp + 0x1c], 0x8b068d15
mov dword [esp + 0x20], 0x8786891b
lea eax, [esp + 0x26]
mov byte [eax], 0
mov word [eax - 2], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
mov edx, eax
and edx, 8
xor edx, 0x3f087aa8
mov edi, eax
and edi, 0x17
sub edi, edx
mov edx, 0xf1
sub edx, edi
add edi, 0xe
xor edx, edi
and edx, ecx
xor edx, edi
add dl, 2
mov byte [esp + eax + 0x10], dl
inc eax
cmp eax, 0x17
jne 0x421ad0
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x70]
mov ebx, edi
test ax, ax
je 0x421b31
lea ecx, [esp + 0x12]
mov ebx, edi
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421b20
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, 0x70
mov dword [esp], 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 0x421b82
mov ecx, dword [esp]
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 + 0x60]
push eax
push dword [esp + 0x10]
call fcn.00423a30
add esp, 0x10
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x3d252b8e
mov dword [esp + 0x14], 0x8d627460
mov edi, 0x26eaa61
mov edx, 0x6d91559e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi - 0x26eaa51]
mov ebx, edx
and ebx, 0x4d914412
mov ecx, edi
and ecx, 0x2288a4d
or ecx, ebx
xor ecx, eax
mov eax, ecx
and eax, 1
xor ecx, 0x33
lea eax, [ecx + eax*2]
add al, 0x1a
mov byte [esp + edi - 0x26eaa51], al
inc edi
dec edx
cmp edi, 0x26eaa69
jne 0x421bc0
mov ebx, dword [esp]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x421c1d
lea edx, [esp + 0x11]
mov eax, dword [esp + 4]
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421c10
jmp 0x421c21
mov eax, dword [esp + 4]
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x421c3b
inc eax
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421c30
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 0x421c50
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421c70
mov eax, 0xffffffff
jmp 0x421c79
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040c730
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x421cb1
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 0x421ca0
mov dword [esp + 4], eax
inc esi
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0xff0cf92b
mov dword [esp + 0x14], 0xe379fd19
mov dword [esp + 0x18], 0xe772e132
mov dword [esp + 0x1c], 0xeb7ee57c
mov word [esp + 0x20], 0xe9e8
lea ecx, [esp + 0x26]
mov byte [ecx], 0
mov dword [ecx - 4], 0
xor edx, edx
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
or edi, 0xaa
mov ebx, edx
or ebx, 0xaa
add ebx, edi
add ebx, edx
inc bl
xor bl, byte [esp + edx + 0x10]
add bl, 0xae
mov byte [esp + edx + 0x10], bl
lea edi, [edx + 1]
dec ecx
mov edx, edi
cmp edi, 0x17
jne 0x421d00
add eax, 2
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x421d51
lea edx, [esp + 0x72]
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421d40
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421d81
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 0x421d70
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
call fcn.004056e0
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421da0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0040d170
mov dword [esp], eax
push edi
call fcn.00405770
add esp, 4
push ebx
mov ebx, dword [esp + 4]
call fcn.0040c740
add esp, 4
lea edi, [esp + 0x2c]
push dword [esp + 0xc]
call fcn.00404930
add esp, 4
mov ecx, dword [esp + 0x3c]
and cl, 1
or cl, bl
jmp 0x421304
xor ebx, ebx
jmp 0x421df8
xor ecx, ecx
mov ebx, ecx
lea ecx, [esp + 0x2c]
call fcn.0043f8a0
mov dword [esp + 0x140], 0x5bbab7ab
mov byte [esp + 0x144], 0x50
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0x6ddf93de
mov ecx, 0xdbbf27bc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x1a
mov edx, eax
xor edx, 0x8d
add edx, edi
add dl, 0x22
xor dl, byte [esp + eax - 0x6ddf929e]
add dl, 0x3f
mov byte [esp + eax - 0x6ddf929e], dl
inc eax
add ecx, 2
cmp eax, 0x6ddf93ea
jne 0x421e40
movzx eax, byte [esp + 0x140]
test al, al
je 0x421e9b
lea ecx, [esp + 0x141]
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 0x421e90
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 + 0x44]
and cl, 1
test eax, eax
je 0x421df6
cmp eax, dword [esp + 0x48]
je 0x421df6
push eax
mov edi, ecx
call fcn.0040c740
mov ecx, edi
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x421df6