Function at 0x465420
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xa2b0
call fcn.00489c00
mov eax, dword [0xec8960]
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.0045c6b0
mov edi, eax
add esp, 8
mov dword [ebp - 0x9a60], edi
test edi, edi
je 0x4655ed
movaps xmm1, xmmword [0xea1850]
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 0x4654d4
cmp edx, 0x100
jg 0x4655bd
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 0x4655a0
mov edi, dword [ebp - 0x9a60]
push 0
push 0x6000
mov dword [ebp - 0x9aa4], 0xffffffff
call fcn.0045c6b0
add esp, 8
mov dword [ebp - 0x9a80], eax
test eax, eax
jne 0x465601
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.004888df
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.0048b190
add esp, 0xc
lea eax, [ebp - 0x9a34]
push 0x5000
push 0
push eax
call fcn.0048b190
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 0x4658a0
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 0x465976
nop
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x465950
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 0x465a47
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 0x465aa7
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 0x465b04
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 0x465ddd
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 0x465c1f
mov eax, ecx
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, ecx
imul edi, eax
cmp edi, 0x1000000
jae 0x465b9e
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x465b84
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 0x465b40
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 0x465cc6
imul ecx, edi
mov edi, ecx
mov dword [ebp - 0x9a44], ecx
cmp edi, 0x1000000
jae 0x465c4c
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x465c32
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 0x465dc0
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 0x465d35
imul edi, ecx
cmp edi, 0x1000000
jae 0x465d0d
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x465cf3
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 0x465d8d
mov eax, ecx
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, ecx
imul edi, eax
cmp edi, 0x1000000
jae 0x465d6a
nop
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x465d50
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 0x465cd0
mov eax, dword [ebp - 0x9a64]
mov dword [ebp - 0x9a44], edi
mov dword [ebp - 0x9a5c], esi
mov ecx, dword [ebp - 0x9a54]
cmp eax, 6
jne 0x465dd4
cmp ecx, 0x7f
je 0x466ac9
mov edx, dword [eax*4 + 0xe7f73c]
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 0x465e4a
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 0x465e30
mov eax, dword [ebp - 0x9a50]
mov dword [ebp - 0x534], edx
mov dword [ebp + edx*4 - 0xa2ac], 0
cmp eax, 1
jl 0x465f24
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 0x465f1e
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 0x465f04
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 0x465ed1
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 0x465fe1
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 0x465fdb
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 0x465fc7
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 0x465f94
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 0x4660aa
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 0x4660a4
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 0x46608a
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 0x466057
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 0x46616d
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 0x466167
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 0x466153
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 0x466120
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 0x466236
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 0x466230
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 0x466216
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 0x4661e3
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 0x4662f3
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 0x4662ed
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 0x4662d9
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 0x4662a6
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 0x4663c3
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 0x4663bd
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 0x4663a3
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 0x466370
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 0x466482
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 0x46647c
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 0x466468
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 0x466435
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 0x466553
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 0x46654d
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 0x466533
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 0x466500
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 0x466612
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 0x46660c
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 0x4665f8
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 0x4665c5
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 0x4666e3
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 0x4666dd
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 0x4666c3
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 0x466690
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 0x4667a2
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 0x46679c
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 0x466788
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 0x466755
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 0x4668f3
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 0x466880
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl edi, 8
or esi, eax
cmp edi, 0x1000000
jb 0x466866
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 0x466842
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 0x46693b
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl ecx, 8
or esi, eax
cmp ecx, 0x1000000
jb 0x466915
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 0x466a8d
mov dword [ebp - 0x9a58], edx
shr ecx, 0xb
xor edx, edx
mov eax, esi
mov edi, dword [edi]
div ecx
cmp eax, edi
jae 0x466a0a
imul ecx, edi
cmp ecx, 0x1000000
jae 0x4669eb
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl ecx, 8
or esi, eax
cmp ecx, 0x1000000
jb 0x4669d1
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 0x466a5d
mov eax, edi
imul eax, ecx
sub esi, eax
mov eax, 0x800
sub eax, edi
imul ecx, eax
cmp ecx, 0x1000000
jae 0x466a3d
movzx eax, byte [ebx]
inc ebx
shl esi, 8
shl ecx, 8
or esi, eax
cmp ecx, 0x1000000
jb 0x466a23
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 0x4669b7
mov edx, dword [ebp - 0x9a38]
mov dword [ebp - 0x9a54], ecx
mov dword [ebp - 0x9a5c], esi
add eax, dword [edx*4 + 0xe7f9f8]
mov dword [ebp - 0x9a44], eax
je 0x466abe
mov edi, dword [ebp - 0x9a84]
push eax
push dword [ebp - 0x9a74]
push edi
call fcn.0048b190
add esp, 0xc
add edi, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a84], edi
mov eax, dword [ebp - 0x9a48]
jmp 0x465800
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.004888df
mov esp, ebp
pop ebp
ret