Function at 0x4197d4
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44a7cf
mov eax, dword fs:[0]
push eax
mov eax, 0xa2a0
call fcn.004497e0
mov eax, dword [0x48e00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
movzx ebx, byte [edi + 1]
movzx edx, byte [edi + 2]
mov eax, dword [ebp + 8]
movzx ecx, byte [edi + 3]
shl ebx, 8
or ebx, edx
mov dword [ebp - 0x9a7c], eax
mov dword [ebp - 0x9a98], eax
movzx eax, byte [edi + 4]
add edi, 5
shl ebx, 8
or ebx, ecx
mov dword [ebp - 0x9a50], edi
xor edi, edi
shl ebx, 8
or ebx, eax
mov dword [ebp - 0x9a74], edi
push edi
push esi
mov dword [ebp - 0x9a58], ebx
mov dword [ebp - 0x9a94], edi
mov dword [ebp - 0x9a70], edi
call fcn.004128b1
mov dword [ebp - 0x9a5c], eax
pop ecx
pop ecx
test eax, eax
jne 0x419876
or eax, 0xffffffff
jmp 0x41aaee
mov dword [ebp - 0x9a60], edi
mov edx, edi
mov ecx, 0x101
lea edi, [ebp - 0x9ea4]
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [ebp + edx*4 - 0xa2ac], edx
mov dword [ebp + edx*4 - 0x43c], edx
inc edx
cmp edx, 0x100
jle 0x41988d
or esi, 0xffffffff
mov dword [ebp - 0x9aa4], 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 0x4198eb
mov edi, 0x4c7ed0
push edi
call fcn.0042aba3
pop ecx
cmp dword [0x4c7ed0], esi
jne 0x4198eb
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 0x41992e
cmp ecx, eax
ja 0x41992e
cmp ecx, 1
jbe 0x419913
dec eax
xor edx, edx
div ecx
imul eax, ecx
add eax, ecx
push 4
push 0x20101000
push eax
push 0
call edi
mov dword [ebp - 0x9a78], eax
test eax, eax
jne 0x419956
mov eax, 0x6000
push 4
push 0x101000
push eax
push 0
call edi
mov dword [ebp - 0x9a78], eax
test eax, eax
jne 0x419956
mov ecx, dword [ebp - 0x9a5c]
call fcn.004129a9
mov eax, esi
jmp 0x41aaee
xor eax, eax
inc eax
push 4
mov dword [ebp - 0x9a8c], eax
mov dword [ebp - 0x9a90], eax
mov dword [ebp - 0x9a84], eax
mov dword [ebp - 0x9a88], eax
pop eax
mov dword [ebp - 0x9a6c], eax
mov dword [ebp - 0x9a80], 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 - 0x193c]
push 0
push eax
call fcn.0042c5f0
add esp, 0xc
lea eax, [ebp - 0x9a3c]
push 0x5000
push 0
push eax
call fcn.0042c5f0
add esp, 0xc
lea edi, [ebp - 0x323c]
mov edx, 0x400
mov eax, edx
mov ecx, edx
rep stosd dword es:[edi], eax
push 7
lea eax, [ebp - 0x53c]
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 0x4199e3
mov eax, edx
lea edi, [ebp - 0x4a3c]
mov ecx, 0x600
rep stosd dword es:[edi], eax
mov ecx, 0x240
lea edi, [ebp - 0x223c]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x9a78]
mov ecx, 0x1800
rep stosd dword es:[edi], eax
xor eax, eax
imul ecx, eax, 0x14
xor edi, edi
lea eax, [ebp - 0x193c]
push 3
pop edx
add eax, ecx
mov dword [ebp - 0x9a40], ecx
mov dword [ebp - 0x9a44], eax
mov eax, dword [ebp - 0x9a74]
mov ecx, dword [ebp + ecx - 0x192c]
and eax, edx
mov edx, dword [ebp - 0x9a94]
add ecx, dword [ebp - 0x9a6c]
lea eax, [eax + edx*4]
imul eax, eax, 0x14
lea edx, [ebp - 0x9a3c]
add edx, eax
mov dword [ebp - 0x9a4c], eax
mov dword [ebp - 0x9a54], edx
xor edx, edx
add ecx, dword [ebp + eax - 0x9a2c]
mov eax, esi
div ecx
xor edx, edx
xor esi, esi
mov ecx, eax
mov eax, ebx
div ecx
mov edx, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a68], eax
mov eax, dword [ebp - 0x9a54]
sub edx, eax
mov dword [ebp - 0x9a64], edx
lea edx, [ebp - 0x9a90]
mov ebx, dword [ebp - 0x9a64]
sub edx, eax
mov dword [ebp - 0x9a6c], ecx
mov ecx, eax
mov dword [ebp - 0x9a48], edx
mov eax, dword [ebp - 0x9a48]
mov edx, esi
mov dword [ebp - 0x9a64], edx
mov eax, dword [eax + ecx]
add eax, dword [ebx + ecx]
add eax, dword [ecx]
lea ecx, [ecx + 4]
add edi, eax
inc esi
cmp dword [ebp - 0x9a68], edi
jae 0x419acb
sub edi, dword [ebp + edx*4 - 0x9a90]
mov esi, dword [ebp - 0x9a54]
mov eax, dword [ebp - 0x9a44]
mov ebx, dword [ebp - 0x9a58]
mov ecx, dword [esi + edx*4]
sub edi, ecx
mov eax, dword [eax + edx*4]
sub edi, eax
imul edi, dword [ebp - 0x9a6c]
mov dword [ebp - 0x9a68], eax
sub ebx, edi
mov edi, dword [ebp + edx*4 - 0x9a90]
add edi, ecx
mov dword [ebp - 0x9a58], ebx
add edi, eax
imul edi, dword [ebp - 0x9a6c]
mov dword [ebp - 0x9a48], edi
cmp edi, 0x1000000
jae 0x419b76
mov ecx, dword [ebp - 0x9a50]
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl edi, 8
inc ecx
cmp edi, 0x1000000
jb 0x419b4d
mov dword [ebp - 0x9a50], ecx
mov ecx, dword [esi + edx*4]
mov dword [ebp - 0x9a48], edi
mov dword [ebp - 0x9a58], ebx
add dword [ebp + edx*4 - 0x9a90], 2
lea eax, [ecx + 2]
mov ecx, dword [ebp - 0x9a44]
mov dword [esi + edx*4], eax
mov eax, dword [ebp - 0x9a68]
mov esi, dword [ebp - 0x9a4c]
add eax, 2
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x9a80]
mov ecx, dword [ebp - 0x9a40]
add eax, 2
mov dword [ebp - 0x9a6c], eax
mov dword [ebp - 0x9a80], eax
mov eax, dword [ebp + esi - 0x9a2c]
mov ecx, dword [ebp + ecx - 0x192c]
add eax, 2
mov dword [ebp - 0x9a44], eax
add ecx, 2
cmp dword [ebp - 0x9a6c], 0x3a
mov dword [ebp + esi - 0x9a2c], eax
mov eax, dword [ebp - 0x9a40]
mov dword [ebp - 0x9a68], ecx
mov dword [ebp + eax - 0x192c], ecx
jbe 0x419c60
mov esi, dword [ebp - 0x9a90]
mov edx, dword [ebp - 0x9a8c]
mov ecx, dword [ebp - 0x9a88]
mov eax, dword [ebp - 0x9a84]
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 - 0x9a84], eax
add eax, ecx
add eax, edx
mov dword [ebp - 0x9a90], esi
add eax, esi
mov dword [ebp - 0x9a8c], edx
mov edx, dword [ebp - 0x9a64]
mov esi, dword [ebp - 0x9a4c]
mov dword [ebp - 0x9a88], ecx
mov ecx, dword [ebp - 0x9a68]
mov dword [ebp - 0x9a6c], eax
mov dword [ebp - 0x9a80], eax
mov eax, dword [ebp - 0x9a40]
cmp ecx, 0x3e
jbe 0x419cae
shr dword [ebp + eax - 0x1934], 1
lea ecx, [ebp - 0x193c]
shr dword [ecx + eax], 1
mov ecx, dword [ebp + eax - 0x1934]
shr dword [ebp + eax - 0x1938], 1
shr dword [ebp + eax - 0x1930], 1
mov eax, dword [ebp + eax - 0x1930]
add eax, ecx
mov ecx, dword [ebp - 0x9a40]
add eax, dword [ebp + ecx - 0x1938]
add eax, dword [ebp + ecx - 0x193c]
mov dword [ebp + ecx - 0x192c], eax
cmp dword [ebp - 0x9a44], 0xcc
jbe 0x419cfb
shr dword [ebp + esi - 0x9a30], 1
lea eax, [ebp - 0x9a3c]
shr dword [eax + esi], 1
shr dword [ebp + esi - 0x9a34], 1
mov eax, dword [ebp + esi - 0x9a30]
add eax, dword [ebp + esi - 0x9a34]
shr dword [ebp + esi - 0x9a38], 1
add eax, dword [ebp + esi - 0x9a38]
add eax, dword [ebp + esi - 0x9a3c]
mov dword [ebp + esi - 0x9a2c], eax
cmp edx, 3
jne 0x419f9a
mov eax, dword [ebp - 0x9a70]
lea ecx, [ebp - 0x53c]
and dword [ebp - 0x9a4c], 0
lea edx, [ebp - 0x34]
shl eax, 5
add eax, ecx
mov dword [ebp - 0x9a44], edx
xor ecx, ecx
mov dword [ebp - 0x9a40], eax
mov dword [ebp - 0x9a70], ecx
mov esi, dword [edx]
xor edx, edx
mov eax, dword [eax]
mov dword [ebp - 0x9a54], eax
shr edi, 0xb
lea ecx, [eax + esi]
mov eax, ebx
div edi
shr ecx, 1
mov edx, 0x1000000
cmp eax, ecx
jb 0x419def
mov eax, ecx
imul eax, edi
sub ebx, eax
mov eax, 0x800
sub eax, ecx
mov dword [ebp - 0x9a58], ebx
imul edi, eax
mov dword [ebp - 0x9a48], edi
cmp edi, edx
jae 0x419da1
mov ecx, dword [ebp - 0x9a50]
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl edi, 8
inc ecx
cmp edi, edx
jb 0x419d7f
mov dword [ebp - 0x9a50], ecx
mov dword [ebp - 0x9a48], edi
mov dword [ebp - 0x9a58], ebx
mov ecx, dword [ebp - 0x9a54]
mov eax, esi
mov edx, dword [ebp - 0x9a44]
shr eax, 4
sub esi, eax
mov eax, ecx
shr eax, 6
sub ecx, eax
mov dword [edx], esi
mov eax, dword [ebp - 0x9a40]
add edx, 4
mov esi, dword [ebp - 0x9a70]
mov dword [ebp - 0x9a44], edx
mov dword [eax], ecx
add eax, 4
inc esi
mov dword [ebp - 0x9a40], eax
mov dword [ebp - 0x9a70], esi
cmp esi, 6
jne 0x419d33
jmp 0x419e5b
imul ecx, edi
mov edi, ecx
mov dword [ebp - 0x9a48], ecx
cmp edi, edx
jae 0x419e26
mov ecx, dword [ebp - 0x9a50]
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl edi, 8
inc ecx
cmp edi, edx
jb 0x419e04
mov dword [ebp - 0x9a50], ecx
mov dword [ebp - 0x9a48], edi
mov dword [ebp - 0x9a58], ebx
mov ecx, dword [ebp - 0x9a44]
mov edx, 0x800
mov eax, edx
sub eax, esi
shr eax, 4
add eax, esi
mov esi, dword [ebp - 0x9a70]
mov dword [ecx], eax
mov eax, edx
sub eax, dword [ebp - 0x9a54]
mov ecx, dword [ebp - 0x9a40]
shr eax, 6
add eax, dword [ebp - 0x9a54]
mov dword [ecx], eax
mov eax, esi
lea edx, [ebp - 0x323c]
shl eax, 9
xor ecx, ecx
add edx, eax
inc ecx
mov dword [ebp - 0x9a64], edx
mov dword [ebp - 0x9a54], ecx
test esi, esi
js 0x419f7d
lea eax, [esi + 1]
mov dword [ebp - 0x9a44], eax
mov eax, ecx
shr edi, 0xb
shl eax, 2
mov dword [ebp - 0x9a68], eax
mov esi, dword [eax + edx]
xor edx, edx
mov eax, ebx
div edi
mov edx, 0x1000000
cmp eax, esi
jae 0x419eed
imul edi, esi
cmp edi, edx
jae 0x419ed1
mov ecx, dword [ebp - 0x9a50]
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl edi, 8
inc ecx
cmp edi, edx
jb 0x419eb5
mov dword [ebp - 0x9a50], ecx
mov ecx, dword [ebp - 0x9a54]
shl dword [ebp - 0x9a4c], 1
add ecx, ecx
mov dword [ebp - 0x9a54], ecx
mov ecx, 0x800
sub ecx, esi
shr ecx, 7
add ecx, esi
jmp 0x419f49
mov eax, esi
imul eax, edi
sub ebx, eax
mov eax, 0x800
sub eax, esi
imul edi, eax
cmp edi, edx
jae 0x419f24
mov ecx, dword [ebp - 0x9a50]
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl edi, 8
inc ecx
cmp edi, edx
jb 0x419f08
mov dword [ebp - 0x9a50], ecx
mov ecx, dword [ebp - 0x9a54]
mov edx, dword [ebp - 0x9a4c]
add ecx, ecx
or ecx, 1
add edx, edx
mov dword [ebp - 0x9a54], ecx
mov eax, esi
or edx, 1
shr eax, 7
mov ecx, esi
mov dword [ebp - 0x9a4c], edx
sub ecx, eax
sub dword [ebp - 0x9a44], 1
mov eax, dword [ebp - 0x9a68]
mov edx, dword [ebp - 0x9a64]
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x9a54]
jne 0x419e88
mov esi, dword [ebp - 0x9a70]
mov dword [ebp - 0x9a48], edi
mov dword [ebp - 0x9a58], ebx
mov eax, dword [ebp - 0x9a4c]
cmp esi, 6
jne 0x419f91
cmp eax, 0x7f
je 0x41aacc
mov edx, dword [esi*4 + 0x469da0]
add edx, eax
mov esi, dword [ebp - 0x9a60]
lea eax, [edx + 1]
movzx eax, al
mov dword [ebp - 0x9a68], eax
mov edx, dword [ebp + eax*4 - 0x43c]
mov eax, dword [ebp - 0x9a5c]
mov dword [ebp - 0x9a4c], edx
add dword [ebp + edx*4 - 0x9ea4], 0x20000
mov ecx, dword [ebp + edx*4 - 0xa2ac]
mov byte [esi + eax], dl
test ecx, ecx
jle 0x419ff8
mov eax, dword [ebp + ecx*4 - 0x440]
mov dword [ebp + ecx*4 - 0x43c], eax
mov dword [ebp + eax*4 - 0xa2ac], ecx
sub ecx, 1
jne 0x419fd8
mov eax, dword [ebp - 0x9a5c]
and dword [ebp + edx*4 - 0xa2ac], 0
mov dword [ebp - 0x43c], edx
cmp esi, 1
jl 0x41a0a8
mov al, byte [esi + eax - 1]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffe4000
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a0a8
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a08e
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a067
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 2
jl 0x41a14a
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 2]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffe398
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a14a
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a136
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a10f
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 4
jl 0x41a1f8
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 4]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffef70
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a1f8
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a1de
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a1b7
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 8
jl 0x41a29a
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 8]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffff6c4
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a29a
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a286
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a25f
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x10
jl 0x41a348
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x10]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffb11
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a348
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a32e
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a307
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x20
jl 0x41a3ea
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x20]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffd77
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a3ea
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a3d6
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a3af
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x40
jl 0x41a498
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x40]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffec0
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a498
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a47e
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a457
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x80
jl 0x41a53d
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x80]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffff67
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a53d
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a529
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a502
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x100
jl 0x41a5ee
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x100]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffffba
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a5ee
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a5d4
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a5ad
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x200
jl 0x41a693
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x200]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xffffffe1
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a693
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a67f
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a658
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x400
jl 0x41a744
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x400]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffff2
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a744
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a72a
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a703
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov edx, dword [ebp - 0x9a4c]
cmp esi, 0x800
jl 0x41a7e9
mov eax, dword [ebp - 0x9a5c]
mov al, byte [esi + eax - 0x800]
movzx ecx, al
mov dword [ebp - 0x9a40], ecx
add dword [ebp + ecx*4 - 0x9ea4], 0xfffffff8
mov eax, dword [ebp + ecx*4 - 0x9ea4]
mov dword [ebp - 0x9a44], eax
cmp ecx, edx
je 0x41a7e9
mov edx, dword [ebp + ecx*4 - 0xa2ac]
lea esi, [ebp - 0x438]
mov ecx, dword [ebp - 0x9a44]
lea esi, [esi + edx*4]
mov eax, dword [esi]
cmp dword [ebp + eax*4 - 0x9ea4], ecx
mov ecx, dword [ebp - 0x9a40]
jle 0x41a7d5
mov edi, dword [ebp - 0x9a44]
mov ecx, eax
mov eax, edx
mov dword [esi - 4], ecx
lea esi, [esi + 4]
mov dword [ebp + ecx*4 - 0xa2ac], eax
mov ecx, dword [esi]
inc edx
cmp dword [ebp + ecx*4 - 0x9ea4], edi
jg 0x41a7ae
mov edi, dword [ebp - 0x9a48]
mov ecx, dword [ebp - 0x9a40]
mov esi, dword [ebp - 0x9a60]
mov dword [ebp + edx*4 - 0x43c], ecx
mov dword [ebp + ecx*4 - 0xa2ac], edx
mov eax, dword [ebp - 0x9a68]
inc esi
dec eax
mov dword [ebp - 0x9a60], esi
movzx ecx, al
push 3
pop eax
cmp ecx, eax
cmova ecx, eax
mov eax, dword [ebp - 0x9a94]
shl eax, 2
xor edx, edx
or eax, ecx
shr edi, 0xb
movzx eax, al
shl ecx, 4
add ecx, dword [ebp - 0x9a74]
mov dword [ebp - 0x9a94], eax
imul eax, ecx, 0x60
lea ecx, [ebp - 0x4a3c]
and dword [ebp - 0x9a44], 0
add ecx, eax
imul eax, dword [ebp - 0x9a4c], 0x60
mov dword [ebp - 0x9a48], ecx
mov esi, dword [ecx]
add eax, dword [ebp - 0x9a78]
mov dword [ebp - 0x9a40], eax
mov dword [ebp - 0x9a64], esi
mov eax, dword [eax]
mov dword [ebp - 0x9a54], eax
lea ecx, [eax + esi]
mov eax, ebx
div edi
shr ecx, 1
cmp eax, ecx
jb 0x41a928
mov edx, dword [ebp - 0x9a54]
lea ecx, [edx + esi]
shr ecx, 1
mov eax, ecx
imul eax, edi
sub ebx, eax
mov eax, 0x800
sub eax, ecx
imul edi, eax
cmp edi, 0x1000000
jae 0x41a8c6
mov ecx, dword [ebp - 0x9a50]
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl edi, 8
inc ecx
cmp edi, 0x1000000
jb 0x41a89a
mov edx, dword [ebp - 0x9a40]
mov dword [ebp - 0x9a50], ecx
mov ecx, dword [ebp - 0x9a48]
mov edx, dword [edx]
mov esi, dword [ecx]
jmp 0x41a8cc
mov ecx, dword [ebp - 0x9a48]
mov eax, esi
shr edi, 0xb
shr eax, 6
sub esi, eax
mov eax, edx
shr eax, 3
sub edx, eax
mov dword [ecx], esi
mov eax, dword [ebp - 0x9a40]
add ecx, 4
mov dword [ebp - 0x9a48], ecx
mov esi, dword [ecx]
mov dword [eax], edx
add eax, 4
mov dword [ebp - 0x9a40], eax
xor edx, edx
inc dword [ebp - 0x9a44]
mov eax, dword [eax]
mov dword [ebp - 0x9a54], eax
lea ecx, [eax + esi]
mov eax, ebx
div edi
shr ecx, 1
cmp eax, ecx
jae 0x41a870
mov dword [ebp - 0x9a64], esi
mov dword [ebp - 0x9a58], ebx
add esi, dword [ebp - 0x9a54]
mov edx, 0x1000000
mov ecx, dword [ebp - 0x9a50]
shr esi, 1
imul esi, edi
cmp esi, edx
jae 0x41a970
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl esi, 8
inc ecx
cmp esi, edx
jb 0x41a942
mov eax, dword [ebp - 0x9a48]
mov dword [ebp - 0x9a50], ecx
mov dword [ebp - 0x9a58], ebx
mov edx, dword [eax]
mov eax, dword [ebp - 0x9a40]
mov edi, dword [eax]
jmp 0x41a97c
mov edx, dword [ebp - 0x9a64]
mov edi, dword [ebp - 0x9a54]
mov eax, 0x800
sub eax, edx
shr eax, 6
add eax, edx
mov edx, dword [ebp - 0x9a48]
mov dword [edx], eax
mov eax, 0x800
mov edx, dword [ebp - 0x9a40]
sub eax, edi
shr eax, 3
add eax, edi
mov edi, dword [ebp - 0x9a74]
and edi, 7
add edi, edi
mov dword [edx], eax
mov edx, dword [ebp - 0x9a44]
mov eax, edi
or eax, 1
cmp edx, 2
cmovae edi, eax
imul eax, edx, 0x60
mov dword [ebp - 0x9a74], edi
lea edi, [ebp - 0x223c]
add eax, edi
xor edi, edi
mov dword [ebp - 0x9a40], eax
test edx, edx
je 0x41aa9d
mov dword [ebp - 0x9a64], edx
xor edx, edx
shr esi, 0xb
mov eax, ebx
div esi
mov edx, dword [ebp - 0x9a40]
cmp eax, dword [edx]
jae 0x41aa32
imul esi, dword [edx]
mov edx, 0x1000000
cmp esi, edx
jae 0x41aa1c
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl esi, 8
inc ecx
cmp esi, edx
jb 0x41aa06
mov dword [ebp - 0x9a50], ecx
mov eax, dword [ebp - 0x9a40]
mov edx, 0x800
add edi, edi
sub edx, dword [eax]
shr edx, 6
add edx, dword [eax]
jmp 0x41aa79
mov eax, dword [edx]
imul eax, esi
sub ebx, eax
mov eax, 0x800
sub eax, dword [edx]
imul esi, eax
cmp esi, 0x1000000
jae 0x41aa65
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
shl esi, 8
inc ecx
cmp esi, 0x1000000
jb 0x41aa4b
mov dword [ebp - 0x9a50], ecx
mov eax, dword [edx]
add edi, edi
mov edx, dword [edx]
or edi, 1
shr eax, 6
sub edx, eax
mov eax, dword [ebp - 0x9a40]
mov dword [eax], edx
add eax, 4
sub dword [ebp - 0x9a64], 1
mov dword [ebp - 0x9a40], eax
jne 0x41a9e7
mov edx, dword [ebp - 0x9a44]
mov dword [ebp - 0x9a58], ebx
add edi, dword [edx*4 + 0x469dd0]
je 0x41aac1
push edi
push dword [ebp - 0x9a4c]
push dword [ebp - 0x9a7c]
call fcn.0042c5f0
add esp, 0xc
add dword [ebp - 0x9a7c], edi
mov eax, dword [ebp - 0x9a4c]
jmp 0x419a2d
mov ecx, dword [ebp - 0x9a5c]
call fcn.004129a9
mov ecx, dword [ebp - 0x9a78]
call fcn.004129a9
mov eax, dword [ebp - 0x9a7c]
sub eax, dword [ebp - 0x9a98]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042a75e
leave
ret