Function at 0x421740
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 0x4217a0
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
movzx eax, byte [esp + 0x140]
test al, al
je 0x42186d
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 0x421860
jmp 0x421870
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.00423c70
add esp, 0x18
test al, al
je 0x4229f0
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 0x4218f0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42192b
lea ecx, [esp + 0x141]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421920
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 0x421af0
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 0x421ca0
lea ebx, [esp + 0x140]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x130]
push ebx
push 0x88
push eax
push edi
call fcn.004418a0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ecx, ecx
or eax, edx
je 0x4229f6
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 0x421d30
movzx eax, byte [esp + 0x140]
test al, al
je 0x421d6b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421d60
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.004418a0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x4229f4
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 0x421dd0
movzx eax, byte [esp + 0x140]
test al, al
je 0x421e2b
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 0x421e20
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.00440e20
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x4229f4
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 0x421e90
movzx eax, byte [esp + 0x140]
test al, al
je 0x421edb
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421ed0
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x4229f4
xor ecx, ecx
lea edi, [esp + 0x2c]
jmp 0x421f1b
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x422aad
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.0040d4d0
add esp, 0xc
xor ebx, ebx
jmp 0x421f62
lea edi, [esp + 0x2c]
mov esi, dword [esp + 0xc]
inc ebx
cmp ebx, 0xb
je 0x4221c0
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.00440cb0
test eax, eax
js 0x421f58
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 0x421fe0
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x4221b0
cmp byte [esp + 0x210], 0
jne 0x42201f
mov edx, dword [esp + 0x184]
or edx, dword [esp + 0x180]
je 0x4221b0
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 0x422050
movzx eax, byte [esp + 0x70]
test al, al
je 0x4220ab
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 0x4220a0
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 0x4220f0
mov eax, dword [0x45316c]
test eax, eax
mov ebx, dword [esp]
je 0x421f50
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 0x422183
inc edx
cmp eax, edx
jne 0x422170
jmp 0x421f50
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x421f50
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x453174]
push eax
call fcn.00442df0
add esp, 0x14
jmp 0x421f50
add esi, eax
test cl, cl
jne 0x4221d0
jmp 0x421f00
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x421f00
call fcn.004056f0
mov dword [esp + 0xc], eax
push eax
call fcn.00405320
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 0x422210
movzx eax, byte [esp + 0x70]
test al, al
je 0x42224b
lea ecx, [esp + 0x71]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422240
mov byte [esi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x4222a0
mov ecx, edi
push 0
push 0
push 0x40
lea edi, [esp + 0x7c]
push edi
push edx
push eax
call fcn.00440cb0
test eax, eax
js 0x4222a9
lea ecx, [esp + 0x2c]
mov edx, edi
push dword [esp + 4]
call fcn.00424840
add esp, 4
mov dword [esp], eax
jmp 0x4222b0
mov dword [esp], 0
jmp 0x4222b4
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 0x4222d0
movzx eax, byte [esp + 0x70]
test al, al
je 0x422330
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 0x422320
jmp 0x422333
mov ebx, dword [esp]
mov byte [esi], 0
push dword [esp + 4]
call fcn.004054f0
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x4229d6
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.00440cb0
test eax, eax
js 0x422690
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.00440cb0
test eax, eax
js 0x422690
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.00440cb0
test eax, eax
js 0x422690
cmp byte [esp + 0x6f], 0
lea ebx, [esp + 0x58]
js 0x4224ae
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 0x422440
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 0x100], ebx
je 0x4224de
lea eax, [esp + 0x10]
mov edx, ebx
mov dword [esp], ebx
jmp 0x422488
movzx edi, word [eax]
test di, di
je 0x4224f1
movzx ebx, word [edx]
test bx, bx
je 0x4224e6
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp bx, di
je 0x4224a6
mov dword [esp], ecx
mov edx, ecx
je 0x422480
lea eax, [esp + 0x10]
jmp 0x422480
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, ecx
or eax, edx
je 0x422690
mov edi, dword [esp + 0x60]
mov ebx, edi
inc ebx
mov dword [esp], ecx
mov dword [esp + 8], edx
jns 0x4225a0
mov eax, 0xffffffff
jmp 0x4225a7
mov eax, ebx
lea edx, [esp + 0x70]
jmp 0x422502
lea ebx, [esp + 0x70]
mov edx, ebx
jmp 0x422661
lea ebx, [esp + 0x70]
mov edx, ebx
mov eax, dword [esp]
test eax, eax
je 0x422661
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x422661
lea ecx, [eax + 0x14]
mov dword [esp + 8], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x42253a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x422520
mov ebx, edx
jmp 0x422661
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 8]
je 0x42265c
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x4225f5
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 0x422560
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x70]
mov edi, dword [esp + 8]
jmp 0x4225f9
lea eax, [edi*2 + 2]
push eax
call fcn.0040d330
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.00440cb0
test eax, eax
jns 0x4223fb
jmp 0x422690
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x42265c
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 0x422600
lea edx, [esp + 0x70]
mov word [ebx], 0
cmp byte [esp + 0x6f], 0
mov edi, edx
jns 0x42267d
push dword [esp + 0x100]
call fcn.0040d340
lea edi, [esp + 0x74]
add esp, 4
cmp edi, ebx
jne 0x422736
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 0x4226d0
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x70]
mov ebx, edi
test ax, ax
je 0x422731
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 0x422720
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 0x422782
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.00424630
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 0x4227c0
mov ebx, dword [esp]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x42281d
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 0x422810
jmp 0x422821
mov eax, dword [esp + 4]
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x42283b
inc eax
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x422830
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 0x422850
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x422870
mov eax, 0xffffffff
jmp 0x422879
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040d330
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x4228b1
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 0x4228a0
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 0x422900
add eax, 2
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x422951
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 0x422940
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x422981
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 0x422970
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
call fcn.004062e0
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4229a0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0040dd70
mov dword [esp], eax
push edi
call fcn.00406370
add esp, 4
push ebx
mov ebx, dword [esp + 4]
call fcn.0040d340
add esp, 4
lea edi, [esp + 0x2c]
push dword [esp + 0xc]
call fcn.00405530
add esp, 4
mov ecx, dword [esp + 0x3c]
and cl, 1
or cl, bl
jmp 0x421f04
xor ebx, ebx
jmp 0x4229f8
xor ecx, ecx
mov ebx, ecx
lea ecx, [esp + 0x2c]
call fcn.004404a0
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 0x422a40
movzx eax, byte [esp + 0x140]
test al, al
je 0x422a9b
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 0x422a90
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 0x4229f6
cmp eax, dword [esp + 0x48]
je 0x4229f6
push eax
mov edi, ecx
call fcn.0040d340
mov ecx, edi
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x4229f6