Function at 0x465870
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xa2b0
call fcn.0048a0e0
mov eax, dword [0xec8980]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov ebx, ecx
mov dword [ebp - 0x9a84], eax
push edi
mov edi, edx
mov dword [ebp - 0x9a9c], eax
push 0
movzx esi, byte [ebx + 1]
movzx edx, byte [ebx + 2]
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
add ebx, 5
shl esi, 8
or esi, edx
mov dword [ebp - 0x9a54], 0xffffffff
shl esi, 8
or esi, ecx
mov dword [ebp - 0x9a40], ebx
shl esi, 8
or esi, eax
mov dword [ebp - 0x9a78], 0
push edi
mov dword [ebp - 0x9a5c], esi
mov dword [ebp - 0x9a7c], 0
mov dword [ebp - 0x9a6c], 0
call fcn.0045caa0
mov edi, eax
add esp, 8
mov dword [ebp - 0x9a60], edi
test edi, edi
je 0x465a3d
movaps xmm1, xmmword [0xea1910]
xor edx, edx
mov dword [ebp - 0x9a50], 0
xorps xmm2, xmm2
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [ebp + edx*4 - 0xa2ac], xmm0
movups xmmword [ebp + edx*4 - 0x534], xmm0
movd xmm0, eax
lea eax, [edx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [ebp + edx*4 - 0xa29c], xmm0
movups xmmword [ebp + edx*4 - 0x524], xmm0
movd xmm0, eax
lea eax, [edx + 0xc]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [ebp + edx*4 - 0xa28c], xmm0
movups xmmword [ebp + edx*4 - 0x514], xmm0
movups xmmword [ebp + edx*4 - 0x9ea4], xmm2
movd xmm0, eax
movups xmmword [ebp + edx*4 - 0x9e94], xmm2
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [ebp + edx*4 - 0x9e84], xmm2
movups xmmword [ebp + edx*4 - 0xa27c], xmm0
movups xmmword [ebp + edx*4 - 0x504], xmm0
movups xmmword [ebp + edx*4 - 0x9e74], xmm2
add edx, 0x10
cmp edx, 0xff
jle 0x465924
cmp edx, 0x100
jg 0x465a0d
mov ecx, 0x101
lea edi, [ebp - 0x9ea4]
sub ecx, edx
lea edi, [edi + edx*4]
xor eax, eax
rep stosd dword es:[edi], eax
nop dword [eax]
mov dword [ebp + edx*4 - 0xa2ac], edx
mov dword [ebp + edx*4 - 0x534], edx
inc edx
cmp edx, 0x100
jle 0x4659f0
mov edi, dword [ebp - 0x9a60]
push 0
push 0x6000
mov dword [ebp - 0x9aa4], 0xffffffff
call fcn.0045caa0
add esp, 8
mov dword [ebp - 0x9a80], eax
test eax, eax
jne 0x465a51
push 0x8000
push eax
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00488f09
mov esp, ebp
pop ebp
ret
mov eax, 4
mov dword [ebp - 0x9a94], 1
push 0x1400
mov dword [ebp - 0x9a68], eax
mov dword [ebp - 0x9a88], eax
lea eax, [ebp - 0x1934]
push 0
push eax
mov dword [ebp - 0x9a98], 1
mov dword [ebp - 0x9a8c], 1
mov dword [ebp - 0x9a90], 1
mov dword [ebp - 0x24], 0x400
mov dword [ebp - 0x28], 0x400
mov dword [ebp - 0x1c], 0x400
mov dword [ebp - 0x20], 0x400
mov dword [ebp - 0x14], 0x400
mov dword [ebp - 0x18], 0x400
mov dword [ebp - 0xc], 0x400
mov dword [ebp - 0x10], 0x400
call fcn.0048b660
add esp, 0xc
lea eax, [ebp - 0x9a34]
push 0x5000
push 0
push eax
call fcn.0048b660
mov ecx, 0x400
lea edi, [ebp - 0x3234]
mov eax, ecx
add esp, 0xc
rep stosd dword es:[edi], eax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x6c], eax
mov ecx, 0x600
mov dword [ebp - 0x60], eax
lea edi, [ebp - 0x4a34]
mov dword [ebp - 0x64], eax
rep stosd dword es:[edi], eax
mov ecx, 0x240
mov dword [ebp - 0x58], eax
lea edi, [ebp - 0x2234]
mov dword [ebp - 0x5c], eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x9a80]
mov ecx, 0x1800
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], eax
rep stosd dword es:[edi], eax
xor eax, eax
nop
mov edx, dword [ebp - 0x9a7c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x9a78]
lea ebx, [ebp - 0x9a34]
and eax, 3
shl ecx, 2
mov dword [ebp - 0x9a48], ecx
xor edi, edi
lea eax, [eax + edx*4]
lea eax, [eax + eax*4]
shl eax, 2
lea edx, [ebp - 0x1924]
add ecx, edx
mov dword [ebp - 0x9a64], eax
add ebx, eax
mov dword [ebp - 0x9a4c], ecx
lea edx, [ebp - 0x9a24]
add eax, edx
xor edx, edx
mov ecx, dword [ecx]
add ecx, dword [ebp - 0x9a68]
mov dword [ebp - 0x9a70], eax
add ecx, dword [eax]
mov eax, dword [ebp - 0x9a54]
div ecx
xor edx, edx
mov ecx, eax
mov eax, esi
div ecx
lea esi, [ebp - 0x9a98]
mov dword [ebp - 0x9a3c], ecx
mov dword [ebp - 0x9a68], eax
xor edx, edx
lea eax, [ebp - 0x1934]
mov ecx, ebx
add eax, dword [ebp - 0x9a48]
sub eax, ebx
sub esi, ebx
mov dword [ebp - 0x9a38], eax
mov ebx, eax
nop word [eax + eax]
mov eax, dword [esi + ecx]
lea ecx, [ecx + 4]
add eax, dword [ebx + ecx - 4]
add eax, dword [ecx - 4]
mov dword [ebp - 0x9a58], edx
add edi, eax
inc edx
cmp dword [ebp - 0x9a68], edi
jae 0x465cf0
mov edx, dword [ebp - 0x9a58]
lea eax, [ebp - 0x1934]
add eax, dword [ebp - 0x9a48]
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov esi, dword [ebp - 0x9a5c]
mov dword [ebp - 0x9a54], eax
lea eax, [ebp - 0x9a34]
add eax, dword [ebp - 0x9a64]
mov dword [ebp - 0x9a38], ecx
lea eax, [eax + edx*4]
mov ebx, dword [ebp - 0x9a40]
lea ecx, [ebp - 0x9a98]
sub edi, dword [ecx + edx*4]
lea ecx, [ecx + edx*4]
sub edi, dword [eax]
lea ecx, [ebp - 0x9a98]
sub edi, dword [ebp - 0x9a38]
lea ecx, [ecx + edx*4]
imul edi, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a68], eax
sub esi, edi
mov edi, dword [ecx]
add edi, dword [eax]
add edi, dword [ebp - 0x9a38]
imul edi, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a5c], esi
mov dword [ebp - 0x9a44], edi
cmp edi, 0x1000000
jae 0x465dc6
nop
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x465da0
mov dword [ebp - 0x9a44], edi
mov dword [ebp - 0x9a40], ebx
mov dword [ebp - 0x9a5c], esi
mov eax, dword [ebp - 0x9a38]
lea ecx, [ebp - 0x9a98]
add dword [ecx + edx*4], 2
lea ecx, [ecx + edx*4]
mov ecx, dword [ebp - 0x9a68]
add eax, 2
add dword [ecx], 2
mov ecx, dword [ebp - 0x9a54]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x9a70]
mov eax, dword [ebp - 0x9a88]
add eax, 2
mov dword [ebp - 0x9a68], eax
mov dword [ebp - 0x9a88], eax
mov eax, dword [ecx]
add eax, 2
mov dword [ecx], eax
mov ecx, dword [ebp - 0x9a4c]
mov dword [ebp - 0x9a70], eax
mov eax, dword [ecx]
add eax, 2
cmp dword [ebp - 0x9a68], 0x3a
mov dword [ebp - 0x9a4c], eax
mov dword [ecx], eax
jbe 0x465e97
mov ecx, dword [ebp - 0x9a90]
mov edx, dword [ebp - 0x9a94]
mov eax, dword [ebp - 0x9a8c]
mov edi, dword [ebp - 0x9a98]
inc eax
shr eax, 1
lea ecx, [ecx + 1]
shr ecx, 1
lea edx, [edx + 1]
mov dword [ebp - 0x9a8c], eax
add eax, ecx
shr edx, 1
lea edi, [edi + 1]
shr edi, 1
add eax, edx
add eax, edi
mov dword [ebp - 0x9a98], edi
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a94], edx
mov edx, dword [ebp - 0x9a58]
mov dword [ebp - 0x9a68], eax
mov dword [ebp - 0x9a88], eax
mov eax, dword [ebp - 0x9a4c]
mov dword [ebp - 0x9a90], ecx
cmp eax, 0x3e
jbe 0x465ef7
mov ecx, dword [ebp - 0x9a48]
lea eax, [ebp - 0x1934]
shr dword [eax + ecx], 1
mov eax, ecx
shr dword [ebp + eax - 0x1930], 1
mov ecx, dword [ebp + eax - 0x1930]
shr dword [ebp + eax - 0x192c], 1
mov eax, dword [ebp + eax - 0x192c]
mov dword [ebp - 0x9a4c], ecx
mov ecx, dword [ebp - 0x9a48]
add eax, dword [ebp - 0x9a4c]
add eax, dword [ebp + ecx - 0x1934]
shr dword [ebp + ecx - 0x1928], 1
add eax, dword [ebp + ecx - 0x1928]
mov dword [ebp + ecx - 0x1924], eax
cmp dword [ebp - 0x9a70], 0xcc
jbe 0x465f54
mov ecx, dword [ebp - 0x9a64]
lea eax, [ebp - 0x9a34]
shr dword [eax + ecx], 1
mov ecx, dword [eax + ecx]
mov eax, dword [ebp - 0x9a64]
shr dword [ebp + eax - 0x9a30], 1
shr dword [ebp + eax - 0x9a2c], 1
shr dword [ebp + eax - 0x9a28], 1
mov eax, dword [ebp + eax - 0x9a28]
add eax, ecx
mov ecx, dword [ebp - 0x9a64]
add eax, dword [ebp + ecx - 0x9a2c]
add eax, dword [ebp + ecx - 0x9a30]
mov dword [ebp + ecx - 0x9a24], eax
cmp edx, 3
jne 0x46622d
mov eax, dword [ebp - 0x9a6c]
lea ecx, [ebp - 0x12c]
shl eax, 5
lea edx, [ebp - 0x28]
add ecx, eax
mov dword [ebp - 0x9a38], edx
xor eax, eax
mov dword [ebp - 0x9a48], ecx
mov dword [ebp - 0x9a54], 0
mov dword [ebp - 0x9a64], eax
nop
mov ecx, dword [ecx]
mov dword [ebp - 0x9a6c], eax
mov eax, dword [edx]
xor edx, edx
mov dword [ebp - 0x9a58], ecx
add ecx, eax
mov dword [ebp - 0x9a3c], eax
mov eax, esi
shr edi, 0xb
div edi
shr ecx, 1
cmp eax, ecx
jb 0x46606f
mov eax, ecx
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, ecx
imul edi, eax
cmp edi, 0x1000000
jae 0x465fee
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x465fd4
mov dword [ebp - 0x9a40], ebx
mov ecx, dword [ebp - 0x9a3c]
mov eax, ecx
mov edx, dword [ebp - 0x9a38]
shr eax, 4
sub ecx, eax
mov dword [edx], ecx
add edx, 4
mov ecx, dword [ebp - 0x9a58]
mov eax, ecx
shr eax, 6
sub ecx, eax
mov dword [ebp - 0x9a38], edx
mov eax, dword [ebp - 0x9a48]
mov dword [eax], ecx
mov ecx, eax
mov eax, dword [ebp - 0x9a64]
add ecx, 4
inc eax
mov dword [ebp - 0x9a48], ecx
mov dword [ebp - 0x9a64], eax
mov dword [ebp - 0x9a6c], eax
cmp eax, 6
jne 0x465f90
shl eax, 9
lea ecx, [ebp - 0x3234]
add ecx, eax
mov edx, 1
mov eax, dword [ebp - 0x9a64]
mov dword [ebp - 0x9a58], ecx
mov dword [ebp - 0x9a48], edx
jmp 0x466116
imul ecx, edi
mov edi, ecx
mov dword [ebp - 0x9a44], ecx
cmp edi, 0x1000000
jae 0x46609c
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x466082
mov dword [ebp - 0x9a44], edi
mov ecx, dword [ebp - 0x9a38]
mov eax, 0x800
sub eax, dword [ebp - 0x9a3c]
mov edx, 1
shr eax, 4
add eax, dword [ebp - 0x9a3c]
mov dword [ecx], eax
mov eax, 0x800
sub eax, dword [ebp - 0x9a58]
mov ecx, dword [ebp - 0x9a48]
shr eax, 6
add eax, dword [ebp - 0x9a58]
mov dword [ebp - 0x9a40], ebx
mov dword [ecx], eax
lea ecx, [ebp - 0x3234]
mov eax, dword [ebp - 0x9a6c]
shl eax, 9
add ecx, eax
mov dword [ebp - 0x9a5c], esi
mov eax, dword [ebp - 0x9a6c]
mov dword [ebp - 0x9a58], ecx
mov dword [ebp - 0x9a48], edx
mov dword [ebp - 0x9a64], eax
test eax, eax
jl 0x466210
inc eax
mov dword [ebp - 0x9a38], eax
nop dword [eax]
lea eax, [ecx + edx*4]
shr edi, 0xb
mov ecx, dword [eax]
xor edx, edx
mov dword [ebp - 0x9a3c], eax
mov eax, esi
div edi
cmp eax, ecx
jae 0x466185
imul edi, ecx
cmp edi, 0x1000000
jae 0x46615d
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x466143
mov dword [ebp - 0x9a40], ebx
mov ebx, dword [ebp - 0x9a3c]
mov ecx, 0x800
mov edx, dword [ebp - 0x9a48]
shl dword [ebp - 0x9a54], 1
add edx, edx
sub ecx, dword [ebx]
shr ecx, 7
add ecx, dword [ebx]
mov ebx, dword [ebp - 0x9a40]
jmp 0x4661dd
mov eax, ecx
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, ecx
imul edi, eax
cmp edi, 0x1000000
jae 0x4661ba
nop
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x4661a0
mov dword [ebp - 0x9a40], ebx
mov eax, dword [ebp - 0x9a54]
mov edx, dword [ebp - 0x9a48]
add eax, eax
or eax, 1
add edx, edx
mov dword [ebp - 0x9a54], eax
or edx, 1
mov eax, ecx
shr eax, 7
sub ecx, eax
sub dword [ebp - 0x9a38], 1
mov eax, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a48], edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0x9a58]
jne 0x466120
mov eax, dword [ebp - 0x9a64]
mov dword [ebp - 0x9a44], edi
mov dword [ebp - 0x9a5c], esi
mov ecx, dword [ebp - 0x9a54]
cmp eax, 6
jne 0x466224
cmp ecx, 0x7f
je 0x466f19
mov edx, dword [eax*4 + 0xe7fa08]
add edx, ecx
mov ecx, dword [ebp - 0x9a50]
lea eax, [edx + 1]
mov ebx, dword [ebp - 0x9a60]
movzx eax, al
mov dword [ebp - 0x9a70], eax
mov edx, dword [ebp + eax*4 - 0x534]
mov al, dl
mov byte [ecx + ebx], al
mov ebx, dword [ebp - 0x9a40]
mov dword [ebp - 0x9a48], edx
add dword [ebp + edx*4 - 0x9ea4], 0x20000
mov ecx, dword [ebp + edx*4 - 0xa2ac]
mov dword [ebp - 0x9a74], eax
test ecx, ecx
jle 0x46629a
nop dword [eax]
mov eax, dword [ebp + ecx*4 - 0x538]
mov dword [ebp + ecx*4 - 0x534], eax
mov dword [ebp + eax*4 - 0xa2ac], ecx
sub ecx, 1
jne 0x466280
mov eax, dword [ebp - 0x9a50]
mov dword [ebp - 0x534], edx
mov dword [ebp + edx*4 - 0xa2ac], 0
cmp eax, 1
jl 0x466374
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 1]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffe4000
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x46636e
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466354
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466321
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov edx, dword [ebp - 0x9a48]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
cmp eax, 2
jl 0x466431
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 2]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffe398
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x46642b
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466417
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x4663e4
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
mov edx, dword [ebp - 0x9a48]
cmp eax, 4
jl 0x4664fa
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 4]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffef70
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x4664f4
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x4664da
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x4664a7
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov edx, dword [ebp - 0x9a48]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
cmp eax, 8
jl 0x4665bd
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 8]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffff6c4
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x4665b7
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x4665a3
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
nop word [eax + eax]
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466570
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
mov edx, dword [ebp - 0x9a48]
cmp eax, 0x10
jl 0x466686
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x10]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffb11
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x466680
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466666
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466633
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov edx, dword [ebp - 0x9a48]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
cmp eax, 0x20
jl 0x466743
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x20]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffd77
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x46673d
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466729
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x4666f6
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
mov edx, dword [ebp - 0x9a48]
cmp eax, 0x40
jl 0x466813
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x40]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffec0
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x46680d
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x4667f3
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
nop dword [eax]
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x4667c0
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov edx, dword [ebp - 0x9a48]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
cmp eax, 0x80
jl 0x4668d2
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x80]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffff67
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x4668cc
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x4668b8
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466885
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
mov edx, dword [ebp - 0x9a48]
cmp eax, 0x100
jl 0x4669a3
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x100]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffffba
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x46699d
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466983
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
nop word [eax + eax]
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466950
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov edx, dword [ebp - 0x9a48]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
cmp eax, 0x200
jl 0x466a62
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x200]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffffe1
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x466a5c
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466a48
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466a15
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
mov edx, dword [ebp - 0x9a48]
cmp eax, 0x400
jl 0x466b33
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x400]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffff2
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x466b2d
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466b13
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
nop word [eax + eax]
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466ae0
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov edx, dword [ebp - 0x9a48]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
cmp eax, 0x800
jl 0x466bf2
mov ecx, dword [ebp - 0x9a60]
movzx ecx, byte [eax + ecx - 0x800]
mov dword [ebp - 0x9a4c], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffff8
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a3c], eax
cmp ecx, edx
je 0x466bec
mov eax, dword [ebp + ecx*4 - 0xa2ac]
lea ecx, [ebp - 0x530]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov ebx, dword [ebp - 0x9a3c]
mov dword [ebp - 0x9a38], eax
cmp dword [ebp + edx*4 - 0x9ea4], ebx
mov ebx, dword [ebp - 0x9a40]
jle 0x466bd8
mov edi, dword [ebp - 0x9a3c]
mov ebx, eax
mov eax, ebx
mov dword [ecx - 4], edx
lea ecx, [ecx + 4]
mov dword [ebp + edx*4 - 0xa2ac], eax
mov edx, dword [ecx]
inc ebx
cmp dword [ebp + edx*4 - 0x9ea4], edi
jg 0x466ba5
mov edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a38], ebx
mov ebx, dword [ebp - 0x9a40]
mov eax, dword [ebp - 0x9a38]
mov ecx, dword [ebp - 0x9a4c]
mov dword [ebp + eax*4 - 0x534], ecx
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov eax, dword [ebp - 0x9a50]
inc eax
mov dword [ebp - 0x9a38], 0
mov dword [ebp - 0x9a50], eax
mov eax, dword [ebp - 0x9a70]
dec eax
movzx ecx, al
mov eax, 3
cmp ecx, 3
cmova ecx, eax
mov eax, dword [ebp - 0x9a7c]
shl eax, 2
xor edx, edx
or eax, ecx
shr edi, 0xb
shl ecx, 4
add ecx, dword [ebp - 0x9a78]
movzx eax, al
mov dword [ebp - 0x9a7c], eax
lea eax, [ecx + ecx*2]
shl eax, 5
lea ecx, [ebp - 0x4a34]
add eax, ecx
mov ecx, dword [ebp - 0x9a48]
mov dword [ebp - 0x9a58], eax
mov eax, dword [eax]
lea ecx, [ecx + ecx*2]
shl ecx, 5
add ecx, dword [ebp - 0x9a80]
mov dword [ebp - 0x9a3c], ecx
mov dword [ebp - 0x9a64], eax
mov ecx, dword [ecx]
mov dword [ebp - 0x9a44], ecx
add ecx, eax
mov eax, esi
shr ecx, 1
div edi
cmp eax, ecx
jb 0x466d43
mov eax, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a44], eax
mov edx, dword [ebp - 0x9a64]
lea ecx, [eax + edx]
shr ecx, 1
mov eax, ecx
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, ecx
imul edi, eax
cmp edi, 0x1000000
jae 0x466cd0
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x466cb6
mov dword [ebp - 0x9a40], ebx
mov ecx, dword [ebp - 0x9a44]
mov eax, edx
shr eax, 6
sub edx, eax
shr edi, 0xb
mov eax, dword [ebp - 0x9a58]
inc dword [ebp - 0x9a38]
mov dword [eax], edx
mov eax, ecx
mov edx, dword [ebp - 0x9a3c]
shr eax, 3
sub ecx, eax
mov eax, dword [ebp - 0x9a58]
add eax, 4
mov dword [edx], ecx
add edx, 4
mov dword [ebp - 0x9a58], eax
mov dword [ebp - 0x9a3c], edx
mov eax, dword [eax]
mov ecx, dword [edx]
xor edx, edx
mov dword [ebp - 0x9a44], ecx
add ecx, eax
mov dword [ebp - 0x9a64], eax
mov eax, esi
div edi
shr ecx, 1
cmp eax, ecx
mov eax, dword [ebp - 0x9a44]
jae 0x466c92
mov dword [ebp - 0x9a5c], esi
mov edx, dword [ebp - 0x9a64]
mov ecx, dword [ebp - 0x9a44]
lea ecx, [ecx + edx]
shr ecx, 1
imul ecx, edi
mov dword [ebp - 0x9a54], ecx
cmp ecx, 0x1000000
jae 0x466d8b
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl ecx, 8
or esi, eax
cmp ecx, 0x1000000
jb 0x466d65
mov dword [ebp - 0x9a54], ecx
mov dword [ebp - 0x9a40], ebx
mov dword [ebp - 0x9a5c], esi
mov edi, dword [ebp - 0x9a78]
mov eax, 0x800
sub eax, edx
and edi, 7
shr eax, 6
add edi, edi
add eax, edx
mov edx, dword [ebp - 0x9a58]
mov dword [edx], eax
mov eax, 0x800
sub eax, dword [ebp - 0x9a44]
mov edx, dword [ebp - 0x9a3c]
shr eax, 3
add eax, dword [ebp - 0x9a44]
mov dword [edx], eax
mov eax, edi
mov edx, dword [ebp - 0x9a38]
or eax, 1
cmp edx, 2
cmovae edi, eax
mov dword [ebp - 0x9a78], edi
lea eax, [edx + edx*2]
shl eax, 5
lea edi, [ebp - 0x2234]
add edi, eax
xor eax, eax
mov dword [ebp - 0x9a3c], edi
mov dword [ebp - 0x9a44], eax
test edx, edx
je 0x466edd
mov dword [ebp - 0x9a58], edx
shr ecx, 0xb
xor edx, edx
mov eax, esi
mov edi, dword [edi]
div ecx
cmp eax, edi
jae 0x466e5a
imul ecx, edi
cmp ecx, 0x1000000
jae 0x466e3b
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl ecx, 8
or esi, eax
cmp ecx, 0x1000000
jb 0x466e21
mov dword [ebp - 0x9a40], ebx
mov eax, dword [ebp - 0x9a44]
mov edx, 0x800
sub edx, edi
add eax, eax
shr edx, 6
mov dword [ebp - 0x9a44], eax
add edx, edi
jmp 0x466ead
mov eax, edi
imul eax, ecx
sub esi, eax
mov eax, 0x800
sub eax, edi
imul ecx, eax
cmp ecx, 0x1000000
jae 0x466e8d
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl ecx, 8
or esi, eax
cmp ecx, 0x1000000
jb 0x466e73
mov dword [ebp - 0x9a40], ebx
mov eax, dword [ebp - 0x9a44]
mov edx, edi
add eax, eax
or eax, 1
mov dword [ebp - 0x9a44], eax
mov eax, edi
shr eax, 6
sub edx, eax
mov eax, dword [ebp - 0x9a44]
mov edi, dword [ebp - 0x9a3c]
mov dword [edi], edx
add edi, 4
sub dword [ebp - 0x9a58], 1
mov dword [ebp - 0x9a3c], edi
jne 0x466e07
mov edx, dword [ebp - 0x9a38]
mov dword [ebp - 0x9a54], ecx
mov dword [ebp - 0x9a5c], esi
add eax, dword [edx*4 + 0xe7fa28]
mov dword [ebp - 0x9a44], eax
je 0x466f0e
mov edi, dword [ebp - 0x9a84]
push eax
push dword [ebp - 0x9a74]
push edi
call fcn.0048b660
add esp, 0xc
add edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a84], edi
mov eax, dword [ebp - 0x9a48]
jmp 0x465c50
mov esi, dword [sym.imp.KERNEL32.dll_VirtualFree]
push 0x8000
push 0
push dword [ebp - 0x9a60]
call esi
push 0x8000
push 0
push dword [ebp - 0x9a80]
call esi
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x9a84]
xor ecx, ebp
sub eax, dword [ebp - 0x9a9c]
pop edi
pop esi
pop ebx
call fcn.00488f09
mov esp, ebp
pop ebp
ret