Function at 0x418c0f
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44a7a5
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x9a80
call fcn.004497e0
mov eax, dword [0x48e00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, edx
mov dword [ebp - 0x968c], eax
mov edi, ecx
movzx esi, byte [edi + 1]
movzx edx, byte [edi + 2]
movzx ecx, byte [edi + 3]
or dword [ebp - 0x9644], 0xffffffff
shl esi, 8
or esi, edx
mov dword [ebp - 0x9690], eax
movzx eax, byte [edi + 4]
add edi, 5
shl esi, 8
or esi, ecx
mov dword [ebp - 0x9640], edi
shl esi, 8
or esi, eax
mov dword [ebp - 0x9650], esi
and dword [ebp - 4], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x4c7ed0]
cmp eax, dword [ecx + 4]
jle 0x418cd7
mov edi, 0x4c7ed0
push edi
call fcn.0042aba3
cmp dword [0x4c7ed0], 0xffffffff
pop ecx
jne 0x418cd7
call fcn.00412815
push edi
mov dword [0x4c7ed4], eax
call fcn.0042ab59
pop ecx
mov ecx, dword [0x4c7ed4]
mov eax, 0x6000
mov edi, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test ecx, ecx
je 0x418d1c
cmp ecx, eax
ja 0x418d1c
cmp ecx, 1
jbe 0x418cff
dec eax
xor edx, edx
div ecx
imul eax, ecx
add eax, ecx
push 4
push 0x20101000
push eax
push 0
call edi
mov edx, eax
mov dword [ebp - 0x9670], edx
test edx, edx
jne 0x418d3a
mov eax, 0x6000
push 4
push 0x101000
push eax
push 0
call edi
mov dword [ebp - 0x9670], eax
test eax, eax
jne 0x418d3a
or eax, 0xffffffff
jmp 0x4197b1
xor edi, edi
mov dword [ebp - 0x966c], edi
mov eax, edi
mov dword [ebp - 0x9688], edi
mov dword [ebp - 0x9660], edi
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmmword [0x485e60]
movups xmmword [ebp + eax*4 - 0x9a90], xmm0
add eax, 4
cmp eax, 0x100
jl 0x418d50
xor eax, eax
inc eax
push 4
mov dword [ebp - 0x9680], eax
mov dword [ebp - 0x9684], eax
mov dword [ebp - 0x9678], eax
mov dword [ebp - 0x967c], eax
pop eax
mov dword [ebp - 0x9664], eax
mov dword [ebp - 0x9674], eax
mov eax, 0x400
push 0x1400
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1538]
push edi
push eax
call fcn.0042c5f0
add esp, 0xc
lea eax, [ebp - 0x9638]
push 0x5000
push edi
push eax
call fcn.0042c5f0
add esp, 0xc
lea edi, [ebp - 0x2e38]
mov edx, 0x400
mov eax, edx
mov ecx, edx
rep stosd dword es:[edi], eax
push 7
lea eax, [ebp - 0x138]
pop ecx
mov dword [eax + 4], edx
mov dword [eax], edx
lea eax, [eax + 0x20]
mov dword [eax - 0x14], edx
mov dword [eax - 0x18], edx
mov dword [eax - 0xc], edx
mov dword [eax - 0x10], edx
mov dword [eax - 4], edx
mov dword [eax - 8], edx
sub ecx, 1
jne 0x418dfe
mov eax, edx
lea edi, [ebp - 0x4638]
mov ecx, 0x600
rep stosd dword es:[edi], eax
mov ecx, 0x240
lea edi, [ebp - 0x1e38]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x9670]
mov ecx, 0x1800
rep stosd dword es:[edi], eax
xor eax, eax
imul edx, eax, 0x14
xor edi, edi
lea eax, [ebp - 0x1538]
push 3
pop ecx
add eax, edx
mov dword [ebp - 0x9648], edx
mov dword [ebp - 0x964c], eax
mov eax, dword [ebp - 0x966c]
and eax, ecx
mov ecx, dword [ebp - 0x9688]
lea ecx, [eax + ecx*4]
imul eax, ecx, 0x14
lea ecx, [ebp - 0x9638]
add ecx, eax
mov dword [ebp - 0x9658], eax
mov dword [ebp - 0x965c], ecx
mov ecx, dword [ebp + edx - 0x1528]
xor edx, edx
add ecx, dword [ebp + eax - 0x9628]
add ecx, dword [ebp - 0x9664]
mov eax, dword [ebp - 0x9644]
div ecx
xor edx, edx
mov ecx, eax
mov eax, esi
div ecx
mov edx, dword [ebp - 0x964c]
xor esi, esi
mov dword [ebp - 0x9668], eax
mov eax, dword [ebp - 0x965c]
sub edx, eax
mov dword [ebp - 0x9644], edx
lea edx, [ebp - 0x9684]
sub edx, eax
mov dword [ebp - 0x9664], ecx
mov ecx, eax
mov dword [ebp - 0x963c], edx
mov eax, dword [ebp - 0x963c]
mov edx, dword [ebp - 0x9644]
mov dword [ebp - 0x9654], esi
mov eax, dword [eax + ecx]
add eax, dword [edx + ecx]
add eax, dword [ecx]
lea ecx, [ecx + 4]
mov edx, dword [ebp - 0x9654]
add edi, eax
inc esi
cmp dword [ebp - 0x9668], edi
jae 0x418ee4
mov eax, dword [ebp - 0x964c]
sub edi, dword [ebp + edx*4 - 0x9684]
mov esi, dword [ebp - 0x9650]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x965c]
mov dword [ebp - 0x963c], ecx
mov eax, dword [eax + edx*4]
sub edi, eax
sub edi, ecx
mov dword [ebp - 0x9668], eax
imul edi, dword [ebp - 0x9664]
sub esi, edi
mov edi, dword [ebp + edx*4 - 0x9684]
add edi, eax
mov dword [ebp - 0x9650], esi
add edi, ecx
imul edi, dword [ebp - 0x9664]
cmp edi, 0x1000000
jae 0x418f90
mov ecx, dword [ebp - 0x9640]
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edi, 8
inc ecx
cmp edi, 0x1000000
jb 0x418f70
mov dword [ebp - 0x9640], ecx
mov dword [ebp - 0x9650], esi
mov ecx, dword [ebp - 0x965c]
mov eax, dword [ebp - 0x9668]
add dword [ebp + edx*4 - 0x9684], 2
add eax, 2
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x964c]
mov eax, dword [ebp - 0x963c]
add eax, 2
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x9658]
mov eax, dword [ebp - 0x9674]
add eax, 2
mov dword [ebp - 0x9664], eax
mov dword [ebp - 0x9674], eax
mov eax, dword [ebp + ecx - 0x9628]
add eax, 2
mov dword [ebp + ecx - 0x9628], eax
mov ecx, dword [ebp - 0x9648]
mov dword [ebp - 0x964c], eax
mov eax, dword [ebp - 0x9648]
mov ecx, dword [ebp + ecx - 0x1528]
add ecx, 2
cmp dword [ebp - 0x9664], 0x3a
mov dword [ebp - 0x9668], ecx
mov dword [ebp + eax - 0x1528], ecx
jbe 0x419086
mov esi, dword [ebp - 0x9684]
mov edx, dword [ebp - 0x9680]
mov ecx, dword [ebp - 0x967c]
mov eax, dword [ebp - 0x9678]
lea esi, [esi + 1]
shr esi, 1
lea edx, [edx + 1]
shr edx, 1
lea ecx, [ecx + 1]
shr ecx, 1
inc eax
shr eax, 1
mov dword [ebp - 0x9678], eax
add eax, ecx
add eax, edx
mov dword [ebp - 0x9684], esi
add eax, esi
mov dword [ebp - 0x9680], edx
mov esi, dword [ebp - 0x9650]
mov edx, dword [ebp - 0x9654]
mov dword [ebp - 0x967c], ecx
mov ecx, dword [ebp - 0x9668]
mov dword [ebp - 0x9664], eax
mov dword [ebp - 0x9674], eax
mov eax, dword [ebp - 0x9648]
cmp ecx, 0x3e
jbe 0x4190d0
shr dword [ebp + eax - 0x1534], 1
lea ecx, [ebp - 0x1538]
shr dword [ecx + eax], 1
mov ecx, dword [ecx + eax]
shr dword [ebp + eax - 0x1530], 1
shr dword [ebp + eax - 0x152c], 1
mov eax, dword [ebp + eax - 0x152c]
add eax, ecx
mov ecx, dword [ebp - 0x9648]
add eax, dword [ebp + ecx - 0x1530]
add eax, dword [ebp + ecx - 0x1534]
mov dword [ebp + ecx - 0x1528], eax
cmp dword [ebp - 0x964c], 0xcc
jbe 0x419125
mov eax, dword [ebp - 0x965c]
shr dword [eax], 1
mov ecx, dword [eax]
mov eax, dword [ebp - 0x9658]
shr dword [ebp + eax - 0x9634], 1
shr dword [ebp + eax - 0x9630], 1
shr dword [ebp + eax - 0x962c], 1
mov eax, dword [ebp + eax - 0x962c]
add eax, ecx
mov ecx, dword [ebp - 0x9658]
add eax, dword [ebp + ecx - 0x9630]
add eax, dword [ebp + ecx - 0x9634]
mov dword [ebp + ecx - 0x9628], eax
cmp edx, 3
jne 0x4193e0
mov eax, dword [ebp - 0x9660]
lea ecx, [ebp - 0x138]
and dword [ebp - 0x9644], 0
lea edx, [ebp - 0x34]
shl eax, 5
add eax, ecx
mov dword [ebp - 0x964c], edx
xor ecx, ecx
mov dword [ebp - 0x9658], eax
mov dword [ebp - 0x9660], ecx
mov ecx, dword [eax]
mov eax, dword [edx]
xor edx, edx
mov dword [ebp - 0x965c], ecx
add ecx, eax
mov dword [ebp - 0x9648], eax
mov eax, esi
shr edi, 0xb
div edi
shr ecx, 1
mov edx, 0x1000000
cmp eax, ecx
jb 0x419218
mov eax, ecx
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, ecx
mov dword [ebp - 0x9650], esi
imul edi, eax
cmp edi, edx
jae 0x4191c4
mov ecx, dword [ebp - 0x9640]
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edi, 8
inc ecx
cmp edi, edx
jb 0x4191a8
mov dword [ebp - 0x9640], ecx
mov dword [ebp - 0x9650], esi
mov ecx, dword [ebp - 0x9648]
mov eax, ecx
mov edx, dword [ebp - 0x964c]
shr eax, 4
sub ecx, eax
mov dword [edx], ecx
add edx, 4
mov ecx, dword [ebp - 0x965c]
mov eax, ecx
shr eax, 6
sub ecx, eax
mov dword [ebp - 0x964c], edx
mov eax, dword [ebp - 0x9658]
mov dword [eax], ecx
add eax, 4
mov ecx, dword [ebp - 0x9660]
inc ecx
mov dword [ebp - 0x9658], eax
mov dword [ebp - 0x9660], ecx
cmp ecx, 6
jne 0x41915d
jmp 0x41927e
imul edi, ecx
cmp edi, edx
jae 0x419241
mov ecx, dword [ebp - 0x9640]
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edi, 8
inc ecx
cmp edi, edx
jb 0x419225
mov dword [ebp - 0x9640], ecx
mov dword [ebp - 0x9650], esi
mov ecx, dword [ebp - 0x964c]
mov edx, 0x800
mov eax, edx
sub eax, dword [ebp - 0x9648]
shr eax, 4
add eax, dword [ebp - 0x9648]
mov dword [ecx], eax
mov eax, edx
sub eax, dword [ebp - 0x965c]
mov ecx, dword [ebp - 0x9658]
shr eax, 6
add eax, dword [ebp - 0x965c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x9660]
mov eax, dword [ebp - 0x9660]
lea edx, [ebp - 0x2e38]
shl ecx, 9
add edx, ecx
xor ecx, ecx
inc ecx
mov dword [ebp - 0x9658], edx
mov dword [ebp - 0x963c], ecx
test eax, eax
js 0x4193bd
inc eax
mov dword [ebp - 0x9648], eax
shr edi, 0xb
xor edx, edx
mov eax, esi
shl ecx, 2
div edi
mov dword [ebp - 0x9668], edi
mov edi, dword [ebp - 0x9658]
mov dword [ebp - 0x964c], ecx
mov edx, dword [ecx + edi]
mov edi, dword [ebp - 0x9668]
mov ecx, dword [ebp - 0x963c]
cmp eax, edx
jae 0x41932b
imul edi, edx
cmp edi, 0x1000000
jae 0x41930f
mov ecx, dword [ebp - 0x9640]
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edi, 8
inc ecx
cmp edi, 0x1000000
jb 0x4192ef
mov dword [ebp - 0x9640], ecx
mov ecx, dword [ebp - 0x963c]
shl dword [ebp - 0x9644], 1
add ecx, ecx
mov dword [ebp - 0x963c], ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 7
add ecx, edx
jmp 0x41938f
mov eax, edx
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, edx
imul edi, eax
cmp edi, 0x1000000
jae 0x41936a
mov ecx, dword [ebp - 0x9640]
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edi, 8
inc ecx
cmp edi, 0x1000000
jb 0x41934a
mov dword [ebp - 0x9640], ecx
mov ecx, dword [ebp - 0x963c]
mov eax, dword [ebp - 0x9644]
add ecx, ecx
add eax, eax
or ecx, 1
or eax, 1
mov dword [ebp - 0x963c], ecx
mov dword [ebp - 0x9644], eax
mov ecx, edx
mov eax, edx
shr eax, 7
sub ecx, eax
sub dword [ebp - 0x9648], 1
mov eax, dword [ebp - 0x964c]
mov edx, dword [ebp - 0x9658]
mov dword [edx + eax], ecx
mov ecx, dword [ebp - 0x963c]
jne 0x4192ad
mov eax, dword [ebp - 0x9660]
mov dword [ebp - 0x9650], esi
cmp eax, 6
mov eax, dword [ebp - 0x9644]
jne 0x4193d1
cmp eax, 0x7f
je 0x41979a
mov ecx, dword [ebp - 0x9660]
mov edx, dword [ecx*4 + 0x469da0]
add edx, eax
lea eax, [edx + 1]
movzx edx, al
mov eax, dword [ebp + edx*4 - 0x9a90]
mov dword [ebp - 0x964c], eax
test edx, edx
je 0x419418
mov ecx, edx
mov eax, dword [ebp + ecx*4 - 0x9a94]
mov dword [ebp + ecx*4 - 0x9a90], eax
sub ecx, 1
jne 0x4193f9
mov eax, dword [ebp - 0x964c]
mov dword [ebp - 0x9a90], eax
lea eax, [edx - 1]
movzx ecx, al
lea edx, [ebp - 0x4638]
push 3
pop eax
cmp ecx, eax
cmova ecx, eax
mov eax, dword [ebp - 0x9688]
shl eax, 2
or eax, ecx
shr edi, 0xb
movzx eax, al
shl ecx, 4
add ecx, dword [ebp - 0x966c]
mov dword [ebp - 0x9688], eax
imul eax, ecx, 0x60
and dword [ebp - 0x9658], 0
add edx, eax
imul eax, dword [ebp - 0x964c], 0x60
mov dword [ebp - 0x9654], edx
add eax, dword [ebp - 0x9670]
mov dword [ebp - 0x9648], eax
mov ecx, dword [eax]
mov eax, dword [edx]
xor edx, edx
mov dword [ebp - 0x963c], ecx
add ecx, eax
mov dword [ebp - 0x965c], eax
mov eax, esi
div edi
shr ecx, 1
cmp eax, ecx
jb 0x41956a
mov eax, dword [ebp - 0x963c]
mov dword [ebp - 0x963c], eax
jmp 0x4194a7
mov eax, dword [ebp - 0x963c]
mov edx, dword [ebp - 0x965c]
lea ecx, [edx + eax]
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 0x4194fd
mov ecx, dword [ebp - 0x9640]
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edi, 8
inc ecx
cmp edi, 0x1000000
jb 0x4194d1
mov eax, dword [ebp - 0x9654]
mov dword [ebp - 0x9640], ecx
mov edx, dword [eax]
mov eax, dword [ebp - 0x9648]
mov ecx, dword [eax]
jmp 0x419503
mov ecx, dword [ebp - 0x963c]
mov eax, edx
shr edi, 0xb
shr eax, 6
sub edx, eax
mov eax, dword [ebp - 0x9654]
mov dword [eax], edx
mov eax, ecx
mov edx, dword [ebp - 0x9654]
shr eax, 3
add edx, 4
sub ecx, eax
mov dword [ebp - 0x9654], edx
mov eax, dword [ebp - 0x9648]
mov dword [eax], ecx
add eax, 4
mov dword [ebp - 0x9648], eax
inc dword [ebp - 0x9658]
mov ecx, dword [eax]
mov eax, dword [edx]
xor edx, edx
mov dword [ebp - 0x963c], ecx
add ecx, eax
mov dword [ebp - 0x965c], eax
mov eax, esi
div edi
shr ecx, 1
cmp eax, ecx
jae 0x4194a1
mov dword [ebp - 0x9650], esi
mov edx, dword [ebp - 0x965c]
mov ecx, dword [ebp - 0x963c]
lea edx, [edx + ecx]
shr edx, 1
imul edx, edi
mov edi, 0x1000000
mov dword [ebp - 0x9644], edx
cmp edx, edi
jae 0x4195cd
mov ecx, dword [ebp - 0x9640]
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edx, 8
inc ecx
cmp edx, edi
jb 0x419593
mov eax, dword [ebp - 0x9654]
mov dword [ebp - 0x9644], edx
mov dword [ebp - 0x9640], ecx
mov dword [ebp - 0x9650], esi
mov edi, dword [eax]
mov eax, dword [ebp - 0x9648]
mov eax, dword [eax]
mov dword [ebp - 0x963c], eax
jmp 0x4195d3
mov edi, dword [ebp - 0x965c]
mov ecx, 0x800
mov eax, ecx
sub eax, edi
shr eax, 6
add eax, edi
mov edi, dword [ebp - 0x9654]
mov dword [edi], eax
mov eax, ecx
sub eax, dword [ebp - 0x963c]
mov edi, dword [ebp - 0x9648]
shr eax, 3
add eax, dword [ebp - 0x963c]
mov dword [edi], eax
mov eax, dword [ebp - 0x966c]
mov edi, dword [ebp - 0x9658]
and eax, 7
add eax, eax
mov dword [ebp - 0x966c], eax
or eax, 1
mov ecx, dword [ebp - 0x966c]
cmp edi, 2
cmovae ecx, eax
imul eax, edi, 0x60
mov dword [ebp - 0x966c], ecx
lea ecx, [ebp - 0x1e38]
add eax, ecx
mov ecx, dword [ebp - 0x9640]
mov dword [ebp - 0x9654], eax
xor eax, eax
mov dword [ebp - 0x963c], eax
test edi, edi
je 0x41975e
mov dword [ebp - 0x9648], edi
shr edx, 0xb
mov eax, esi
mov dword [ebp - 0x9644], edx
xor edx, edx
mov edi, dword [ebp - 0x9644]
div edi
mov edx, dword [ebp - 0x9654]
cmp eax, dword [edx]
mov eax, dword [edx]
jae 0x4196ce
mov edx, edi
mov edi, 0x1000000
imul edx, eax
mov dword [ebp - 0x9644], edx
cmp edx, edi
jae 0x4196ac
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edx, 8
inc ecx
cmp edx, edi
jb 0x419690
mov dword [ebp - 0x9644], edx
mov dword [ebp - 0x9640], ecx
mov ecx, dword [ebp - 0x9654]
mov edi, 0x800
mov eax, dword [ebp - 0x963c]
add eax, eax
mov dword [ebp - 0x963c], eax
sub edi, dword [ecx]
shr edi, 6
add edi, dword [ecx]
jmp 0x419730
imul eax, edi
sub esi, eax
mov eax, 0x800
sub eax, dword [edx]
imul eax, edi
mov edi, 0x1000000
mov edx, eax
mov dword [ebp - 0x9644], eax
cmp edx, edi
jae 0x41970a
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
shl edx, 8
inc ecx
cmp edx, edi
jb 0x4196ee
mov dword [ebp - 0x9644], edx
mov dword [ebp - 0x9640], ecx
mov eax, dword [ebp - 0x963c]
mov edi, dword [ebp - 0x9654]
add eax, eax
or eax, 1
mov dword [ebp - 0x963c], eax
mov eax, dword [edi]
mov edi, dword [edi]
shr eax, 6
sub edi, eax
mov eax, dword [ebp - 0x963c]
mov ecx, dword [ebp - 0x9654]
add dword [ebp - 0x9654], 4
sub dword [ebp - 0x9648], 1
mov dword [ecx], edi
mov ecx, dword [ebp - 0x9640]
jne 0x41965b
mov edi, dword [ebp - 0x9658]
mov dword [ebp - 0x9650], esi
add eax, dword [edi*4 + 0x469dd0]
mov dword [ebp - 0x963c], eax
je 0x41978f
mov edi, dword [ebp - 0x968c]
push eax
push dword [ebp - 0x964c]
push edi
call fcn.0042c5f0
add esp, 0xc
add edi, dword [ebp - 0x963c]
mov dword [ebp - 0x968c], edi
mov eax, dword [ebp - 0x964c]
jmp 0x418e48
mov ecx, dword [ebp - 0x9670]
call fcn.004129a9
mov eax, dword [ebp - 0x968c]
sub eax, dword [ebp - 0x9690]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042a75e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret