Function at 0x6a0760
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x3460
call fcn.005d1cf0
mov dword [esp + 0x198], edx
mov esi, ecx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
cmp dword [ecx + 0xc], 0
mov dword [esp + 0xd4], ecx
je 0x6a09a8
mov eax, dword [esi + 0x14]
mov dword [esp + 0x40], eax
mov dword [esp + 0x20d8], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x2e0], 0
mov dword [esp + 0x2d8], 0
mov dword [esp + 0x2dc], 0
mov dword [esp + 0x2e8], 0
mov dword [esp + 0x2e4], edi
pxor xmm0, xmm0
movdqu xmmword [esp + 0x2ec], xmm0
mov dword [esp + 0x2558], esi
mov dword [esp + 0x2560], 0
mov dword [esp + 0x2564], ebx
mov dword [esp + 0x255c], 0
push 0x40000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x11d8], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x11dc], eax
push 0x20000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x11e0], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x11f8], eax
push 0x40000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x11e8], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x11ec], eax
push 0x20000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x11f0], eax
lea eax, [esp + 0x11d8]
mov edx, edi
lea edi, [esp + 0x2d8]
lea ecx, [esp + 0x2558]
push eax
push edi
push ebx
push 0
call fcn.006aab60
add esp, 0x10
lea eax, [esp + 0x258]
lea ebx, [esp + 0x20d8]
mov ecx, esi
mov edx, edi
push eax
push ebx
push dword [esp + 0x48]
call fcn.006aafc0
add esp, 0xc
mov eax, dword [esp + 0x258]
test eax, eax
je 0x6a09c2
mov ecx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x20d8]
mov dword [esp + 8], edx
test ecx, ecx
je 0x6a09d7
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2d8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x50], eax
xor eax, eax
xor edi, edi
xor esi, esi
xor ebx, ebx
jmp 0x6a0963
lea ecx, [edi*8]
push ecx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [eax + edi*4], esi
inc edi
cmp edi, dword [esp + 0x78]
je 0x6a09dd
mov ecx, dword [esp + 0x2e0]
add esi, dword [esp + 0x40]
inc ebx
cmp ebx, ecx
jae 0x6a09d3
mov edx, dword [esp + 0x50]
cmp word [edx + ebx*2], 0
je 0x6a0980
mov edx, dword [esp + 0x80]
movzx edx, word [edx + ebx*2]
mov dword [esp + 0x40], edx
jmp 0x6a0988
mov dword [esp + 0x40], 1
mov edx, dword [esp + 8]
cmp ebx, dword [edx + edi*4]
jne 0x6a095a
lea ecx, [edi - 1]
test edi, ecx
jne 0x6a0945
test edi, edi
jne 0x6a0934
push 4
call sub.msvcrt.dll_malloc
add esp, 4
jmp 0x6a0945
xor eax, eax
mov dword [esp + 0x78], 0
mov dword [esp + 0xd8], 0
jmp 0x6a0ae8
xor ebx, ebx
mov eax, dword [esp + 0x20d8]
mov dword [esp + 8], eax
xor edi, edi
jmp 0x6a09e3
mov ebx, eax
jmp 0x6a09e3
xor ebx, ebx
xor edi, edi
jmp 0x6a09e3
mov ebx, eax
mov edi, dword [esp + 0x78]
push dword [esp + 8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2d8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2dc]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2e8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2ec]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2f0]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2f4]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2f8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11d8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11dc]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11e0]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11e8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11ec]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11f0]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11f8]
call sub.msvcrt.dll_free
add esp, 4
mov dword [esp + 0x78], edi
lea eax, [edi*4]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xd8], eax
mov esi, dword [esp + 0xd4]
mov eax, ebx
mov edi, dword [ebp + 8]
mov dword [esp + 0x13c], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], edi
pxor xmm1, xmm1
movdqu xmmword [esp + 0x148], xmm1
lea ecx, [edi + 1]
mov dword [esp + 0x168], ecx
xor edx, edx
pxor xmm0, xmm0
movq qword [esp + 0x190], xmm0
mov dword [esp + 0x17c], eax
jmp 0x6a0bf8
movsd xmm0, qword [esp + 0x190]
addsd xmm0, qword [esp + 0x80]
movsd qword [esp + 0x190], xmm0
push dword [esp + 0x110]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x114]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x120]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x124]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x128]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x12c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x130]
call sub.msvcrt.dll_free
add esp, 4
mov edx, dword [esp + 0x180]
inc edx
cmp edx, dword [esp + 0x78]
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0x17c]
xorpd xmm1, xmm1
ja 0x6a46e7
test edx, edx
je 0x6a0c10
mov ecx, dword [eax + edx*4 - 4]
mov dword [esp + 0x3c], ecx
jmp 0x6a0c18
mov dword [esp + 0x3c], 0
mov ebx, dword [ebp + 0xc]
cmp edx, dword [esp + 0x78]
je 0x6a0c24
mov ebx, dword [eax + edx*4]
mov dword [esp + 0x180], edx
mov dword [esp + 0x118], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], edi
lea eax, [esp + 0x124]
movdqu xmmword [eax], xmm1
mov ecx, esi
mov edi, dword [esp + 0x3c]
mov edx, edi
lea eax, [esp + 0x1ac]
push eax
push 1
push ebx
call fcn.006a9fb0
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [esp + 0x188], eax
mov dword [esp + 0x40], ebx
sub ebx, edi
lea eax, [ebx*2 + 2]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov esi, eax
lea eax, [ebx*4 + 4]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x6a66e9
mov dword [esp + 0x70], eax
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x7c], esi
test esi, esi
je 0x6a66e9
push 0xf00
push 0
lea eax, [esp + 0x2e0]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0xf4], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xfc], 0
mov esi, dword [ebp + 8]
mov dword [esp + 0xf8], esi
pxor xmm0, xmm0
lea eax, [esp + 0x100]
movdqu xmmword [eax], xmm0
push 0x40000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xa4], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xa8], eax
push 0x20000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xac], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xc4], eax
push 0x40000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xb4], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xb8], eax
push 0x20000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0xbc], eax
lea ecx, [esp + 0x1ac]
mov edx, esi
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xf0]
push eax
push dword [esp + 0x48]
push dword [esp + 0x48]
call fcn.006aab60
add esp, 0x10
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x6a0e80
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf0]
xor esi, esi
mov dword [esp + 8], ecx
mov dword [esp + 0x50], edx
jmp 0x6a0e20
lea edi, [esp + ebx*4]
add edi, 0x2d8
inc dword [edi]
inc esi
cmp eax, esi
je 0x6a0e80
movzx edi, word [edx + esi*2]
movzx ebx, word [ecx + esi*2]
test edi, edi
je 0x6a0e10
mov ebx, dword [ebx*4 + 0x707dc8]
inc dword [esp + ebx*4 + 0x2d8]
mov ebx, edi
dec edi
cmp bx, 5
jb 0x6a0e6a
bsr ebx, edi
xor ebx, 0x1f
mov cl, 0x1e
sub cl, bl
movzx ecx, cl
mov edx, eax
xor eax, eax
bt edi, ecx
mov ecx, dword [esp + 8]
setb al
lea edi, [eax + ebx*2]
mov eax, edx
mov edx, dword [esp + 0x50]
xor edi, 0x3e
lea edi, [esp + edi*4]
add edi, 0x758
jmp 0x6a0e19
mov dword [esp + 0x6d8], 1
pxor xmm0, xmm0
mov eax, 0x1c
pxor xmm1, xmm1
nop dword [eax + eax]
movdqu xmm2, xmmword [esp + eax*4 + 0x268]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x278]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + eax*4 + 0x288]
movdqu xmm3, xmmword [esp + eax*4 + 0x298]
movdqu xmm4, xmmword [esp + eax*4 + 0x2a8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm2, xmmword [esp + eax*4 + 0x2b8]
paddd xmm2, xmm3
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x2c8]
paddd xmm0, xmm4
movdqu xmm1, xmmword [esp + eax*4 + 0x2d8]
paddd xmm1, xmm2
add eax, 0x20
cmp eax, 0x13c
jne 0x6a0ea0
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x120
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x250]
movsd xmm3, qword [esp + 0x250]
mulsd xmm3, qword [0x7044c8]
mov esi, 0xa0
movsd qword [esp + 8], xmm3
jmp 0x6a0fbc
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x2d8], xmm1
inc esi
cmp esi, 0x1c0
je 0x6a1020
mov eax, dword [esp + esi*4 + 0x58]
movapd xmm0, xmm3
test eax, eax
je 0x6a0f80
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x248]
movsd xmm0, qword [esp + 0x248]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a0f80
movdqu xmm0, xmmword [esp + 0x758]
movdqu xmm1, xmmword [esp + 0x768]
movdqu xmm2, xmmword [esp + 0x778]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x788]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x798]
movdqu xmm3, xmmword [esp + 0x7a8]
movdqu xmm4, xmmword [esp + 0x7b8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm1, xmmword [esp + 0x7c8]
paddd xmm1, xmm3
paddd xmm1, xmm0
paddd xmm1, xmm4
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x20
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x240]
movsd xmm3, qword [esp + 0x240]
mulsd xmm3, qword [0x7044c8]
mov esi, 0x1c0
mov edi, dword [ebp + 8]
movsd qword [esp + 8], xmm3
jmp 0x6a112c
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x2d8], xmm1
inc esi
cmp esi, 0x1e0
je 0x6a1190
mov eax, dword [esp + esi*4 + 0x58]
movapd xmm0, xmm3
test eax, eax
je 0x6a10f0
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x238]
movsd xmm0, qword [esp + 0x238]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a10f0
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x188], 0
jle 0x6a4420
xor ecx, ecx
mov eax, dword [esp + 0x3c]
mov edx, eax
sub edx, 0x8000
mov dword [esp + 0x2c], 0
cmovb edx, ecx
mov ecx, dword [esp + 0xe4]
mov ebx, ecx
and ebx, 0xfffffff8
mov esi, dword [esp + 0x7c]
add esi, 6
mov dword [esp + 0x15c], esi
mov esi, dword [esp + 0x70]
add esi, 0xc
mov dword [esp + 0x158], esi
xorpd xmm1, xmm1
movsd xmm0, qword [0x7044e0]
movsd qword [esp + 0x170], xmm0
lea esi, [edx + 1]
mov dword [esp + 0xe8], esi
lea esi, [ecx - 1]
mov dword [esp + 0x1a8], esi
lea esi, [ebx + 1]
mov dword [esp + 0x19c], esi
lea eax, [eax + 0x103]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1c0], edx
lea eax, [edi + edx]
mov dword [esp + 0x184], eax
lea eax, [ecx + 1]
mov dword [esp + 0x1a4], eax
mov eax, 2
mov ecx, 1
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x1a0], ebx
jmp 0x6a12a4
mov eax, dword [esp + 0x160]
mov dword [esp + 0x18c], eax
movsd xmm1, qword [esp + 0xc8]
inc eax
mov dword [esp + 0x160], eax
cmp eax, dword [esp + 0x188]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x38]
je 0x6a4420
mov dword [esp + 0x38], ecx
mov dword [esp + 0x74], eax
movsd qword [esp + 0x1d0], xmm1
push dword [esp + 0xec]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xf0]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xfc]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x100]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x104]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x108]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x10c]
call sub.msvcrt.dll_free
add esp, 4
mov dword [esp + 0xf4], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], edi
xorps xmm0, xmm0
lea eax, [esp + 0x100]
movups xmmword [eax], xmm0
mov ecx, 3
movsd xmm0, qword [esp + 0x10d8]
movsd xmm1, qword [0x7044e0]
xor eax, eax
nop word cs:[eax + eax]
mov edx, dword [ecx*4 + 0x707dc8]
xorps xmm2, xmm2
cvtsi2sd xmm2, dword [ecx*4 + 0x70824c]
addsd xmm2, qword [esp + edx*8 + 0x7d8]
addsd xmm2, xmm0
ucomisd xmm1, xmm2
mov edx, eax
cmova edx, ecx
minsd xmm2, xmm1
mov eax, dword [ecx*4 + 0x707dcc]
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ecx*4 + 0x708250]
addsd xmm1, qword [esp + eax*8 + 0x7d8]
addsd xmm1, xmm0
ucomisd xmm2, xmm1
lea eax, [ecx + 1]
cmovbe eax, edx
minsd xmm1, xmm2
add ecx, 2
cmp ecx, 0x103
jne 0x6a1380
mov dword [esp + 0x50], eax
movsd xmm0, qword [esp + 0xfe0]
movapd xmm1, xmm0
addsd xmm1, qword [0x7045c0]
movsd xmm2, qword [esp + 0x10d8]
addsd xmm2, xmm1
xor ecx, ecx
movsd xmm3, qword [0x7044e0]
ucomisd xmm3, xmm2
seta cl
minsd xmm2, xmm3
movsd xmm3, qword [esp + 0x10e0]
addsd xmm3, xmm1
ucomisd xmm2, xmm3
mov eax, 2
cmova ecx, eax
minsd xmm3, xmm2
movsd xmm2, qword [esp + 0x10e8]
addsd xmm2, xmm1
ucomisd xmm3, xmm2
mov eax, 3
cmova ecx, eax
minsd xmm2, xmm3
addsd xmm1, qword [esp + 0x10f0]
ucomisd xmm2, xmm1
mov eax, 4
cmova ecx, eax
minsd xmm1, xmm2
mov edx, 0xffffff98
nop dword [eax]
mov dword [esp + 8], ecx
mov esi, dword [edx + 0x70824c]
lea edi, [esi - 1]
bsr ebx, edi
xor ebx, 0x1f
mov ecx, 0x1e
sub ecx, ebx
xor eax, eax
bt edi, ecx
setb al
lea eax, [eax + ebx*2]
xorps xmm2, xmm2
cvtsi2sd xmm2, ecx
mov ecx, dword [esp + 8]
xor eax, 0x3e
addsd xmm2, xmm0
addsd xmm2, qword [esp + eax*8 + 0x10d8]
ucomisd xmm1, xmm2
cmova ecx, esi
minsd xmm2, xmm1
movapd xmm1, xmm2
add edx, 4
jne 0x6a1480
test ecx, ecx
je 0x6a1540
lea edx, [ecx - 1]
xor esi, esi
cmp ecx, 5
mov ebx, dword [esp + 0x40]
jl 0x6a1501
bsr eax, edx
xor eax, 0x1f
mov esi, 0x1e
sub esi, eax
xor ecx, ecx
bt edx, esi
setb cl
lea edx, [ecx + eax*2]
xor edx, 0x3e
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx*4 + 0x707dc8]
add esi, dword [ecx*4 + 0x70824c]
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
addsd xmm0, qword [esp + eax*8 + 0x7d8]
addsd xmm0, qword [esp + edx*8 + 0x10d8]
movsd qword [esp + 0x98], xmm0
mov edi, dword [ebp + 8]
jmp 0x6a155d
mov eax, dword [esp + 0x50]
movsd xmm0, qword [esp + eax*8 + 0x7d8]
movsd qword [esp + 0x98], xmm0
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x40]
cmp ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
je 0x6a1f70
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xa4]
push 0x40000
push 0xff
mov dword [esp + 0x10], eax
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
add eax, 0x20
xor ecx, ecx
movdqa xmm0, xmmword [0x7044f0]
movdqa xmm3, xmmword [0x704500]
movdqa xmm4, xmmword [0x704510]
movdqa xmm5, xmmword [0x704520]
movdqa xmm6, xmmword [0x704530]
pcmpeqd xmm7, xmm7
nop word [eax + eax]
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [esi + ecx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [eax + ecx*4 - 0x10], xmm7
movdqu xmmword [eax + ecx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [esi + ecx*2 + 0x10], xmm1
movdqu xmmword [eax + ecx*4 + 0x10], xmm7
movdqu xmmword [eax + ecx*4], xmm7
lea edx, [ecx + 0x10]
paddw xmm0, xmm6
mov ecx, edx
cmp edx, 0x8000
jne 0x6a15e0
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xc4]
push 0x10000
push 0
mov dword [esp + 0x58], eax
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xb4]
push 0x40000
push 0xff
mov dword [esp + 0x88], eax
push eax
call sub.msvcrt.dll_memset
pcmpeqd xmm7, xmm7
movdqa xmm6, xmmword [0x704530]
movdqa xmm5, xmmword [0x704520]
movdqa xmm4, xmmword [0x704510]
movdqa xmm3, xmmword [0x704500]
add esp, 0xc
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x28], eax
lea ecx, [eax + 0x20]
xor edx, edx
movdqa xmm0, xmmword [0x7044f0]
nop word cs:[eax + eax]
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [esi + edx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [ecx + edx*4 - 0x10], xmm7
movdqu xmmword [ecx + edx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [esi + edx*2 + 0x10], xmm1
movdqu xmmword [ecx + edx*4 + 0x10], xmm7
movdqu xmmword [ecx + edx*4], xmm7
lea eax, [edx + 0x10]
paddw xmm0, xmm6
mov edx, eax
cmp eax, 0x8000
jne 0x6a16d0
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x1c0]
movzx ecx, byte [edi + eax]
mov eax, dword [esp + 0xb0]
shl eax, 5
and eax, 0x7fe0
xor eax, ecx
mov dword [esp + 0xb0], eax
cmp dword [esp + 0xe8], ebx
jae 0x6a1772
mov ecx, dword [esp + 0xe8]
movzx ecx, byte [edi + ecx]
shl eax, 5
and eax, 0x7fe0
xor eax, ecx
mov dword [esp + 0xb0], eax
mov edi, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov ecx, eax
cmp eax, dword [esp + 0x3c]
movapd xmm0, xmmword [0x704540]
jb 0x6a18b7
cmp dword [esp + 0x1a8], 0xfffffffd
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x1a4]
ja 0x6a180c
mov eax, 1
cmp dword [esp + 0xe4], 8
jb 0x6a1800
xor eax, eax
mov edx, dword [esp + 0x1a0]
nop word cs:[eax + eax]
movupd xmmword [ecx + eax*4 + 4], xmm0
movupd xmmword [ecx + eax*4 + 0x14], xmm0
add eax, 8
cmp edx, eax
jne 0x6a17d0
mov eax, dword [esp + 0x19c]
cmp dword [esp + 0xe4], edx
je 0x6a180c
nop word cs:[eax + eax]
mov dword [ecx + eax*4], 0x7149f2ca
inc eax
cmp esi, eax
jne 0x6a1800
mov dword [ecx], 0
mov eax, dword [esp + 0x7c]
mov word [eax], 0
cmp ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
jbe 0x6a1f70
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
jmp 0x6a19bf
mov edx, dword [esp + 0x50]
mov word [edx + ebx*2], ax
add eax, 0xfd
movzx eax, al
xor eax, dword [esp + 0xb0]
mov dword [esp + 0xc0], eax
mov esi, dword [esp + 0x28]
mov dword [esi + ebx*4], eax
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x80]
mov edx, dword [edx + eax*4]
cmp edx, 0xffffffff
je 0x6a19a0
cmp dword [esi + edx*4], eax
cmovne edx, ebx
mov esi, dword [esp + 0x1c]
mov word [esi + ebx*2], dx
mov edx, dword [esp + 0x80]
mov dword [edx + eax*4], ebx
inc ecx
inc edi
cmp ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
je 0x6a1794
lea edx, [ecx + 3]
xor eax, eax
cmp edx, ebx
ja 0x6a18c8
mov eax, dword [ebp + 8]
movzx eax, byte [ecx + eax + 2]
mov ebx, ecx
and ebx, 0x7fff
mov edx, dword [esp + 0xb0]
shl edx, 5
and edx, 0x7fe0
xor edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0x10]
mov dword [eax + ebx*4], edx
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 8]
mov edx, dword [edx + eax*4]
mov esi, ebx
cmp edx, 0xffffffff
je 0x6a1911
mov esi, dword [esp + 0x10]
cmp dword [esi + edx*4], eax
cmovne edx, ebx
mov esi, edx
mov edx, dword [esp + 0x14]
mov word [edx + ebx*2], si
mov edx, dword [esp + 8]
mov dword [edx + eax*4], ebx
lea eax, [ecx - 1]
and eax, 0x7fff
mov edx, dword [esp + 0x50]
movzx esi, word [edx + eax*2]
lea eax, [esi - 1]
cmp esi, 2
mov edx, 0
cmovb eax, edx
lea edx, [ecx + eax]
inc edx
cmp edx, dword [esp + 0x40]
jae 0x6a1850
mov eax, dword [ebp + 8]
movzx edx, byte [eax + ecx]
mov eax, ecx
not eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
cmp esi, 1
adc esi, 0
nop word cs:[eax + eax]
lea eax, [esi - 1]
cmp eax, 0xfffe
ja 0x6a1850
cmp dl, byte [edi + esi]
jne 0x6a1850
lea eax, [ecx + esi]
inc eax
inc esi
cmp eax, dword [esp + 0x40]
jb 0x6a1970
mov eax, dword [esp + 0x20]
jmp 0x6a1850
mov edx, ebx
jmp 0x6a1895
mov eax, dword [esp + 8]
cmp eax, ebx
mov edi, dword [ebp + 8]
jae 0x6a1f70
mov edx, eax
add eax, 3
xor ecx, ecx
cmp eax, ebx
ja 0x6a19cf
movzx ecx, byte [edx + edi + 2]
mov dword [esp + 0x80], edx
mov eax, edx
and eax, 0x7fff
mov edi, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
shl edx, 5
and edx, 0x7fe0
xor edx, ecx
mov dword [esp + 0xb0], edx
mov dword [edi + eax*4], edx
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x1c], edx
mov edx, dword [edx + ecx*4]
mov esi, eax
cmp edx, 0xffffffff
je 0x6a1a24
cmp dword [edi + edx*4], ecx
cmovne edx, eax
mov esi, edx
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x18], edx
mov word [edx + eax*2], si
mov edx, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0xc4]
mov esi, dword [esp + 0x80]
lea ecx, [esi - 1]
and ecx, 0x7fff
movzx edx, word [eax + ecx*2]
lea ecx, [edx - 1]
cmp edx, 2
mov edx, 0
cmovb ecx, edx
lea edx, [esi + ecx]
inc edx
cmp edx, ebx
mov dword [esp + 0x14], eax
jae 0x6a1aaf
mov eax, ebx
mov edi, dword [ebp + 8]
movzx ebx, byte [edi + esi]
not esi
add esi, eax
nop word cs:[eax + eax]
cmp ecx, 0xfffe
ja 0x6a1aa7
cmp bl, byte [edi + edx]
jne 0x6a1aa7
inc ecx
inc edx
cmp edx, dword [esp + 0x40]
jb 0x6a1a90
mov ecx, esi
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
mov word [eax + edx*2], cx
mov eax, edx
add ecx, 0xfd
movzx ecx, cl
xor ecx, dword [esp + 0xb0]
mov dword [esp + 0xc0], ecx
mov esi, dword [esp + 0xbc]
mov dword [esi + edx*4], ecx
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x28], edx
mov edx, dword [edx + edi*4]
cmp edx, 0xffffffff
mov dword [esp + 0x30], esi
je 0x6a1b00
cmp dword [esi + edx*4], edi
cmovne edx, eax
jmp 0x6a1b02
mov edx, eax
mov ecx, dword [esp + 0x80]
mov esi, ecx
sub esi, dword [esp + 0x3c]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xb8]
mov dword [esp + 0xc8], esi
mov word [esi + eax*2], dx
lea edx, [ecx + 1]
mov esi, dword [esp + 0x28]
mov dword [esi + edi*4], eax
mov esi, ecx
add ecx, 0x205
cmp ecx, ebx
jae 0x6a1d80
cmp esi, dword [esp + 0xe0]
mov edi, dword [ebp + 8]
jbe 0x6a1d70
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + eax*2]
cmp eax, 0x205
jb 0x6a1d70
lea eax, [esi + 0x7efe]
and eax, 0x7fff
movzx eax, word [ecx + eax*2]
cmp eax, 0x103
jb 0x6a1d70
movsd xmm0, qword [esp + 0x10c0]
addsd xmm0, qword [0x7045c0]
addsd xmm0, qword [esp + 0x10d8]
lea eax, [edi + esi]
mov dword [esp + 0x50], eax
xor eax, eax
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
jmp 0x6a1c2a
mov eax, dword [esp + 0x14]
mov word [eax + ebx*2], dx
add edx, 0xfd
movzx eax, dl
xor eax, dword [esp + 0xb0]
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0x30]
mov dword [edx + ebx*4], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + eax*4]
cmp ecx, 0xffffffff
je 0x6a1d60
cmp dword [edx + ecx*4], eax
cmovne ecx, ebx
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0xc8]
mov word [edx + ebx*2], cx
mov ecx, dword [esp + 0x28]
mov dword [ecx + eax*4], ebx
mov ecx, dword [esp + 0x10]
inc ecx
mov eax, dword [esp + 0x20]
inc eax
inc dword [esp + 0x50]
cmp eax, 0x102
mov ebx, dword [esp + 0x40]
je 0x6a1d90
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x70]
movss xmm1, dword [eax + ecx*4]
cvtss2sd xmm1, xmm1
addsd xmm1, xmm0
cvtsd2ss xmm1, xmm1
movss dword [eax + ecx*4 + 0x408], xmm1
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], ecx
mov word [eax + ecx*2 + 0x204], 0x102
lea ecx, [edx + 4]
mov eax, 0
cmp ecx, ebx
mov edi, dword [ebp + 8]
ja 0x6a1c79
movzx eax, byte [edx + edi + 3]
mov dword [esp + 8], edx
lea ebx, [edx + 1]
mov dword [esp + 0x80], ebx
and ebx, 0x7fff
mov ecx, dword [esp + 0xb0]
shl ecx, 5
and ecx, 0x7fe0
xor ecx, eax
mov dword [esp + 0xb0], ecx
mov dword [esi + ebx*4], ecx
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, ebx
cmp ecx, 0xffffffff
je 0x6a1cc6
cmp dword [esi + ecx*4], eax
cmovne ecx, ebx
mov edx, ecx
mov ecx, dword [esp + 0x18]
mov word [ecx + ebx*2], dx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + eax*4], ebx
mov esi, dword [esp + 8]
mov eax, esi
and eax, 0x7fff
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + eax*2]
lea edx, [ecx - 1]
cmp ecx, 2
mov eax, 0
cmovb edx, eax
lea eax, [esi + edx]
add eax, 2
cmp eax, dword [esp + 0x40]
jae 0x6a1bb0
mov edx, dword [esp + 8]
movzx eax, byte [edi + edx + 1]
mov edi, dword [esp + 0x40]
sub edi, edx
add edi, 0xfffffffe
cmp ecx, 1
adc ecx, 1
nop
lea edx, [ecx - 2]
cmp edx, 0xfffe
ja 0x6a1bb0
mov esi, dword [esp + 0x50]
cmp al, byte [esi + ecx]
jne 0x6a1bb0
mov edx, dword [esp + 8]
add edx, ecx
inc edx
inc ecx
cmp edx, dword [esp + 0x40]
jb 0x6a1d20
mov edx, edi
jmp 0x6a1bb0
mov ecx, ebx
jmp 0x6a1bf3
mov dword [esp + 8], edx
jmp 0x6a1da5
mov dword [esp + 8], edx
jmp 0x6a1da2
mov dword [esp + 0x10], ecx
add edi, 2
mov dword [esp + 8], edi
mov esi, dword [esp + 0x80]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x258]
push eax
lea eax, [esp + 0x1c2]
push eax
lea eax, [esp + 0x20e0]
push eax
push 0x102
push ebx
push esi
push edi
lea eax, [esp + 0xc0]
push eax
call fcn.006aa110
add esp, 0x20
cmp dword [esp + 8], ebx
jbe 0x6a1e00
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x10]
movss xmm1, dword [eax + ecx*4]
cvtss2sd xmm0, xmm1
mov edx, dword [esp + 0x2c]
jmp 0x6a1e51
mov eax, edi
mov edi, esi
movzx eax, byte [eax + esi]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x10]
movss xmm1, dword [ecx + esi*4]
movss xmm3, dword [ecx + esi*4 + 4]
cvtss2sd xmm0, xmm1
movsd xmm2, qword [esp + eax*8 + 0x7d8]
addsd xmm2, xmm0
cvtss2sd xmm3, xmm3
ucomisd xmm3, xmm2
mov edx, dword [esp + 0x2c]
jbe 0x6a1e4f
cvtsd2ss xmm2, xmm2
movss dword [ecx + esi*4 + 4], xmm2
mov eax, dword [esp + 0x7c]
mov word [eax + esi*2 + 2], 1
mov esi, edi
movzx ecx, word [esp + 0x258]
mov eax, ebx
sub eax, esi
cmp ecx, eax
cmovb eax, ecx
cmp eax, 3
jb 0x6a19b0
addsd xmm0, qword [esp + 0x98]
cvtss2sd xmm1, xmm1
add eax, 0xfffffffe
mov ecx, dword [esp + 0x15c]
mov esi, dword [esp + 0x10]
lea ecx, [ecx + esi*2]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x158]
lea ecx, [ecx + esi*4]
xor edi, edi
mov dword [esp + 0x50], ecx
jmp 0x6a1eb9
inc edi
cmp eax, edi
je 0x6a19b0
movss xmm2, dword [ecx + edi*4]
cvtss2sd xmm2, xmm2
ucomisd xmm0, xmm2
jae 0x6a1eb0
movzx ebx, word [esp + edi*2 + 0x20de]
test ebx, ebx
je 0x6a1f2b
mov ecx, ebx
dec ebx
xor esi, esi
cmp cx, 5
jb 0x6a1efe
bsr ecx, ebx
xor ecx, 0x1f
mov esi, 0x1e
sub esi, ecx
xor edx, edx
bt ebx, esi
setb dl
lea ebx, [edx + ecx*2]
mov edx, dword [esp + 0x2c]
xor ebx, 0x3e
mov ecx, dword [edi*4 + 0x707dd4]
add esi, dword [edi*4 + 0x708258]
xorps xmm3, xmm3
cvtsi2sd xmm3, esi
addsd xmm3, qword [esp + ecx*8 + 0x7d8]
addsd xmm3, qword [esp + ebx*8 + 0x10d8]
mov ecx, dword [esp + 0x50]
jmp 0x6a1f34
movsd xmm3, qword [esp + edi*8 + 0x7f0]
addsd xmm3, xmm1
ucomisd xmm2, xmm3
mov ebx, dword [esp + 0x40]
jbe 0x6a1eb0
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm3
movss dword [ecx + edi*4], xmm2
lea ecx, [edi + 3]
mov esi, dword [esp + 0x80]
mov word [esi + edi*2], cx
mov ecx, dword [esp + 0x50]
jmp 0x6a1eb0
push edx
call sub.msvcrt.dll_free
add esp, 4
mov esi, dword [esp + 0xe4]
test esi, esi
je 0x6a20f0
xor eax, eax
mov ecx, 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x2c], 0
xor edx, edx
mov ebx, esi
jmp 0x6a1ff1
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x7c]
movzx edx, word [ecx + ebx*2]
mov dword [esp + 0x2c], eax
mov word [eax + esi*2], dx
lea edx, [esi + 1]
movzx eax, word [ecx + ebx*2]
mov dword [esp + 0x10], eax
add edi, 4
mov dword [esp + 0x50], edi
mov eax, dword [esp + 8]
lea ecx, [eax + 1]
mov edi, dword [esp + 0x80]
lea eax, [edi + 2]
sub ebx, dword [esp + 0x10]
je 0x6a2030
mov esi, edx
mov dword [esp + 8], ecx
mov ecx, eax
lea eax, [edx - 1]
test edx, eax
mov dword [esp + 0x80], ecx
jne 0x6a1fb0
test esi, esi
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x50]
je 0x6a201f
push edi
push eax
call sub.msvcrt.dll_realloc
add esp, 8
jmp 0x6a1fb8
push 2
call sub.msvcrt.dll_malloc
add esp, 4
jmp 0x6a1fb8
mov dword [esp + 0x50], esi
cmp edx, 2
mov ebx, dword [esp + 0x40]
mov ecx, edx
jb 0x6a20d7
mov dword [esp + 0x98], ecx
shr ecx, 1
xor eax, eax
cmp ecx, 1
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
je 0x6a20ac
mov esi, edi
shr ecx, 1
and ecx, 0xfffffffe
mov dword [esp + 8], ecx
add esi, edx
xor eax, eax
nop word [eax + eax]
movzx ecx, word [edx + eax*2]
movzx edx, word [esi]
mov edi, dword [esp + 0x2c]
mov word [edi + eax*2], dx
mov word [esi], cx
mov ecx, dword [esp + 0x2c]
movzx ecx, word [ecx + eax*2 + 2]
movzx edx, word [esi - 2]
mov edi, dword [esp + 0x2c]
mov word [edi + eax*2 + 2], dx
mov edx, dword [esp + 0x2c]
mov word [esi - 2], cx
add eax, 2
add esi, 0xfffffffc
cmp dword [esp + 8], eax
jne 0x6a2070
mov ecx, dword [esp + 0x98]
test cl, 2
je 0x6a20d7
movzx ecx, word [edx + eax*2]
mov esi, dword [esp + 0x50]
sub esi, eax
mov edi, edx
movzx edx, word [edx + esi*2]
mov word [edi + eax*2], dx
mov word [edi + esi*2], cx
mov ecx, dword [esp + 0x98]
mov edi, dword [ebp + 8]
cmp ebx, dword [esp + 0x3c]
jne 0x6a2104
jmp 0x6a28d0
mov dword [esp + 0x2c], 0
xor ecx, ecx
cmp ebx, dword [esp + 0x3c]
je 0x6a28d0
mov dword [esp + 0x98], ecx
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xa4]
push 0x40000
push 0xff
mov dword [esp + 0x10], eax
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
add eax, 0x20
xor ecx, ecx
movdqa xmm0, xmmword [0x7044f0]
movdqa xmm3, xmmword [0x704500]
movdqa xmm4, xmmword [0x704510]
movdqa xmm5, xmmword [0x704520]
movdqa xmm6, xmmword [0x704530]
pcmpeqd xmm7, xmm7
nop word [eax + eax]
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [esi + ecx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [eax + ecx*4 - 0x10], xmm7
movdqu xmmword [eax + ecx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [esi + ecx*2 + 0x10], xmm1
movdqu xmmword [eax + ecx*4 + 0x10], xmm7
movdqu xmmword [eax + ecx*4], xmm7
lea edx, [ecx + 0x10]
paddw xmm0, xmm6
mov ecx, edx
cmp edx, 0x8000
jne 0x6a2180
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xc4]
push 0x10000
push 0
mov dword [esp + 0x58], eax
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xb4]
push 0x40000
push 0xff
mov dword [esp + 0x88], eax
push eax
call sub.msvcrt.dll_memset
pcmpeqd xmm7, xmm7
movdqa xmm6, xmmword [0x704530]
movdqa xmm5, xmmword [0x704520]
movdqa xmm4, xmmword [0x704510]
movdqa xmm3, xmmword [0x704500]
add esp, 0xc
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x28], eax
lea ecx, [eax + 0x20]
xor edx, edx
movdqa xmm0, xmmword [0x7044f0]
nop word cs:[eax + eax]
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [esi + edx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [ecx + edx*4 - 0x10], xmm7
movdqu xmmword [ecx + edx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [esi + edx*2 + 0x10], xmm1
movdqu xmmword [ecx + edx*4 + 0x10], xmm7
movdqu xmmword [ecx + edx*4], xmm7
lea eax, [edx + 0x10]
paddw xmm0, xmm6
mov edx, eax
cmp eax, 0x8000
jne 0x6a2270
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x1c0]
movzx ecx, byte [edi + eax]
mov eax, dword [esp + 0xb0]
shl eax, 5
and eax, 0x7fe0
xor eax, ecx
mov dword [esp + 0xb0], eax
cmp dword [esp + 0xe8], ebx
jae 0x6a2312
mov ecx, dword [esp + 0xe8]
movzx ecx, byte [edi + ecx]
shl eax, 5
and eax, 0x7fe0
xor eax, ecx
mov dword [esp + 0xb0], eax
mov edi, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov ecx, eax
cmp eax, dword [esp + 0x3c]
jb 0x6a23d7
cmp dword [esp + 0x98], 0
mov edi, dword [ebp + 8]
je 0x6a28d0
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0xd0], eax
xor ecx, ecx
mov esi, dword [esp + 0x3c]
jmp 0x6a24e6
mov edx, dword [esp + 0x50]
mov word [edx + ebx*2], ax
add eax, 0xfd
movzx eax, al
xor eax, dword [esp + 0xb0]
mov dword [esp + 0xc0], eax
mov esi, dword [esp + 0x28]
mov dword [esi + ebx*4], eax
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x80]
mov edx, dword [edx + eax*4]
cmp edx, 0xffffffff
je 0x6a24c0
cmp dword [esi + edx*4], eax
cmovne edx, ebx
mov esi, dword [esp + 0x1c]
mov word [esi + ebx*2], dx
mov edx, dword [esp + 0x80]
mov dword [edx + eax*4], ebx
inc ecx
inc edi
cmp ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
je 0x6a232c
lea edx, [ecx + 3]
xor eax, eax
cmp edx, ebx
ja 0x6a23e8
mov eax, dword [ebp + 8]
movzx eax, byte [ecx + eax + 2]
mov ebx, ecx
and ebx, 0x7fff
mov edx, dword [esp + 0xb0]
shl edx, 5
and edx, 0x7fe0
xor edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0x10]
mov dword [eax + ebx*4], edx
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 8]
mov edx, dword [edx + eax*4]
mov esi, ebx
cmp edx, 0xffffffff
je 0x6a2431
mov esi, dword [esp + 0x10]
cmp dword [esi + edx*4], eax
cmovne edx, ebx
mov esi, edx
mov edx, dword [esp + 0x14]
mov word [edx + ebx*2], si
mov edx, dword [esp + 8]
mov dword [edx + eax*4], ebx
lea eax, [ecx - 1]
and eax, 0x7fff
mov edx, dword [esp + 0x50]
movzx esi, word [edx + eax*2]
lea eax, [esi - 1]
cmp esi, 2
mov edx, 0
cmovb eax, edx
lea edx, [ecx + eax]
inc edx
cmp edx, dword [esp + 0x40]
jae 0x6a2370
mov eax, dword [ebp + 8]
movzx edx, byte [eax + ecx]
mov eax, ecx
not eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
cmp esi, 1
adc esi, 0
nop word cs:[eax + eax]
lea eax, [esi - 1]
cmp eax, 0xfffe
ja 0x6a2370
cmp dl, byte [edi + esi]
jne 0x6a2370
lea eax, [ecx + esi]
inc eax
inc esi
cmp eax, dword [esp + 0x40]
jb 0x6a2490
mov eax, dword [esp + 0x20]
jmp 0x6a2370
mov edx, ebx
jmp 0x6a23b5
add esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
inc ecx
cmp ecx, dword [esp + 0x98]
je 0x6a28d0
lea eax, [esi + 3]
mov edx, 0
cmp eax, ebx
ja 0x6a24f7
movzx edx, byte [esi + edi + 2]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
movzx eax, word [eax + ecx*2]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
mov eax, esi
and eax, 0x7fff
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
shl esi, 5
and esi, 0x7fe0
xor esi, edx
mov dword [esp + 0xb0], esi
mov dword [ecx + eax*4], esi
mov edx, dword [esp + 0xa4]
mov esi, dword [esp + 0xb0]
mov edi, dword [edx + esi*4]
mov ebx, eax
cmp edi, 0xffffffff
je 0x6a2555
cmp dword [ecx + edi*4], esi
cmovne edi, eax
mov ebx, edi
mov ecx, dword [esp + 0xa8]
mov word [ecx + eax*2], bx
mov dword [esp + 8], eax
mov dword [edx + esi*4], eax
mov edi, dword [esp + 0xc4]
mov eax, dword [esp + 0x24]
lea edx, [eax - 1]
and edx, 0x7fff
movzx esi, word [edi + edx*2]
lea edx, [esi - 1]
cmp esi, 2
mov ecx, 0
cmovb edx, ecx
lea esi, [eax + edx]
inc esi
mov ebx, dword [esp + 0x40]
cmp esi, ebx
jae 0x6a25e0
mov dword [esp + 0x50], edi
mov edi, dword [ebp + 8]
mov ecx, ebx
movzx ebx, byte [edi + eax]
mov edi, eax
not edi
add edi, ecx
mov eax, dword [esp + 8]
cmp edx, 0xfffe
ja 0x6a25ca
mov ecx, dword [ebp + 8]
cmp bl, byte [ecx + esi]
jne 0x6a25ca
inc edx
inc esi
cmp esi, dword [esp + 0x40]
jb 0x6a25b0
mov edx, edi
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x50]
jmp 0x6a25e4
mov eax, dword [esp + 8]
mov word [edi + eax*2], dx
add edx, 0xfd
movzx ecx, dl
xor ecx, dword [esp + 0xb0]
mov dword [esp + 0xc0], ecx
mov edi, dword [esp + 0xbc]
mov dword [edi + eax*4], ecx
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xc0]
mov esi, dword [ecx + edx*4]
cmp esi, 0xffffffff
je 0x6a2630
cmp dword [edi + esi*4], edx
cmovne esi, eax
jmp 0x6a2632
mov esi, eax
mov edi, dword [esp + 0xb8]
mov word [edi + eax*2], si
mov dword [ecx + edx*4], eax
mov esi, dword [esp + 0x24]
lea eax, [esi + 1]
mov edi, dword [esp + 0x20]
cmp di, 2
mov dword [esp + 0x28], eax
jbe 0x6a28a0
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd0]
lea eax, [esp + 0x20d8]
push eax
lea eax, [esp + 0x25c]
push eax
push 0
push edi
push ebx
push esi
mov edi, dword [ebp + 8]
push edi
lea eax, [esp + 0xc0]
push eax
call fcn.006aa110
add esp, 0x20
movzx edx, word [esp + 0x258]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0xec]
push eax
push esi
call fcn.006a92f0
add esp, 8
mov eax, dword [esp + 0xac]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x168]
add eax, esi
mov ecx, 1
jmp 0x6a2788
mov esi, dword [esp + 0x10]
mov word [esi + ecx*2], dx
add edx, 0xfd
movzx edx, dl
xor edx, dword [esp + 0xb0]
mov dword [esp + 0xc0], edx
mov esi, dword [esp + 0xc8]
mov dword [esi + ecx*4], edx
mov edx, dword [esp + 0xc0]
mov edi, dword [esp + 0x14]
mov edi, dword [edi + edx*4]
cmp edi, 0xffffffff
je 0x6a2890
cmp dword [esi + edi*4], edx
cmovne edi, ecx
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x6c]
mov word [ebx + ecx*2], di
mov edi, dword [esp + 0x14]
mov dword [edi + edx*4], ecx
mov ecx, dword [esp + 0x1c]
inc ecx
inc eax
inc dword [esp + 0x28]
cmp ecx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x40]
je 0x6a24d0
mov dword [esp + 0x50], eax
lea eax, [ecx + esi]
mov dword [esp + 0x1c], ecx
add ecx, esi
add ecx, 3
xor edx, edx
cmp ecx, ebx
mov ecx, eax
ja 0x6a27a5
movzx edx, byte [ecx + edi + 2]
mov dword [esp + 8], ecx
and ecx, 0x7fff
mov edi, dword [esp + 0xb0]
shl edi, 5
and edi, 0x7fe0
xor edi, edx
mov dword [esp + 0xb0], edi
mov esi, dword [esp + 0x18]
mov dword [esi + ecx*4], edi
mov edx, dword [esp + 0xb0]
mov edi, dword [esp + 0x80]
mov edi, dword [edi + edx*4]
mov ebx, ecx
cmp edi, 0xffffffff
je 0x6a27ef
cmp dword [esi + edi*4], edx
cmovne edi, ecx
mov ebx, edi
mov esi, dword [esp + 0x30]
mov word [esi + ecx*2], bx
mov esi, dword [esp + 0x80]
mov dword [esi + edx*4], ecx
mov eax, dword [esp + 8]
lea edx, [eax - 1]
and edx, 0x7fff
mov esi, dword [esp + 0x10]
movzx edi, word [esi + edx*2]
lea edx, [edi - 1]
cmp edi, 2
mov ebx, 0
cmovb edx, ebx
lea ebx, [eax + edx]
inc ebx
mov esi, dword [esp + 0x40]
cmp ebx, esi
jae 0x6a2710
mov ebx, esi
mov edx, dword [ebp + 8]
movzx ebx, byte [edx + eax]
not eax
add eax, esi
mov dword [esp + 8], eax
cmp edi, 1
adc edi, 0
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
nop word cs:[eax + eax]
lea edx, [edi - 1]
cmp edx, 0xfffe
ja 0x6a2710
cmp bl, byte [eax + edi]
jne 0x6a2710
lea edx, [esi + edi]
inc edx
inc edi
cmp edx, dword [esp + 0x40]
jb 0x6a2860
mov edx, dword [esp + 8]
jmp 0x6a2710
mov edi, ecx
jmp 0x6a2756
mov edi, dword [ebp + 8]
movzx ecx, byte [edi + esi]
xor edx, edx
lea eax, [esp + 0xec]
push eax
push esi
call fcn.006a92f0
add esp, 8
mov esi, dword [esp + 0x28]
jmp 0x6a24d4
mov esi, dword [esp + 0xf4]
lea ecx, [esp + 0xec]
xor edx, edx
lea eax, [esp + 0x258]
push eax
lea eax, [esp + 0x20dc]
push eax
mov dword [esp + 0x58], esi
push esi
call fcn.006a00f0
add esp, 0xc
movdqa xmm1, xmm0
addsd xmm1, qword [0x704550]
mov eax, dword [esp + 0x1ac]
cmp dword [eax + 4], 0
movsd qword [esp + 0xc8], xmm1
jne 0x6a2933
cmp dword [eax], 0
je 0x6a296d
movsd xmm0, qword [esp + 0x170]
ucomisd xmm0, xmm1
jbe 0x6a296d
push 2
call dword [0x71401c]
add esp, 4
cvttsd2si ecx, qword [esp + 0xc8]
sub esp, 0x10
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x170]
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.006aafa0
movsd xmm1, qword [esp + 0xd8]
add esp, 0x10
movsd xmm0, qword [esp + 0x170]
ucomisd xmm0, xmm1
jbe 0x6a3101
mov edi, dword [esp + 0x50]
lea eax, [edi + 0x11f]
mov dword [esp + 0xd0], eax
mov ecx, 0x38e38e39
mul ecx
shr edx, 6
mov dword [esp + 0xdc], edx
push dword [esp + 0x110]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x114]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x120]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x124]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x128]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x12c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x130]
call sub.msvcrt.dll_free
add esp, 4
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x11c], eax
lea esi, [edi + edi]
push esi
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x110], eax
push esi
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x114], eax
lea eax, [edi*4]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov ebx, eax
mov dword [esp + 0x120], eax
push esi
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x124], eax
push esi
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0xdc]
shl eax, 7
lea eax, [eax + eax*8]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x98], eax
mov dword [esp + 0x12c], eax
lea eax, [edi*4 + 0x7c]
and eax, 0xffffff80
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x130], eax
cmp dword [esp + 0x30], 0
je 0x6a66e9
cmp dword [esp + 0x24], 0
je 0x6a66e9
test ebx, ebx
je 0x6a66e9
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x10]
je 0x6a66e9
test ecx, ecx
je 0x6a66e9
cmp dword [esp + 0x98], 0
je 0x6a66e9
test eax, eax
je 0x6a66e9
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x118], ecx
test ecx, ecx
je 0x6a3050
mov edx, ebx
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0xfc]
mov edi, dword [esp + 0x100]
mov eax, dword [esp + 0x104]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov dword [esp + 0x18], 0
cmp dword [esp + 0x50], 0x3b
mov esi, dword [esp + 0x14]
ja 0x6a2d5a
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x18]
sub eax, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
lea eax, [eax + ebx*2]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
lea eax, [esi + ebx*2]
mov dword [esp + 0x14], eax
lea eax, [edi + ebx*2]
mov dword [esp + 0x1c], eax
lea eax, [edx + ebx*4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
lea eax, [eax + ebx*4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
lea eax, [eax + ebx*2]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
lea esi, [eax + ebx*2]
mov eax, dword [esp + 0x30]
lea eax, [eax + ebx*2]
mov edx, dword [esp + 0x6c]
lea edx, [edx + ebx*2]
nop dword [eax]
movzx ebx, word [edx + ecx*2]
mov word [eax + ecx*2], bx
movzx ebx, word [esi + ecx*2]
mov edi, dword [esp + 0x24]
mov word [edi + ecx*2], bx
mov edi, dword [esp + 0x20]
mov ebx, dword [edi + ecx*4]
mov edi, dword [esp + 0x28]
mov dword [edi + ecx*4], ebx
mov edi, dword [esp + 0x1c]
movzx ebx, word [edi + ecx*2]
mov edi, dword [esp + 0x14]
mov word [edi + ecx*2], bx
mov edi, dword [esp + 0x10]
movzx ebx, word [edi + ecx*2]
mov edi, dword [esp + 0x80]
mov word [edi + ecx*2], bx
inc ecx
cmp dword [esp + 8], ecx
jne 0x6a2be0
cmp dword [esp + 0xd0], 0x120
jb 0x6a2d00
mov eax, dword [esp + 0xdc]
shl eax, 5
lea ecx, [eax + eax*8]
mov edx, dword [esp + 0x108]
cmp ecx, 1
adc ecx, 0
xor esi, esi
cmp ecx, 8
jb 0x6a2ca1
mov edi, dword [esp + 0x98]
mov eax, edi
sub eax, edx
cmp eax, 0x20
jb 0x6a2ca1
mov esi, ecx
and esi, 0xffffffe0
xor eax, eax
nop word cs:[eax + eax]
movupd xmm0, xmmword [edx + eax*4]
movupd xmm1, xmmword [edx + eax*4 + 0x10]
movupd xmmword [edi + eax*4], xmm0
movupd xmmword [edi + eax*4 + 0x10], xmm1
add eax, 8
cmp esi, eax
jne 0x6a2c80
cmp ecx, esi
je 0x6a2d00
mov edi, esi
test cl, 1
je 0x6a2cba
mov eax, dword [edx + esi*4]
mov edi, dword [esp + 0x98]
mov dword [edi + esi*4], eax
mov edi, esi
or edi, 1
not esi
add esi, ecx
cmp esi, 3
mov esi, dword [esp + 0x98]
jb 0x6a2d00
nop word [eax + eax]
mov eax, dword [edx + edi*4]
mov dword [esi + edi*4], eax
mov eax, dword [edx + edi*4 + 4]
mov dword [esi + edi*4 + 4], eax
mov eax, dword [edx + edi*4 + 8]
mov dword [esi + edi*4 + 8], eax
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esi + edi*4 + 0xc], eax
add edi, 4
cmp ecx, edi
jne 0x6a2cd0
nop word cs:[eax + eax]
mov eax, dword [esp + 0x50]
lea ecx, [eax + 0x1f]
and ecx, 0xffffffe0
mov edi, dword [esp + 0x170]
je 0x6a3050
mov edx, dword [esp + 0x10c]
mov eax, edi
sub eax, edx
cmp eax, 0x20
jae 0x6a302c
xor eax, eax
nop dword [eax]
mov esi, dword [edx + eax*4]
mov dword [edi + eax*4], esi
mov esi, dword [edx + eax*4 + 4]
mov dword [edi + eax*4 + 4], esi
mov esi, dword [edx + eax*4 + 8]
mov dword [edi + eax*4 + 8], esi
mov esi, dword [edx + eax*4 + 0xc]
mov dword [edi + eax*4 + 0xc], esi
add eax, 4
cmp ecx, eax
jne 0x6a2d30
jmp 0x6a3050
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, esi
sub eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x6c]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, edi
sub eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, esi
sub eax, dword [esp + 0x24]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x24]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x6c]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, edi
sub eax, dword [esp + 0x24]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x24]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x10]
sub eax, esi
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, esi
sub eax, dword [esp + 0x6c]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, esi
sub eax, dword [esp + 0x34]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, esi
sub eax, edi
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x1c]
sub eax, esi
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x6c]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x10]
sub eax, edi
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x18], 0
cmp eax, 8
jb 0x6a2b72
mov eax, edx
sub eax, ebx
mov dword [esp + 0x18], 0
cmp eax, 0x10
jb 0x6a2b72
mov eax, dword [esp + 0x50]
and eax, 0xfffffffc
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 8], edi
mov esi, dword [esp + 0x10]
mov edi, ebx
mov ebx, dword [esp + 0x1c]
nop word cs:[eax + eax]
mov edx, dword [esp + 0x6c]
movsd xmm0, qword [edx + eax*2]
mov edx, dword [esp + 0x30]
movsd qword [edx + eax*2], xmm0
mov edx, dword [esp + 0x34]
movsd xmm0, qword [edx + eax*2]
mov edx, dword [esp + 0x24]
movsd qword [edx + eax*2], xmm0
movups xmm0, xmmword [edi + eax*4]
mov edx, dword [esp + 0x80]
movups xmmword [edx + eax*4], xmm0
mov edx, dword [esp + 8]
movsd xmm0, qword [edx + eax*2]
mov edx, dword [esp + 0x14]
movsd qword [edx + eax*2], xmm0
movsd xmm0, qword [ebx + eax*2]
movsd qword [esi + eax*2], xmm0
add eax, 4
cmp dword [esp + 0x18], eax
jne 0x6a2fb0
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x50], eax
mov edx, dword [esp + 0x80]
mov ebx, edi
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x14]
jne 0x6a2b72
jmp 0x6a2c2c
xor eax, eax
nop
movupd xmm0, xmmword [edx + eax*4]
movupd xmm1, xmmword [edx + eax*4 + 0x10]
movupd xmmword [edi + eax*4], xmm0
movupd xmmword [edi + eax*4 + 0x10], xmm1
add eax, 8
cmp ecx, eax
jne 0x6a3030
nop dword [eax]
push 0x480
lea eax, [esp + 0x2dc]
push eax
lea eax, [esp + 0x11e0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x7d8]
movups xmm0, xmmword [eax - 0x80]
movupd xmm1, xmmword [eax - 0x70]
lea ecx, [esp + 0x1658]
movups xmmword [ecx], xmm0
movupd xmmword [ecx + 0x10], xmm1
movups xmm0, xmmword [eax - 0x60]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [eax - 0x50]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [eax - 0x40]
movups xmmword [ecx + 0x40], xmm0
movups xmm0, xmmword [eax - 0x30]
movups xmmword [ecx + 0x50], xmm0
movups xmm0, xmmword [eax - 0x20]
movups xmmword [ecx + 0x60], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x70], xmm0
push 0x900
push eax
lea eax, [esp + 0x16e0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x100
lea eax, [esp + 0x10dc]
push eax
lea eax, [esp + 0x1fe0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0xc8]
movsd qword [esp + 0x170], xmm0
push 0x480
lea esi, [esp + 0x2dc]
push esi
lea eax, [esp + 0x2560]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x7d8]
movups xmm0, xmmword [eax - 0x80]
movdqu xmm1, xmmword [eax - 0x70]
lea ecx, [esp + 0x29d8]
movups xmmword [ecx], xmm0
movdqu xmmword [ecx + 0x10], xmm1
movups xmm0, xmmword [eax - 0x60]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [eax - 0x50]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [eax - 0x40]
movups xmmword [ecx + 0x40], xmm0
movups xmm0, xmmword [eax - 0x30]
movups xmmword [ecx + 0x50], xmm0
movups xmm0, xmmword [eax - 0x20]
movups xmmword [ecx + 0x60], xmm0
movdqu xmm0, xmmword [eax - 0x10]
movdqu xmmword [ecx + 0x70], xmm0
push 0x900
push eax
lea eax, [esp + 0x2a60]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x100
lea eax, [esp + 0x10dc]
push eax
lea eax, [esp + 0x3360]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x500
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x50]
test eax, eax
je 0x6a3250
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf0]
mov dword [esp + 8], edx
xor edx, edx
jmp 0x6a31f0
lea esi, [esp + edi*4]
add esi, 0x2d8
inc dword [esi]
inc edx
cmp eax, edx
je 0x6a3250
mov esi, dword [esp + 8]
movzx esi, word [esi + edx*2]
movzx edi, word [ecx + edx*2]
test esi, esi
je 0x6a31e0
mov edi, dword [edi*4 + 0x707dc8]
inc dword [esp + edi*4 + 0x2d8]
mov edi, esi
dec esi
cmp di, 5
jb 0x6a323a
bsr ebx, esi
xor ebx, 0x1f
mov al, 0x1e
sub al, bl
movzx eax, al
mov edi, ecx
xor ecx, ecx
bt esi, eax
mov eax, dword [esp + 0x50]
setb cl
lea esi, [ecx + ebx*2]
mov ecx, edi
xor esi, 0x3e
lea esi, [esp + esi*4]
add esi, 0x758
jmp 0x6a31e9
mov dword [esp + 0x6d8], 1
pxor xmm0, xmm0
mov eax, 0x1c
pxor xmm1, xmm1
nop dword [eax + eax]
movdqu xmm2, xmmword [esp + eax*4 + 0x268]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x278]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + eax*4 + 0x288]
movdqu xmm3, xmmword [esp + eax*4 + 0x298]
movdqu xmm4, xmmword [esp + eax*4 + 0x2a8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm2, xmmword [esp + eax*4 + 0x2b8]
paddd xmm2, xmm3
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x2c8]
paddd xmm0, xmm4
movdqu xmm1, xmmword [esp + eax*4 + 0x2d8]
paddd xmm1, xmm2
add eax, 0x20
cmp eax, 0x13c
jne 0x6a3270
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x120
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x230]
movsd xmm3, qword [esp + 0x230]
mulsd xmm3, qword [0x7044c8]
mov esi, 0xa0
mov edi, dword [ebp + 8]
movsd qword [esp + 8], xmm3
jmp 0x6a339c
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x2d8], xmm1
inc esi
cmp esi, 0x1c0
je 0x6a3400
mov eax, dword [esp + esi*4 + 0x58]
movapd xmm0, xmm3
test eax, eax
je 0x6a3360
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x228]
movsd xmm0, qword [esp + 0x228]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a3360
movdqu xmm0, xmmword [esp + 0x758]
movdqu xmm1, xmmword [esp + 0x768]
movdqu xmm2, xmmword [esp + 0x778]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x788]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x798]
movdqu xmm3, xmmword [esp + 0x7a8]
movdqu xmm4, xmmword [esp + 0x7b8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm1, xmmword [esp + 0x7c8]
paddd xmm1, xmm3
paddd xmm1, xmm0
paddd xmm1, xmm4
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x20
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x220]
movsd xmm3, qword [esp + 0x220]
mulsd xmm3, qword [0x7044c8]
mov esi, 0x1c0
movsd qword [esp + 8], xmm3
jmp 0x6a350c
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x2d8], xmm1
inc esi
cmp esi, 0x1e0
je 0x6a3570
mov eax, dword [esp + esi*4 + 0x58]
movapd xmm0, xmm3
test eax, eax
je 0x6a34d0
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x218]
movsd xmm0, qword [esp + 0x218]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a34d0
cmp dword [esp + 0x18c], 0xffffffff
je 0x6a3f10
mov eax, 4
nop word cs:[eax + eax]
movdqu xmm0, xmmword [esp + eax*4 + 0x2c8]
movdqa xmm2, xmm0
pxor xmm4, xmm4
punpckhdq xmm2, xmm4
movdqa xmm6, xmmword [0x7044b0]
por xmm2, xmm6
subpd xmm2, xmm6
punpckldq xmm0, xmm4
por xmm0, xmm6
subpd xmm0, xmm6
movdqu xmm3, xmmword [esp + eax*4 + 0x2548]
movdqa xmm1, xmm3
punpckldq xmm1, xmm4
por xmm1, xmm6
subpd xmm1, xmm6
punpckhdq xmm3, xmm4
por xmm3, xmm6
subpd xmm3, xmm6
movapd xmm5, xmmword [0x704560]
mulpd xmm3, xmm5
addpd xmm3, xmm2
mulpd xmm1, xmm5
addpd xmm1, xmm0
cvttpd2dq xmm0, xmm3
movapd xmm2, xmm0
movapd xmm7, xmmword [0x704570]
subpd xmm3, xmm7
cvttpd2dq xmm3, xmm3
psrad xmm2, 0x1f
andpd xmm3, xmm2
cvttpd2dq xmm2, xmm1
orpd xmm3, xmm0
movapd xmm0, xmm2
psrad xmm0, 0x1f
subpd xmm1, xmm7
cvttpd2dq xmm4, xmm1
andpd xmm4, xmm0
movupd xmm1, xmmword [esp + eax*4 + 0x2d8]
orpd xmm4, xmm2
movupd xmm0, xmmword [esp + eax*4 + 0x2558]
unpcklpd xmm4, xmm3
movupd xmmword [esp + eax*4 + 0x2c8], xmm4
movapd xmm3, xmm1
xorpd xmm4, xmm4
unpckhps xmm3, xmm4
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm1, xmm4
orpd xmm1, xmm6
subpd xmm1, xmm6
movapd xmm2, xmm0
unpcklps xmm2, xmm4
orpd xmm2, xmm6
subpd xmm2, xmm6
unpckhps xmm0, xmm4
orpd xmm0, xmm6
subpd xmm0, xmm6
mulpd xmm0, xmm5
addpd xmm0, xmm3
mulpd xmm2, xmm5
addpd xmm2, xmm1
cvttpd2dq xmm1, xmm0
movapd xmm3, xmm1
subpd xmm0, xmm7
cvttpd2dq xmm0, xmm0
psrad xmm3, 0x1f
andpd xmm0, xmm3
cvttpd2dq xmm3, xmm2
orpd xmm0, xmm1
movapd xmm1, xmm3
psrad xmm1, 0x1f
subpd xmm2, xmm7
cvttpd2dq xmm2, xmm2
andpd xmm2, xmm1
orpd xmm2, xmm3
unpcklpd xmm2, xmm0
movupd xmmword [esp + eax*4 + 0x2d8], xmm2
add eax, 8
cmp eax, 0x124
jne 0x6a3590
movupd xmm1, xmmword [esp + 0x758]
xorpd xmm0, xmm0
movapd xmm3, xmm1
unpckhps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
movupd xmm4, xmmword [esp + 0x29d8]
movapd xmm2, xmm4
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
movapd xmm7, xmmword [0x704560]
mulpd xmm4, xmm7
addpd xmm4, xmm3
mulpd xmm2, xmm7
addpd xmm2, xmm1
cvttpd2dq xmm1, xmm4
movapd xmm3, xmm1
psrad xmm3, 0x1f
movapd xmm5, xmmword [0x704570]
subpd xmm4, xmm5
cvttpd2dq xmm4, xmm4
andpd xmm4, xmm3
orpd xmm4, xmm1
cvttpd2dq xmm1, xmm2
movapd xmm3, xmm1
subpd xmm2, xmm5
cvttpd2dq xmm5, xmm2
psrad xmm3, 0x1f
andpd xmm5, xmm3
movupd xmm2, xmmword [esp + 0x768]
orpd xmm5, xmm1
movupd xmm1, xmmword [esp + 0x29e8]
unpcklpd xmm5, xmm4
movupd xmmword [esp + 0x758], xmm5
movapd xmm4, xmm2
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
movapd xmm3, xmm1
unpcklps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpckhps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
mulpd xmm1, xmm7
addpd xmm1, xmm4
mulpd xmm3, xmm7
addpd xmm3, xmm2
cvttpd2dq xmm2, xmm1
movapd xmm4, xmm2
psrad xmm4, 0x1f
movapd xmm5, xmmword [0x704570]
subpd xmm1, xmm5
cvttpd2dq xmm1, xmm1
andpd xmm1, xmm4
orpd xmm1, xmm2
cvttpd2dq xmm2, xmm3
movapd xmm4, xmm2
subpd xmm3, xmm5
cvttpd2dq xmm3, xmm3
psrad xmm4, 0x1f
andpd xmm3, xmm4
orpd xmm3, xmm2
unpcklpd xmm3, xmm1
movupd xmmword [esp + 0x768], xmm3
movupd xmm2, xmmword [esp + 0x778]
movapd xmm3, xmm2
unpckhps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
movupd xmm4, xmmword [esp + 0x29f8]
movapd xmm1, xmm4
unpcklps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
mulpd xmm4, xmm7
addpd xmm4, xmm3
mulpd xmm1, xmm7
addpd xmm1, xmm2
cvttpd2dq xmm2, xmm4
movapd xmm3, xmm2
psrad xmm3, 0x1f
subpd xmm4, xmm5
cvttpd2dq xmm4, xmm4
andpd xmm4, xmm3
orpd xmm4, xmm2
cvttpd2dq xmm2, xmm1
movapd xmm3, xmm2
subpd xmm1, xmm5
cvttpd2dq xmm1, xmm1
psrad xmm3, 0x1f
andpd xmm1, xmm3
orpd xmm1, xmm2
unpcklpd xmm1, xmm4
movupd xmmword [esp + 0x778], xmm1
movupd xmm2, xmmword [esp + 0x788]
movapd xmm3, xmm2
unpckhps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
movupd xmm4, xmmword [esp + 0x2a08]
movapd xmm1, xmm4
unpcklps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
mulpd xmm4, xmm7
addpd xmm4, xmm3
mulpd xmm1, xmm7
addpd xmm1, xmm2
cvttpd2dq xmm2, xmm4
movapd xmm3, xmm2
psrad xmm3, 0x1f
subpd xmm4, xmm5
cvttpd2dq xmm4, xmm4
andpd xmm4, xmm3
orpd xmm4, xmm2
cvttpd2dq xmm2, xmm1
movapd xmm3, xmm2
subpd xmm1, xmm5
cvttpd2dq xmm1, xmm1
psrad xmm3, 0x1f
andpd xmm1, xmm3
orpd xmm1, xmm2
unpcklpd xmm1, xmm4
movupd xmmword [esp + 0x788], xmm1
movupd xmm2, xmmword [esp + 0x798]
movapd xmm3, xmm2
unpckhps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
movupd xmm4, xmmword [esp + 0x2a18]
movapd xmm1, xmm4
unpcklps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
mulpd xmm4, xmm7
addpd xmm4, xmm3
mulpd xmm1, xmm7
addpd xmm1, xmm2
cvttpd2dq xmm2, xmm4
movapd xmm3, xmm2
psrad xmm3, 0x1f
subpd xmm4, xmm5
cvttpd2dq xmm4, xmm4
andpd xmm4, xmm3
orpd xmm4, xmm2
cvttpd2dq xmm2, xmm1
movapd xmm3, xmm2
subpd xmm1, xmm5
cvttpd2dq xmm1, xmm1
psrad xmm3, 0x1f
andpd xmm1, xmm3
orpd xmm1, xmm2
unpcklpd xmm1, xmm4
movupd xmmword [esp + 0x798], xmm1
movupd xmm2, xmmword [esp + 0x7a8]
movapd xmm3, xmm2
unpckhps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
movupd xmm4, xmmword [esp + 0x2a28]
movapd xmm1, xmm4
unpcklps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
mulpd xmm4, xmm7
addpd xmm4, xmm3
mulpd xmm1, xmm7
addpd xmm1, xmm2
cvttpd2dq xmm2, xmm4
movapd xmm3, xmm2
psrad xmm3, 0x1f
subpd xmm4, xmm5
cvttpd2dq xmm4, xmm4
andpd xmm4, xmm3
orpd xmm4, xmm2
cvttpd2dq xmm2, xmm1
movapd xmm3, xmm2
subpd xmm1, xmm5
cvttpd2dq xmm1, xmm1
psrad xmm3, 0x1f
andpd xmm1, xmm3
orpd xmm1, xmm2
unpcklpd xmm1, xmm4
movupd xmmword [esp + 0x7a8], xmm1
movupd xmm2, xmmword [esp + 0x7b8]
movapd xmm3, xmm2
unpckhps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
movupd xmm4, xmmword [esp + 0x2a38]
movapd xmm1, xmm4
unpcklps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
mulpd xmm4, xmm7
addpd xmm4, xmm3
mulpd xmm1, xmm7
addpd xmm1, xmm2
cvttpd2dq xmm2, xmm4
movapd xmm3, xmm2
psrad xmm3, 0x1f
subpd xmm4, xmm5
cvttpd2dq xmm4, xmm4
andpd xmm4, xmm3
orpd xmm4, xmm2
cvttpd2dq xmm2, xmm1
movapd xmm3, xmm2
subpd xmm1, xmm5
cvttpd2dq xmm1, xmm1
psrad xmm3, 0x1f
andpd xmm1, xmm3
orpd xmm1, xmm2
unpcklpd xmm1, xmm4
movupd xmmword [esp + 0x7b8], xmm1
movupd xmm2, xmmword [esp + 0x7c8]
movapd xmm3, xmm2
unpckhps xmm3, xmm0
orpd xmm3, xmm6
subpd xmm3, xmm6
unpcklps xmm2, xmm0
orpd xmm2, xmm6
subpd xmm2, xmm6
movupd xmm4, xmmword [esp + 0x2a48]
movapd xmm1, xmm4
unpcklps xmm1, xmm0
orpd xmm1, xmm6
subpd xmm1, xmm6
unpckhps xmm4, xmm0
orpd xmm4, xmm6
subpd xmm4, xmm6
mulpd xmm4, xmm7
addpd xmm4, xmm3
mulpd xmm1, xmm7
addpd xmm1, xmm2
cvttpd2dq xmm2, xmm4
movapd xmm3, xmm2
psrad xmm3, 0x1f
subpd xmm4, xmm5
cvttpd2dq xmm4, xmm4
andpd xmm4, xmm3
orpd xmm4, xmm2
cvttpd2dq xmm2, xmm1
movapd xmm3, xmm2
subpd xmm1, xmm5
cvttpd2dq xmm1, xmm1
psrad xmm3, 0x1f
andpd xmm1, xmm3
orpd xmm1, xmm2
unpcklpd xmm1, xmm4
movupd xmmword [esp + 0x7c8], xmm1
mov dword [esp + 0x6d8], 1
mov eax, 0x1c
xorpd xmm1, xmm1
nop word cs:[eax + eax]
movdqu xmm2, xmmword [esp + eax*4 + 0x268]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x278]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + eax*4 + 0x288]
movdqu xmm3, xmmword [esp + eax*4 + 0x298]
movdqu xmm4, xmmword [esp + eax*4 + 0x2a8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm2, xmmword [esp + eax*4 + 0x2b8]
paddd xmm2, xmm3
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x2c8]
paddd xmm0, xmm4
movdqu xmm1, xmmword [esp + eax*4 + 0x2d8]
paddd xmm1, xmm2
add eax, 0x20
cmp eax, 0x13c
jne 0x6a3c20
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x120
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x210]
movsd xmm3, qword [esp + 0x210]
mulsd xmm3, qword [0x7044c8]
mov esi, 0xa0
movsd qword [esp + 8], xmm3
jmp 0x6a3d3c
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x2d8], xmm1
inc esi
cmp esi, 0x1c0
je 0x6a3da0
mov eax, dword [esp + esi*4 + 0x58]
movapd xmm0, xmm3
test eax, eax
je 0x6a3d00
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x208]
movsd xmm0, qword [esp + 0x208]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a3d00
movdqu xmm0, xmmword [esp + 0x758]
movdqu xmm1, xmmword [esp + 0x768]
movdqu xmm2, xmmword [esp + 0x778]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x788]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x798]
movdqu xmm3, xmmword [esp + 0x7a8]
movdqu xmm4, xmmword [esp + 0x7b8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm1, xmmword [esp + 0x7c8]
paddd xmm1, xmm3
paddd xmm1, xmm0
paddd xmm1, xmm4
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x20
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x200]
movsd xmm3, qword [esp + 0x200]
mulsd xmm3, qword [0x7044c8]
xor esi, esi
movsd qword [esp + 8], xmm3
jmp 0x6a3ea9
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x10d8], xmm1
inc esi
cmp esi, 0x20
je 0x6a3f10
mov eax, dword [esp + esi*4 + 0x758]
movapd xmm0, xmm3
test eax, eax
je 0x6a3e70
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x1f8]
movsd xmm0, qword [esp + 0x1f8]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a3e70
mov eax, dword [esp + 0x160]
cmp eax, 6
jb 0x6a127e
movsd xmm1, qword [esp + 0xc8]
ucomisd xmm1, qword [esp + 0x1d0]
jne 0x6a1287
jp 0x6a1287
push 0x480
lea eax, [esp + 0x11dc]
push eax
lea eax, [esp + 0x2e0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x1658]
movups xmm0, xmmword [ecx]
movdqu xmm1, xmmword [ecx + 0x10]
lea eax, [esp + 0x7d8]
movups xmmword [eax - 0x80], xmm0
movdqu xmmword [eax - 0x70], xmm1
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax - 0x60], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax - 0x50], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [eax - 0x40], xmm0
movups xmm0, xmmword [ecx + 0x50]
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [ecx + 0x60]
movups xmmword [eax - 0x20], xmm0
movdqu xmm0, xmmword [ecx + 0x70]
movdqu xmmword [eax - 0x10], xmm0
push 0x900
lea ecx, [esp + 0x16dc]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x100
lea eax, [esp + 0x1fdc]
push eax
lea eax, [esp + 0x10e0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor esi, esi
jmp 0x6a4043
movzx eax, cx
imul eax, eax, 0x9069
shr ecx, 0x10
add ecx, eax
movzx eax, dx
imul eax, eax, 0x4650
shr edx, 0x10
add edx, eax
mov dword [esp + 0x74], ecx
shl ecx, 0x10
mov dword [esp + 0x38], edx
add ecx, edx
mov eax, ecx
mov edx, 0x38e38e39
mul edx
shr edx, 1
and edx, 0xffffffe0
lea eax, [edx + edx*8]
sub ecx, eax
mov eax, dword [esp + ecx*4 + 0x2d8]
mov dword [esp + esi*4 + 0x2d8], eax
inc esi
cmp esi, 0x120
je 0x6a4090
mov ecx, dword [esp + 0x74]
movzx eax, cx
imul eax, eax, 0x9069
shr ecx, 0x10
add ecx, eax
mov edx, dword [esp + 0x38]
movzx eax, dx
imul eax, eax, 0x4650
shr edx, 0x10
add edx, eax
mov eax, ecx
shl eax, 0x10
add eax, edx
shr eax, 4
imul eax, eax, 0xaaaaaaab
cmp eax, 0x55555555
jbe 0x6a3ff0
mov dword [esp + 0x38], edx
mov dword [esp + 0x74], ecx
jmp 0x6a403a
xor eax, eax
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x38]
jmp 0x6a40a6
inc eax
cmp eax, 0x20
je 0x6a4110
movzx ecx, dx
imul ecx, ecx, 0x9069
shr edx, 0x10
add edx, ecx
movzx ecx, si
imul ecx, ecx, 0x4650
shr esi, 0x10
add esi, ecx
mov ecx, edx
shl ecx, 0x10
add ecx, esi
shr ecx, 4
imul ecx, ecx, 0xaaaaaaab
cmp ecx, 0x55555555
ja 0x6a40a0
movzx ecx, dx
imul ecx, ecx, 0x9069
shr edx, 0x10
add edx, ecx
movzx ecx, si
imul ecx, ecx, 0x4650
shr esi, 0x10
add esi, ecx
mov ecx, esi
and ecx, 0x1f
mov ecx, dword [esp + ecx*4 + 0x758]
mov dword [esp + eax*4 + 0x758], ecx
jmp 0x6a40a0
mov dword [esp + 0x38], esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x6d8], 1
pxor xmm0, xmm0
mov eax, 0x1c
pxor xmm1, xmm1
movdqu xmm2, xmmword [esp + eax*4 + 0x268]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x278]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + eax*4 + 0x288]
movdqu xmm3, xmmword [esp + eax*4 + 0x298]
movdqu xmm4, xmmword [esp + eax*4 + 0x2a8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm2, xmmword [esp + eax*4 + 0x2b8]
paddd xmm2, xmm3
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + eax*4 + 0x2c8]
paddd xmm0, xmm4
movdqu xmm1, xmmword [esp + eax*4 + 0x2d8]
paddd xmm1, xmm2
add eax, 0x20
cmp eax, 0x13c
jne 0x6a4130
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x120
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x1f0]
movsd xmm3, qword [esp + 0x1f0]
mulsd xmm3, qword [0x7044c8]
mov esi, 0xa0
movsd qword [esp + 8], xmm3
jmp 0x6a424c
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x2d8], xmm1
inc esi
cmp esi, 0x1c0
je 0x6a42b0
mov eax, dword [esp + esi*4 + 0x58]
movapd xmm0, xmm3
test eax, eax
je 0x6a4210
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x1e8]
movsd xmm0, qword [esp + 0x1e8]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a4210
movdqu xmm0, xmmword [esp + 0x758]
movdqu xmm1, xmmword [esp + 0x768]
movdqu xmm2, xmmword [esp + 0x778]
paddd xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x788]
paddd xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x798]
movdqu xmm3, xmmword [esp + 0x7a8]
movdqu xmm4, xmmword [esp + 0x7b8]
paddd xmm4, xmm1
paddd xmm4, xmm2
movdqu xmm1, xmmword [esp + 0x7c8]
paddd xmm1, xmm3
paddd xmm1, xmm0
paddd xmm1, xmm4
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
test eax, eax
mov ecx, 0x20
cmove eax, ecx
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
add esp, 8
fstp qword [esp + 0x1e0]
movsd xmm3, qword [esp + 0x1e0]
mulsd xmm3, qword [0x7044c8]
xor esi, esi
movsd qword [esp + 8], xmm3
jmp 0x6a43bd
movapd xmm1, xmm0
cmpltsd xmm1, qword [0x7045c0]
movsd xmm2, qword [0x7044d8]
cmpltsd xmm2, xmm0
andnpd xmm2, xmm0
andpd xmm2, xmm1
andnpd xmm1, xmm0
orpd xmm1, xmm2
movlpd qword [esp + esi*8 + 0x10d8], xmm1
inc esi
cmp esi, 0x20
je 0x6a1270
mov eax, dword [esp + esi*4 + 0x758]
movapd xmm0, xmm3
test eax, eax
je 0x6a4380
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00621450
movsd xmm3, qword [esp + 0x10]
add esp, 8
fstp qword [esp + 0x1d8]
movsd xmm0, qword [esp + 0x1d8]
mulsd xmm0, qword [0x7044d0]
addsd xmm0, xmm3
jmp 0x6a4380
push dword [esp + 0x7c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x70]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xec]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xf0]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xfc]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x100]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x104]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x108]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x10c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xa4]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xa8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xac]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xb4]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xb8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xbc]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xc4]
call sub.msvcrt.dll_free
add esp, 4
mov edi, dword [esp + 0x118]
test edi, edi
mov esi, 0
je 0x6a4562
mov eax, dword [esp + 0x114]
cmp word [eax + edi*2 - 2], 0
je 0x6a4550
mov eax, dword [esp + 0x110]
movzx esi, word [eax + edi*2 - 2]
jmp 0x6a4555
mov esi, 1
mov eax, dword [esp + 0x120]
add esi, dword [eax + edi*4 - 4]
sub esi, dword [eax]
mov eax, esi
mov ecx, 0x80008001
mul ecx
shr edx, 0xf
mov eax, esi
shl eax, 0x10
add eax, esi
neg eax
cmp eax, 0x10002
sbb edx, 0xffffffff
lea eax, [edx + edx*4]
shl esi, 3
lea eax, [esi + eax*8]
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
movapd xmmword [esp + 0x80], xmm0
cmp edi, 0x3e8
ja 0x6a45c1
lea ecx, [esp + 0x110]
xor edx, edx
push 1
push edi
call fcn.0069f7e0
add esp, 8
movapd xmmword [esp + 0x40], xmm0
lea ecx, [esp + 0x110]
xor edx, edx
lea eax, [esp + 0x11d8]
push eax
lea eax, [esp + 0x2dc]
push eax
push edi
call fcn.006a00f0
movapd xmm3, xmmword [esp + 0x4c]
add esp, 0xc
addsd xmm0, qword [0x704550]
movapd xmm2, xmmword [esp + 0x80]
movapd xmm1, xmm2
cmpltpd xmm1, xmm3
cmpltpd xmm2, xmm0
andpd xmm2, xmm1
movd eax, xmm2
test al, 1
jne 0x6a4627
minsd xmm3, xmm0
movapd xmmword [esp + 0x80], xmm3
test edi, edi
lea eax, [esp + 0x134]
je 0x6a4689
mov edx, dword [esp + 0x110]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x114]
mov dword [esp + 8], edx
xor esi, esi
mov edx, dword [esp + 0x120]
mov dword [esp + 0x50], edx
nop word cs:[eax + eax]
mov ecx, dword [esp + 0x40]
movzx ecx, word [ecx + esi*2]
mov edx, dword [esp + 8]
movzx edx, word [edx + esi*2]
push eax
mov ebx, dword [esp + 0x54]
push dword [ebx + esi*4]
mov ebx, eax
call fcn.006a92f0
mov eax, ebx
add esp, 8
inc esi
cmp edi, esi
jne 0x6a4660
mov edx, dword [esp + 0x180]
cmp edx, dword [esp + 0x78]
jae 0x6a46a7
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0xd8]
mov dword [ecx + edx*4], eax
mov esi, dword [esp + 0x1b0]
test esi, esi
mov edi, dword [ebp + 8]
je 0x6a0b50
push dword [esi]
call sub.msvcrt.dll_free
add esp, 4
push dword [esi + 4]
call sub.msvcrt.dll_free
add esp, 4
push dword [esi + 8]
call sub.msvcrt.dll_free
add esp, 4
push esi
call sub.msvcrt.dll_free
add esp, 4
jmp 0x6a0b50
cmp dword [esp + 0x78], 2
jb 0x6a48c0
cmp dword [esi + 0xc], 0
je 0x6a48c0
mov dword [esp + 0x2558], 0
mov dword [esp + 0x20d8], 0
lea edx, [esp + 0x134]
mov ecx, esi
lea eax, [esp + 0x20d8]
push eax
lea eax, [esp + 0x255c]
push eax
push dword [esi + 0x14]
call fcn.006aafc0
add esp, 0xc
mov edi, dword [esp + 0x20d8]
mov ebx, dword [esp + 0x2558]
mov eax, dword [esp + 0x144]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x28], eax
pxor xmm1, xmm1
xor esi, esi
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], edi
jmp 0x6a479a
movsd xmm1, qword [esp + 8]
addsd xmm1, xmm3
inc esi
add ebx, 4
mov edi, dword [esp + 0x10]
cmp esi, edi
ja 0x6a48c6
mov edx, 0
test esi, esi
je 0x6a47a6
mov edx, dword [ebx - 4]
cmp edi, esi
mov eax, ebx
lea ecx, [esp + 0x13c]
cmove eax, ecx
mov edi, dword [eax]
xor ecx, ecx
cmp edx, edi
je 0x6a47e3
mov eax, dword [esp + 0x28]
cmp word [eax + edi*2 - 2], 0
je 0x6a47d3
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + edi*2 - 2]
jmp 0x6a47d8
mov ecx, 1
mov eax, dword [esp + 0x1c]
add ecx, dword [eax + edi*4 - 4]
sub ecx, dword [eax + edx*4]
mov dword [esp + 0x40], edx
movq qword [esp + 8], xmm1
mov eax, ecx
mov edx, 0x80008001
mul edx
shr edx, 0xf
mov eax, ecx
shl eax, 0x10
add eax, ecx
neg eax
cmp eax, 0x10002
sbb edx, 0xffffffff
shl ecx, 3
lea eax, [edx + edx*4]
lea eax, [ecx + eax*8]
movd xmm0, eax
por xmm0, xmmword [0x7044b0]
subsd xmm0, qword [0x7044c0]
movapd xmmword [esp + 0x50], xmm0
cmp dword [esp + 0x14], 0x3e8
ja 0x6a484d
lea ecx, [esp + 0x134]
mov edx, dword [esp + 0x40]
push 1
push edi
call fcn.0069f7e0
add esp, 8
movapd xmmword [esp + 0x80], xmm0
lea ecx, [esp + 0x134]
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x11d8]
push eax
lea eax, [esp + 0x2dc]
push eax
push edi
call fcn.006a00f0
movapd xmm4, xmmword [esp + 0x8c]
add esp, 0xc
addsd xmm0, qword [0x704550]
movapd xmm3, xmmword [esp + 0x50]
movapd xmm1, xmm3
cmpltpd xmm1, xmm4
movapd xmm2, xmm3
cmpltpd xmm2, xmm0
andpd xmm2, xmm1
movd eax, xmm2
test al, 1
jne 0x6a4780
minsd xmm4, xmm0
movapd xmm3, xmm4
jmp 0x6a4780
mov esi, dword [esp + 0x78]
jmp 0x6a48fd
movsd xmm0, qword [esp + 0x190]
ucomisd xmm0, xmm1
mov edx, dword [esp + 0x24]
mov eax, edx
mov ecx, dword [esp + 0xd8]
cmova eax, ecx
mov esi, dword [esp + 0x78]
cmova esi, edi
cmova ecx, edx
mov dword [esp + 0xd8], ecx
push eax
call sub.msvcrt.dll_free
add esp, 4
xor edx, edx
mov dword [esp + 0x78], esi
jmp 0x6a49ad
mov ecx, dword [esp + 0xd4]
mov edx, 2
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [esp + 0xa4]
push edi
push eax
push dword [esp + 0x54]
call 0x6a66f0
add esp, 0x1c
push dword [esp + 0x2558]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x255c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2568]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x256c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2570]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2574]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x2578]
call sub.msvcrt.dll_free
add esp, 4
mov edx, dword [esp + 0xdc]
inc edx
mov esi, dword [esp + 0x78]
cmp edx, esi
ja 0x6a665a
mov edi, 0
test edx, edx
mov eax, dword [esp + 0xd8]
je 0x6a49c1
mov edi, dword [eax + edx*4 - 4]
cmp dword [esp + 0x198], 0
setne cl
cmp edx, esi
mov dword [esp + 0xdc], edx
lea eax, [eax + edx*4]
lea edx, [esp + 0x13c]
cmove eax, edx
sete ch
mov edx, dword [eax]
xor esi, esi
cmp edi, edx
je 0x6a4a1d
mov eax, dword [esp + 0x138]
cmp word [eax + edx*2 - 2], 0
je 0x6a4a0a
mov eax, dword [esp + 0x134]
movzx esi, word [eax + edx*2 - 2]
jmp 0x6a4a0f
mov esi, 1
mov eax, dword [esp + 0x144]
add esi, dword [eax + edx*4 - 4]
sub esi, dword [eax + edi*4]
mov eax, esi
mov dword [esp + 0x98], edx
mov edx, 0x80008001
mul edx
mov dword [esp + 0xe0], edi
mov edi, edx
and cl, ch
movzx eax, cl
mov dword [esp + 0x3c], eax
shr edi, 0xf
mov eax, esi
shl eax, 0x10
add eax, esi
neg eax
cmp eax, 0x10002
sbb edi, 0xffffffff
shl esi, 3
lea ebx, [esp + 0x134]
mov ecx, ebx
mov edx, dword [esp + 0xe0]
push 1
push dword [esp + 0x9c]
call fcn.0069f7e0
add esp, 8
movsd qword [esp + 0x40], xmm0
mov ecx, ebx
mov edx, dword [esp + 0xe0]
lea eax, [esp + 0x11d8]
push eax
lea eax, [esp + 0x2dc]
push eax
push dword [esp + 0xa0]
call fcn.006a00f0
movsd xmm3, qword [esp + 0x4c]
add esp, 0xc
movapd xmm1, xmm0
addsd xmm1, qword [0x704550]
cmp dword [esp + 0x13c], 0x3e8
setb dl
movapd xmm0, xmm1
mulsd xmm0, qword [0x704580]
ucomisd xmm0, xmm3
setae al
lea ecx, [edi + edi*4]
mov edi, dword [esp + 0xe0]
lea ecx, [esi + ecx*8]
movd xmm2, ecx
por xmm2, xmmword [0x7044b0]
subsd xmm2, qword [0x7044c0]
cmp edi, dword [esp + 0x98]
jne 0x6a4b20
mov eax, dword [ebp + 0x10]
movzx ecx, byte [eax]
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebx]
test cl, cl
mov edx, dword [ebp + 0x14]
je 0x6a4bd1
mov edi, dword [ebp + 0x10]
jmp 0x6a6537
or dl, al
mov byte [esp + 0x158], dl
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x2560], 0
mov dword [esp + 0x2558], 0
mov dword [esp + 0x255c], 0
mov dword [esp + 0x2568], 0
mov eax, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2564], ecx
lea eax, [esp + 0x256c]
xorpd xmm0, xmm0
movupd xmmword [eax], xmm0
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
je 0x6a4bc0
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x98]
cmp word [eax + ecx*2 - 2], 0
movsd qword [esp + 0x160], xmm1
movapd xmmword [esp + 0x1c0], xmm2
je 0x6a4bfa
mov eax, dword [esp + 0x134]
movzx esi, word [eax + ecx*2 - 2]
jmp 0x6a4bff
xor esi, esi
ucomisd xmm3, xmm2
ja 0x6a6176
jmp 0x6a61a0
lea eax, [esi - 1]
test esi, eax
jne 0x6a4e45
test esi, esi
je 0x6a6516
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a6524
mov esi, 1
mov eax, dword [esp + 0x144]
mov edx, dword [eax + edi*4]
add esi, dword [eax + ecx*4 - 4]
mov edi, esi
sub esi, edx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x20], edx
lea eax, [esp + 0x20d8]
push eax
push 1
mov dword [esp + 0x48], edi
push edi
call fcn.006a9fb0
add esp, 0xc
lea eax, [esi*2 + 2]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov edi, eax
mov dword [esp + 0x34], esi
lea eax, [esi*4 + 4]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x6a66e9
mov dword [esp + 0x70], eax
test edi, edi
je 0x6a66e9
mov dword [esp + 0x7c], edi
push 0x40000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x80], eax
mov dword [esp + 0x11d8], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x11dc], eax
push 0x20000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x11e0], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x11f8], eax
push 0x40000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x11e8], eax
push 0x10000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x11ec], eax
push 0x20000
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x11f0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20e0], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20e4], eax
mov ecx, 3
xor eax, eax
movsd xmm0, qword [0x7044e0]
nop word cs:[eax + eax]
cmp ecx, 0x73
mov edx, 0xd
sbb edx, 0
add edx, dword [ecx*4 + 0x70824c]
xorps xmm1, xmm1
cvtsi2sd xmm1, edx
ucomisd xmm0, xmm1
mov edx, eax
cmova edx, ecx
minsd xmm1, xmm0
cmp ecx, 0x72
mov eax, 0xd
sbb eax, 0
add eax, dword [ecx*4 + 0x708250]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
ucomisd xmm1, xmm0
lea eax, [ecx + 1]
cmovbe eax, edx
minsd xmm0, xmm1
add ecx, 2
cmp ecx, 0x103
jne 0x6a4d50
mov ecx, 1
mov edx, 0xffffff98
movsd xmm0, qword [0x704588]
nop word [eax + eax]
mov esi, dword [edx + 0x70824c]
lea edi, [esi - 1]
bsr edi, edi
xor edi, 0xffffffe0
add edi, 0x2b
xorps xmm1, xmm1
cvtsi2sd xmm1, edi
ucomisd xmm0, xmm1
cmova ecx, esi
minsd xmm1, xmm0
mov esi, dword [edx + 0x708250]
lea edi, [esi - 1]
bsr edi, edi
xor edi, 0xffffffe0
add edi, 0x2b
xorps xmm0, xmm0
cvtsi2sd xmm0, edi
ucomisd xmm1, xmm0
cmova ecx, esi
minsd xmm0, xmm1
add edx, 8
jne 0x6a4dc0
test ecx, ecx
je 0x6a4e4c
lea edx, [ecx - 1]
bsr edx, edx
xor edx, 0xffffffe0
add edx, 0x1f
cmp ecx, 5
mov ecx, 0
cmovl edx, ecx
cmp eax, 0x73
mov ecx, 0xd
sbb ecx, 0
add ecx, edx
add ecx, dword [eax*4 + 0x70824c]
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
jmp 0x6a4e5f
mov eax, dword [edx]
jmp 0x6a6528
xor ecx, ecx
cmp eax, 0x90
setb cl
movsd xmm0, qword [ecx*8 + 0x704590]
movsd qword [esp + 0x168], xmm0
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x40]
je 0x6a5187
mov ebx, eax
push 0x40000
push 0xff
push dword [esp + 0x88]
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x1c]
add eax, 0x20
xor ecx, ecx
movdqa xmm0, xmmword [0x7044f0]
movdqa xmm3, xmmword [0x704500]
movdqa xmm4, xmmword [0x704510]
movdqa xmm5, xmmword [0x704520]
movdqa xmm6, xmmword [0x704530]
pcmpeqd xmm7, xmm7
mov edi, dword [esp + 0x28]
nop
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [edi + ecx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [eax + ecx*4 - 0x10], xmm7
movdqu xmmword [eax + ecx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [edi + ecx*2 + 0x10], xmm1
movdqu xmmword [eax + ecx*4 + 0x10], xmm7
movdqu xmmword [eax + ecx*4], xmm7
lea edx, [ecx + 0x10]
paddw xmm0, xmm6
mov ecx, edx
cmp edx, 0x8000
jne 0x6a4ed0
push 0x10000
push 0
push dword [esp + 0x18]
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x11f4], 0
push 0x40000
push 0xff
push dword [esp + 0x1c]
call sub.msvcrt.dll_memset
pcmpeqd xmm7, xmm7
movdqa xmm6, xmmword [0x704530]
movdqa xmm5, xmmword [0x704520]
movdqa xmm4, xmmword [0x704510]
movdqa xmm3, xmmword [0x704500]
add esp, 0xc
mov eax, dword [esp + 0x18]
add eax, 0x20
xor ecx, ecx
movdqa xmm0, xmmword [0x7044f0]
mov edi, dword [esp + 0x24]
nop word cs:[eax + eax]
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [edi + ecx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [eax + ecx*4 - 0x10], xmm7
movdqu xmmword [eax + ecx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [edi + ecx*2 + 0x10], xmm1
movdqu xmmword [eax + ecx*4 + 0x10], xmm7
movdqu xmmword [eax + ecx*4], xmm7
lea edx, [ecx + 0x10]
paddw xmm0, xmm6
mov ecx, edx
cmp edx, 0x8000
jne 0x6a4fa0
mov ecx, dword [esp + 0x20]
mov edx, ecx
sub edx, 0x8000
mov eax, 0
cmovb edx, eax
mov edi, ebx
movzx ebx, byte [ebx + edx]
mov dword [esp + 0x11e4], ebx
mov dword [esp + 0x74], edx
lea eax, [edx + 1]
cmp eax, esi
jae 0x6a5033
movzx eax, byte [edi + eax]
shl ebx, 5
xor ebx, eax
mov dword [esp + 0x11e4], ebx
movaps xmm0, xmmword [0x704540]
cmp dword [esp + 0x74], ecx
jae 0x6a51a4
mov dword [esp + 8], ebx
mov edx, dword [esp + 0x74]
add edi, edx
jmp 0x6a50a0
mov ecx, dword [esp + 0x10]
mov word [ecx + esi*2], ax
add eax, 0xfd
movzx ebx, al
xor ebx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov dword [ecx + esi*4], ebx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x6a5180
cmp dword [ecx + eax*4], ebx
cmovne eax, esi
mov ecx, dword [esp + 0x24]
mov word [ecx + esi*2], ax
mov eax, dword [esp + 0x14]
mov dword [eax + ebx*4], esi
inc edx
inc edi
cmp edx, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
je 0x6a518e
lea ecx, [edx + 3]
xor eax, eax
cmp ecx, esi
ja 0x6a50b2
mov eax, dword [esp + 0x50]
movzx eax, byte [edx + eax + 2]
mov esi, edx
and esi, 0x7fff
mov ebx, dword [esp + 8]
shl ebx, 5
and ebx, 0x7fe0
xor ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [eax + esi*4], ebx
mov eax, dword [esp + 0x80]
mov eax, dword [eax + ebx*4]
mov ecx, esi
cmp eax, 0xffffffff
je 0x6a50ed
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + eax*4], ebx
cmovne eax, esi
mov ecx, eax
mov eax, dword [esp + 0x28]
mov word [eax + esi*2], cx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], ebx
mov dword [eax + ebx*4], esi
lea eax, [edx - 1]
and eax, 0x7fff
mov ecx, dword [esp + 0x10]
movzx ebx, word [ecx + eax*2]
lea eax, [ebx - 1]
cmp ebx, 2
mov ecx, 0
cmovb eax, ecx
lea ecx, [edx + eax]
inc ecx
cmp ecx, dword [esp + 0x40]
jae 0x6a5050
mov eax, dword [esp + 0x50]
movzx ecx, byte [eax + edx]
mov eax, edx
not eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x30], eax
cmp ebx, 1
adc ebx, 0
nop dword [eax]
lea eax, [ebx - 1]
cmp eax, 0xfffe
ja 0x6a5050
cmp cl, byte [edi + ebx]
jne 0x6a5050
lea eax, [edx + ebx]
inc eax
inc ebx
cmp eax, dword [esp + 0x40]
jb 0x6a5150
mov eax, dword [esp + 0x30]
jmp 0x6a5050
mov eax, esi
jmp 0x6a5081
xor esi, esi
jmp 0x6a606b
mov eax, dword [esp + 8]
mov dword [esp + 0x11e4], eax
mov dword [esp + 0x11f4], ebx
mov edi, dword [esp + 0x50]
cmp dword [esp + 0x34], 0xffffffff
je 0x6a520c
mov eax, 1
cmp dword [esp + 0x34], 7
jbe 0x6a51ea
mov eax, dword [esp + 0x34]
and eax, 0xfffffff8
xor ecx, ecx
mov edx, dword [esp + 0x70]
nop word cs:[eax + eax]
movups xmmword [edx + ecx*4 + 4], xmm0
movups xmmword [edx + ecx*4 + 0x14], xmm0
add ecx, 8
cmp eax, ecx
jne 0x6a51d0
cmp dword [esp + 0x34], eax
je 0x6a520c
or eax, 1
mov ecx, esi
sub ecx, eax
sub ecx, dword [esp + 0x20]
inc ecx
mov edx, dword [esp + 0x70]
lea eax, [edx + eax*4]
xor edx, edx
nop dword [eax]
mov dword [eax + edx*4], 0x7149f2ca
inc edx
cmp ecx, edx
jne 0x6a5200
mov eax, dword [esp + 0x70]
mov dword [eax], 0
mov eax, dword [esp + 0x7c]
mov word [eax], 0
cmp esi, dword [esp + 0x20]
jbe 0x6a57d5
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x103]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x20dc]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x11e0]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x11d8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x11dc]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x11f8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x11f0]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x11e8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x11ec]
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x11e4]
mov edx, eax
jmp 0x6a52b4
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 8]
cmp edx, esi
mov edi, dword [esp + 0x50]
jae 0x6a57d5
lea eax, [edx + 3]
xor ecx, ecx
cmp eax, esi
ja 0x6a52c2
movzx ecx, byte [edx + edi + 2]
mov dword [esp + 0x10], edx
mov eax, edx
and eax, 0x7fff
shl ebx, 5
and ebx, 0x7fe0
xor ebx, ecx
mov dword [esp + 0x11e4], ebx
mov edi, ebx
mov ebx, dword [esp + 0x30]
mov dword [ebx + eax*4], edi
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + edi*4]
mov edx, eax
cmp ecx, 0xffffffff
je 0x6a52fe
cmp dword [ebx + ecx*4], edi
cmovne ecx, eax
mov edx, ecx
mov ecx, dword [esp + 0xc8]
mov word [ecx + eax*2], dx
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], eax
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x10]
lea ecx, [eax - 1]
and ecx, 0x7fff
mov edx, dword [esp + 0x14]
movzx edx, word [edx + ecx*2]
lea ecx, [edx - 1]
cmp edx, 2
mov edx, 0
cmovb ecx, edx
lea edx, [eax + ecx]
inc edx
cmp edx, esi
mov ebx, edi
jae 0x6a5390
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x50]
movzx ebx, byte [ebx + eax]
mov edi, esi
not eax
add eax, esi
nop word cs:[eax + eax]
cmp ecx, 0xfffe
ja 0x6a537b
mov edi, dword [esp + 0x50]
cmp bl, byte [edi + edx]
jne 0x6a537b
inc ecx
inc edx
cmp edx, dword [esp + 0x40]
jb 0x6a5360
mov ecx, eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x80]
jmp 0x6a5394
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
mov word [eax + edx*2], cx
mov eax, edx
add ecx, 0xfd
movzx ecx, cl
xor ecx, ebx
mov dword [esp + 0x11f4], ecx
mov edi, dword [esp + 0x6c]
mov dword [edi + edx*4], ecx
mov edx, dword [esp + 0x24]
mov edx, dword [edx + ecx*4]
cmp edx, 0xffffffff
je 0x6a53d0
cmp dword [edi + edx*4], ecx
cmovne edx, eax
jmp 0x6a53d2
mov edx, eax
mov eax, dword [esp + 0x10]
mov edi, eax
sub edi, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 8]
mov word [edi + esi*2], dx
lea edi, [eax + 1]
mov edx, dword [esp + 0x24]
mov dword [edx + ecx*4], esi
lea ecx, [eax + 0x205]
mov esi, dword [esp + 0x40]
cmp ecx, esi
jae 0x6a5610
cmp eax, dword [esp + 0xd0]
mov edx, dword [esp + 0x20]
jbe 0x6a57cc
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 8]
movzx eax, word [edx + eax*2]
cmp eax, 0x205
jb 0x6a5610
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x7efe]
and eax, 0x7fff
movzx eax, word [edx + eax*2]
cmp eax, 0x103
jb 0x6a5610
mov eax, dword [esp + 0x50]
add eax, ecx
xor ecx, ecx
movss xmm1, dword [0x7045a0]
mov edx, dword [esp + 0x1c]
jmp 0x6a54da
mov esi, dword [esp + 0x40]
mov ebx, esi
mov esi, dword [esp + 0x14]
mov word [esi + edx*2], cx
add ecx, 0xfd
movzx edi, cl
xor edi, dword [esp + 0x80]
mov esi, dword [esp + 0x6c]
mov dword [esi + edx*4], edi
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + edi*4]
cmp ecx, 0xffffffff
je 0x6a5600
cmp dword [esi + ecx*4], edi
cmovne ecx, edx
mov esi, dword [esp + 0x2c]
mov word [esi + edx*2], cx
mov ecx, dword [esp + 0x24]
mov dword [ecx + edi*4], edx
mov edx, dword [esp + 0x1c]
inc edx
mov ecx, dword [esp + 0x18]
inc ecx
inc eax
cmp ecx, 0x102
mov esi, ebx
mov ebx, dword [esp + 0x80]
je 0x6a5620
mov dword [esp + 0x18], ecx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
movss xmm0, dword [ecx + edx*4]
addss xmm0, xmm1
movss dword [ecx + edx*4 + 0x408], xmm0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], edx
mov word [ecx + edx*2 + 0x204], 0x102
lea edx, [edi + 4]
mov ecx, 0
cmp edx, esi
ja 0x6a551f
mov ecx, dword [esp + 0x50]
movzx ecx, byte [edi + ecx + 3]
mov dword [esp + 8], edi
lea edx, [edi + 1]
mov dword [esp + 0x10], edx
and edx, 0x7fff
shl ebx, 5
and ebx, 0x7fe0
xor ebx, ecx
mov edi, dword [esp + 0x30]
mov dword [edi + edx*4], ebx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + ebx*4]
mov esi, edx
cmp ecx, 0xffffffff
je 0x6a5558
cmp dword [edi + ecx*4], ebx
cmovne ecx, edx
mov esi, ecx
mov ecx, dword [esp + 0xc8]
mov word [ecx + edx*2], si
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x80], ebx
mov dword [ecx + ebx*4], edx
mov ebx, dword [esp + 8]
mov ecx, ebx
and ecx, 0x7fff
mov esi, dword [esp + 0x14]
movzx edi, word [esi + ecx*2]
lea ecx, [edi - 1]
cmp edi, 2
mov esi, 0
cmovb ecx, esi
lea esi, [ebx + ecx]
add esi, 2
mov ebx, dword [esp + 0x40]
cmp esi, ebx
mov esi, ebx
jae 0x6a5474
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 8]
movzx ebx, byte [ecx + ebx + 1]
sub esi, dword [esp + 8]
add esi, 0xfffffffe
cmp edi, 1
adc edi, 1
nop word cs:[eax + eax]
lea ecx, [edi - 2]
cmp ecx, 0xfffe
ja 0x6a5470
cmp bl, byte [eax + edi]
jne 0x6a5470
mov ecx, dword [esp + 8]
add ecx, edi
inc ecx
inc edi
cmp ecx, dword [esp + 0x40]
jb 0x6a55d0
mov ecx, esi
jmp 0x6a5470
mov ecx, edx
jmp 0x6a54ab
mov dword [esp + 8], edi
jmp 0x6a5637
mov dword [esp + 0x1c], edx
mov dword [esp + 0x11e4], ebx
mov dword [esp + 0x11f4], edi
add dword [esp + 8], 2
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x258]
push eax
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x2e0]
push eax
push 0x102
push esi
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0x68]
lea eax, [esp + 0x11f4]
push eax
call fcn.006aa110
add esp, 0x20
cmp dword [esp + 8], esi
jbe 0x6a5690
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x1c]
movss xmm1, dword [eax + edx*4]
cvtss2sd xmm0, xmm1
jmp 0x6a56e0
xor eax, eax
mov ecx, dword [esp + 0x50]
cmp byte [ecx + edi], 0x90
setb al
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x1c]
movss xmm1, dword [ecx + edx*4]
movss xmm3, dword [ecx + edx*4 + 4]
cvtss2sd xmm0, xmm1
movsd xmm2, qword [eax*8 + 0x704590]
addsd xmm2, xmm0
cvtss2sd xmm3, xmm3
ucomisd xmm3, xmm2
jbe 0x6a56e0
cvtsd2ss xmm2, xmm2
movss dword [ecx + edx*4 + 4], xmm2
mov eax, dword [esp + 0x7c]
mov word [eax + edx*2 + 2], 1
movzx ecx, word [esp + 0x258]
mov eax, esi
sub eax, edi
cmp ecx, eax
cmovb eax, ecx
cmp eax, 3
jb 0x6a52a0
addsd xmm0, qword [esp + 0x168]
cvtss2sd xmm1, xmm1
neg eax
mov ecx, dword [esp + 0x7c]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x80], ecx
mov ecx, edx
mov edx, dword [esp + 0x70]
lea edx, [edx + ecx*4]
mov esi, 3
jmp 0x6a573e
lea edi, [eax + esi]
inc edi
inc esi
cmp edi, 1
je 0x6a52a0
movss xmm2, dword [edx + esi*4]
cvtss2sd xmm2, xmm2
ucomisd xmm0, xmm2
jae 0x6a5730
mov ecx, ebx
movzx edi, word [esp + esi*2 + 0x2d8]
test edi, edi
je 0x6a5790
mov ebx, edi
dec ebx
bsr ebx, ebx
xor ebx, 0xffffffe0
add ebx, 0x1f
cmp di, 5
mov edi, 0
cmovb ebx, edi
cmp esi, 0x73
mov edi, 0xd
sbb edi, 0
add edi, ebx
add edi, dword [esi*4 + 0x70824c]
xorps xmm3, xmm3
cvtsi2sd xmm3, edi
jmp 0x6a57a4
xor ebx, ebx
cmp esi, 0x90
setb bl
movsd xmm3, qword [ebx*8 + 0x704590]
addsd xmm3, xmm1
ucomisd xmm2, xmm3
mov ebx, ecx
jbe 0x6a5730
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm3
movss dword [edx + esi*4], xmm2
mov ecx, dword [esp + 0x80]
mov word [ecx + esi*2], si
jmp 0x6a5730
mov dword [esp + 8], edi
jmp 0x6a563b
cmp dword [esp + 0x34], 0
je 0x6a5c8a
xor eax, eax
mov ecx, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x38], 0
xor edx, edx
jmp 0x6a584e
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x34]
movzx edx, word [ecx + esi*2]
mov dword [esp + 0x38], eax
mov word [eax + edi*2], dx
lea eax, [edi + 1]
mov dword [esp + 0x80], eax
movzx edx, word [ecx + esi*2]
add ebx, 4
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 8]
lea ecx, [eax + 1]
mov ebx, dword [esp + 0x14]
lea eax, [ebx + 2]
sub esi, edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x34], esi
je 0x6a5885
mov edi, edx
mov dword [esp + 8], ecx
mov ecx, eax
lea eax, [edx - 1]
test edx, eax
mov dword [esp + 0x14], ecx
jne 0x6a5800
test edi, edi
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
je 0x6a5879
push ebx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
jmp 0x6a5808
push 2
call sub.msvcrt.dll_malloc
add esp, 4
jmp 0x6a5808
mov esi, ebx
mov dword [esp + 0x34], edi
cmp edx, 2
mov ebx, dword [ebp + 0x18]
jb 0x6a5920
mov ecx, edx
shr ecx, 1
xor eax, eax
cmp ecx, 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 8]
je 0x6a58fc
mov edi, esi
shr ecx, 1
and ecx, 0xfffffffe
mov dword [esp + 8], ecx
add edi, edx
xor eax, eax
nop dword [eax]
movzx ecx, word [edx + eax*2]
movzx edx, word [edi]
mov esi, dword [esp + 0x38]
mov word [esi + eax*2], dx
mov word [edi], cx
mov ecx, dword [esp + 0x38]
movzx ecx, word [ecx + eax*2 + 2]
movzx edx, word [edi - 2]
mov esi, dword [esp + 0x38]
mov word [esi + eax*2 + 2], dx
mov edx, dword [esp + 0x38]
mov word [edi - 2], cx
add eax, 2
add edi, 0xfffffffc
cmp dword [esp + 8], eax
jne 0x6a58c0
test byte [esp + 0x80], 2
je 0x6a5920
mov edi, dword [esp + 0x38]
movzx ecx, word [edi + eax*2]
mov edx, dword [esp + 0x34]
sub edx, eax
movzx esi, word [edi + edx*2]
mov word [edi + eax*2], si
mov word [edi + edx*2], cx
mov dword [esp + 0x11e4], 0
mov eax, dword [esp + 0x11d8]
push 0x40000
push 0xff
mov dword [esp + 0x18], eax
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov esi, dword [esp + 0x11dc]
mov eax, dword [esp + 0x11e0]
mov dword [esp + 0xc8], eax
add eax, 0x20
xor ecx, ecx
movdqa xmm0, xmmword [0x7044f0]
movdqa xmm3, xmmword [0x704500]
movdqa xmm4, xmmword [0x704510]
movdqa xmm5, xmmword [0x704520]
movdqa xmm6, xmmword [0x704530]
pcmpeqd xmm7, xmm7
nop
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [esi + ecx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [eax + ecx*4 - 0x10], xmm7
movdqu xmmword [eax + ecx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [esi + ecx*2 + 0x10], xmm1
movdqu xmmword [eax + ecx*4 + 0x10], xmm7
movdqu xmmword [eax + ecx*4], xmm7
lea edx, [ecx + 0x10]
paddw xmm0, xmm6
mov ecx, edx
cmp edx, 0x8000
jne 0x6a5990
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x11f8]
push 0x10000
push 0
mov dword [esp + 0x1c], eax
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x11f4], 0
mov eax, dword [esp + 0x11e8]
push 0x40000
push 0xff
mov dword [esp + 0x24], eax
push eax
call sub.msvcrt.dll_memset
pcmpeqd xmm7, xmm7
movdqa xmm6, xmmword [0x704530]
movdqa xmm5, xmmword [0x704520]
movdqa xmm4, xmmword [0x704510]
movdqa xmm3, xmmword [0x704500]
add esp, 0xc
mov edi, dword [esp + 0x11ec]
mov eax, dword [esp + 0x11f0]
mov dword [esp + 0x2c], eax
add eax, 0x20
xor ecx, ecx
movdqa xmm0, xmmword [0x7044f0]
nop word cs:[eax + eax]
movdqa xmm1, xmm0
paddw xmm1, xmm3
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [edi + ecx*2], xmm2
movdqa xmm1, xmm0
paddw xmm1, xmm4
movdqu xmmword [eax + ecx*4 - 0x10], xmm7
movdqu xmmword [eax + ecx*4 - 0x20], xmm7
movdqa xmm2, xmm0
paddw xmm2, xmm5
punpcklqdq xmm1, xmm2
movdqu xmmword [edi + ecx*2 + 0x10], xmm1
movdqu xmmword [eax + ecx*4 + 0x10], xmm7
movdqu xmmword [eax + ecx*4], xmm7
lea edx, [ecx + 0x10]
paddw xmm0, xmm6
mov ecx, edx
cmp edx, 0x8000
jne 0x6a5a80
mov edx, dword [esp + 0x20]
mov eax, edx
sub eax, 0x8000
mov ecx, 0
cmovb eax, ecx
mov ecx, dword [esp + 0x50]
movzx ecx, byte [ecx + eax]
mov esi, dword [esp + 0x11e4]
shl esi, 5
and esi, 0x7fe0
xor esi, ecx
mov dword [esp + 0x11e4], esi
lea ecx, [eax + 1]
cmp ecx, dword [esp + 0x40]
mov dword [esp + 8], esi
jae 0x6a5b42
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
movzx ecx, byte [ecx + esi]
mov esi, dword [esp + 8]
shl esi, 5
and esi, 0x7fe0
xor esi, ecx
mov dword [esp + 8], esi
mov dword [esp + 0x11e4], esi
cmp eax, edx
mov dword [esp + 0x6c], edi
mov esi, dword [esp + 0x40]
jae 0x6a5c94
mov edi, dword [esp + 0x50]
add dword [esp + 0x74], edi
jmp 0x6a5b8b
mov ecx, edi
mov ebx, dword [ebp + 0x18]
mov esi, dword [esp + 0x6c]
mov word [esi + edi*2], cx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + edx*4], edi
inc eax
inc dword [esp + 0x74]
cmp eax, dword [esp + 0x20]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
je 0x6a5cab
lea edx, [eax + 3]
xor ecx, ecx
cmp edx, esi
ja 0x6a5b99
movzx ecx, byte [eax + edi + 2]
mov edi, eax
and edi, 0x7fff
mov esi, dword [esp + 8]
shl esi, 5
and esi, 0x7fe0
xor esi, ecx
mov ebx, dword [esp + 0xc8]
mov dword [ebx + edi*4], esi
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + esi*4]
mov edx, edi
cmp ecx, 0xffffffff
je 0x6a5bd0
cmp dword [ebx + ecx*4], esi
cmovne ecx, edi
mov edx, ecx
mov ecx, dword [esp + 0x30]
mov word [ecx + edi*2], dx
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], esi
mov dword [ecx + esi*4], edi
lea ecx, [eax - 1]
and ecx, 0x7fff
mov edx, dword [esp + 0x14]
movzx edx, word [edx + ecx*2]
lea ebx, [edx - 1]
cmp edx, 2
mov ecx, 0
cmovb ebx, ecx
lea ecx, [eax + ebx]
inc ecx
mov esi, dword [esp + 0x40]
cmp ecx, esi
jae 0x6a5c53
mov ecx, dword [esp + 0x50]
movzx ecx, byte [ecx + eax]
mov ebx, esi
mov esi, eax
not esi
add esi, ebx
mov dword [esp + 0x28], esi
cmp edx, 1
adc edx, 0
nop dword [eax + eax]
lea ebx, [edx - 1]
cmp ebx, 0xfffe
ja 0x6a5c53
mov esi, dword [esp + 0x74]
cmp cl, byte [esi + edx]
jne 0x6a5c53
lea ebx, [eax + edx]
inc ebx
inc edx
cmp ebx, dword [esp + 0x40]
jb 0x6a5c30
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov word [ecx + edi*2], bx
add ebx, 0xfd
movzx edx, bl
xor edx, dword [esp + 8]
mov esi, dword [esp + 0x2c]
mov dword [esi + edi*4], edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + edx*4]
cmp ecx, 0xffffffff
je 0x6a5b60
cmp dword [esi + ecx*4], edx
cmovne ecx, edi
jmp 0x6a5b62
xor esi, esi
mov ebx, dword [ebp + 0x18]
jmp 0x6a606b
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x50]
cmp dword [esp + 0x80], 0
jne 0x6a5ccf
jmp 0x6a6067
mov eax, dword [esp + 8]
mov dword [esp + 0x11e4], eax
mov dword [esp + 0x11f4], edx
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x80], 0
je 0x6a6067
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20dc]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x20e0]
mov dword [esp + 0x168], eax
lea eax, [edi + 1]
mov dword [esp + 0x15c], eax
xor esi, esi
jmp 0x6a5d2b
mov eax, dword [esp + 8]
mov dword [esp + 0x11e4], eax
mov dword [esp + 0x11f4], edi
add edx, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x74]
lea esi, [ecx + 1]
cmp ecx, dword [esp + 0x34]
je 0x6a6067
lea eax, [edx + 3]
mov ecx, 0
cmp eax, dword [esp + 0x40]
ja 0x6a5d3e
movzx ecx, byte [edx + edi + 2]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x74], esi
movzx eax, word [eax + esi*2]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov eax, edx
and eax, 0x7fff
mov esi, dword [esp + 8]
shl esi, 5
and esi, 0x7fe0
xor esi, ecx
mov dword [esp + 0x11e4], esi
mov edi, dword [esp + 0xc8]
mov dword [edi + eax*4], esi
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + esi*4]
mov edx, eax
cmp ecx, 0xffffffff
je 0x6a5d8f
cmp dword [edi + ecx*4], esi
cmovne ecx, eax
mov edx, ecx
mov ecx, dword [esp + 0x30]
mov word [ecx + eax*2], dx
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], esi
mov dword [ecx + esi*4], eax
mov edi, dword [esp + 0x20]
lea ecx, [edi - 1]
and ecx, 0x7fff
mov edx, dword [esp + 0x14]
movzx edx, word [edx + ecx*2]
lea ecx, [edx - 1]
cmp edx, 2
mov edx, 0
cmovb ecx, edx
lea edx, [edi + ecx]
inc edx
mov esi, dword [esp + 0x40]
cmp edx, esi
jae 0x6a5e07
mov ebx, dword [esp + 0x50]
movzx ebx, byte [ebx + edi]
mov esi, edi
mov edi, dword [esp + 0x50]
not esi
add esi, dword [esp + 0x40]
nop word cs:[eax + eax]
cmp ecx, 0xfffe
ja 0x6a5e07
cmp bl, byte [edi + edx]
jne 0x6a5e07
inc ecx
inc edx
cmp edx, dword [esp + 0x40]
jb 0x6a5df0
mov ecx, esi
mov edx, dword [esp + 0x14]
mov word [edx + eax*2], cx
add ecx, 0xfd
movzx ecx, cl
xor ecx, dword [esp + 8]
mov dword [esp + 0x11f4], ecx
mov esi, dword [esp + 0x2c]
mov dword [esi + eax*4], ecx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + ecx*4]
cmp edx, 0xffffffff
je 0x6a5e40
cmp dword [esi + edx*4], ecx
cmovne edx, eax
jmp 0x6a5e42
mov edx, eax
mov edi, dword [esp + 0x20]
lea ebx, [edi + 1]
mov esi, dword [esp + 0x6c]
mov word [esi + eax*2], dx
mov edx, dword [esp + 0x1c]
mov dword [edx + ecx*4], eax
mov esi, dword [esp + 0x18]
cmp si, 2
jbe 0x6a6040
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x168]
lea eax, [esp + 0x2d8]
push eax
lea eax, [esp + 0x25c]
push eax
push 0
push esi
push dword [esp + 0x50]
push edi
push dword [esp + 0x68]
lea eax, [esp + 0x11f4]
push eax
call fcn.006aa110
add esp, 0x20
movzx edx, word [esp + 0x258]
mov ecx, esi
lea eax, [esp + 0x2558]
push eax
push edi
call fcn.006a92f0
add esp, 8
mov eax, dword [esp + 0x15c]
lea esi, [eax + edi]
mov eax, 1
mov edx, edi
jmp 0x6a5f3c
mov eax, dword [esp + 0x14]
mov word [eax + edx*2], cx
add ecx, 0xfd
movzx edi, cl
xor edi, dword [esp + 8]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + edx*4], edi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*4]
cmp eax, 0xffffffff
mov ebx, dword [ebp + 0x18]
je 0x6a6030
cmp dword [ecx + eax*4], edi
cmovne eax, edx
mov ecx, dword [esp + 0x6c]
mov word [ecx + edx*2], ax
mov eax, dword [esp + 0x1c]
mov dword [eax + edi*4], edx
mov eax, dword [esp + 0x28]
inc eax
inc esi
inc dword [esp + 0x24]
cmp eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
je 0x6a5d00
lea edi, [eax + edx]
mov dword [esp + 0x28], eax
lea ecx, [eax + edx]
add ecx, 3
xor eax, eax
cmp ecx, dword [esp + 0x40]
ja 0x6a5f5a
mov eax, dword [esp + 0x50]
movzx eax, byte [edi + eax + 2]
mov dword [esp + 0x80], edi
mov edx, edi
and edx, 0x7fff
mov edi, dword [esp + 8]
shl edi, 5
and edi, 0x7fe0
xor edi, eax
mov ebx, dword [esp + 0xc8]
mov dword [ebx + edx*4], edi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edi*4]
mov ecx, edx
cmp eax, 0xffffffff
je 0x6a5f98
cmp dword [ebx + eax*4], edi
cmovne eax, edx
mov ecx, eax
mov eax, dword [esp + 0x30]
mov word [eax + edx*2], cx
mov eax, dword [esp + 0x10]
mov dword [esp + 8], edi
mov dword [eax + edi*4], edx
mov edi, dword [esp + 0x80]
lea eax, [edi - 1]
and eax, 0x7fff
mov ecx, dword [esp + 0x14]
movzx ebx, word [ecx + eax*2]
lea ecx, [ebx - 1]
cmp ebx, 2
mov eax, 0
cmovb ecx, eax
lea eax, [edi + ecx]
inc eax
cmp eax, dword [esp + 0x40]
jae 0x6a5ee0
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + edi]
not edi
add edi, dword [esp + 0x40]
mov dword [esp + 0x80], edi
cmp ebx, 1
adc ebx, 0
mov edi, dword [esp + 0x24]
nop dword [eax]
lea ecx, [ebx - 1]
cmp ecx, 0xfffe
ja 0x6a5ee0
cmp al, byte [esi + ebx]
jne 0x6a5ee0
lea ecx, [edi + ebx]
inc ecx
inc ebx
cmp ecx, dword [esp + 0x40]
jb 0x6a6000
mov ecx, dword [esp + 0x80]
jmp 0x6a5ee0
mov eax, edx
jmp 0x6a5f15
mov esi, dword [esp + 0x50]
movzx ecx, byte [esi + edi]
xor edx, edx
lea eax, [esp + 0x2558]
push eax
push edi
mov edi, esi
call fcn.006a92f0
add esp, 8
mov edx, ebx
mov ebx, dword [ebp + 0x18]
jmp 0x6a5d1a
mov esi, dword [esp + 0x38]
push dword [esp + 0x7c]
call sub.msvcrt.dll_free
add esp, 4
push esi
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x70]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11d8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11dc]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11e0]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11e8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11ec]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11f0]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x11f8]
call sub.msvcrt.dll_free
add esp, 4
mov esi, dword [esp + 0x2560]
lea ecx, [esp + 0x2558]
xor edx, edx
push 1
push esi
call fcn.0069f7e0
add esp, 8
movapd xmm3, xmm0
mov edi, dword [esp + 0x20dc]
test edi, edi
je 0x6a6154
push dword [edi]
movsd qword [esp + 0x44], xmm3
call sub.msvcrt.dll_free
add esp, 4
push dword [edi + 4]
call sub.msvcrt.dll_free
add esp, 4
push dword [edi + 8]
call sub.msvcrt.dll_free
add esp, 4
push edi
call sub.msvcrt.dll_free
movsd xmm3, qword [esp + 0x44]
add esp, 4
mov edx, dword [ebp + 0x14]
mov edi, dword [esp + 0xe0]
movsd xmm1, qword [esp + 0x160]
movapd xmm2, xmmword [esp + 0x1c0]
ucomisd xmm3, xmm2
jbe 0x6a61a0
ucomisd xmm1, xmm2
jbe 0x6a61a0
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x98]
cmp word [eax + ecx*2 - 2], 0
je 0x6a61e1
mov eax, dword [esp + 0x134]
movzx ebx, word [eax + ecx*2 - 2]
jmp 0x6a61e6
ucomisd xmm1, xmm3
lea eax, [esp + 0x134]
jbe 0x6a4908
cmp byte [esp + 0x158], 0
je 0x6a6505
mov ecx, dword [esp + 0xd4]
mov edx, 1
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push esi
push 0
lea eax, [esp + 0x256c]
jmp 0x6a4923
mov ebx, 1
mov eax, dword [esp + 0x144]
add ebx, dword [eax + ecx*4 - 4]
mov ecx, dword [eax + edi*4]
mov eax, dword [esp + 0x140]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x18]
mov edi, dword [eax]
mov dword [esp + 0x10], ebx
jmp 0x6a6225
mov eax, dword [esp + 0x80]
mov ecx, eax
mov ebx, dword [esp + 0x10]
cmp eax, ebx
jae 0x6a4930
lea eax, [ecx + 0xffff]
mov esi, ebx
sub esi, ecx
cmp eax, ebx
mov eax, 0xffff
cmovbe esi, eax
mov dword [esp + 0x50], esi
movzx eax, si
mov dword [esp + 8], ecx
mov dword [esp + 0x40], eax
add eax, ecx
mov dword [esp + 0x80], eax
cmp eax, ebx
setae ch
mov esi, dword [ebp + 0x10]
mov cl, byte [esi]
test cl, cl
je 0x6a6270
mov ebx, dword [ebp + 0x18]
jmp 0x6a62bd
lea eax, [edi - 1]
test edi, eax
mov ebx, dword [ebp + 0x18]
jne 0x6a6295
mov byte [esp + 0x1c], ch
test edi, edi
je 0x6a6299
add edi, edi
push edi
push dword [edx]
mov esi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov edi, dword [ebx]
jmp 0x6a62a7
mov eax, dword [edx]
jmp 0x6a62b2
xor edi, edi
push 1
mov esi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esi], eax
mov edx, esi
mov esi, dword [ebp + 0x10]
mov ch, byte [esp + 0x1c]
mov byte [eax + edi], 0
mov edi, dword [ebx]
inc edi
mov dword [ebx], edi
mov cl, byte [esi]
and ch, byte [esp + 0x3c]
movzx eax, ch
shl eax, cl
mov ecx, dword [edx]
or byte [edi + ecx - 1], al
movzx eax, byte [esi]
inc al
and al, 7
mov byte [esi], al
jne 0x6a6319
mov esi, dword [ebx]
lea eax, [esi - 1]
test esi, eax
jne 0x6a62f7
test esi, esi
je 0x6a62fb
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a6309
mov eax, dword [edx]
jmp 0x6a630d
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov byte [eax + esi], 0
inc dword [ebx]
mov esi, dword [ebp + 0x10]
movzx eax, byte [esi]
inc al
and al, 7
mov byte [esi], al
jne 0x6a6360
mov esi, dword [ebx]
lea eax, [esi - 1]
test esi, eax
jne 0x6a6341
test esi, esi
je 0x6a6345
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a6353
mov eax, dword [edx]
jmp 0x6a6357
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov byte [eax + esi], 0
inc dword [ebx]
mov esi, dword [ebp + 0x10]
mov byte [esi], 0
mov esi, dword [ebx]
lea eax, [esi - 1]
test esi, eax
jne 0x6a6390
test esi, esi
je 0x6a6394
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a63a2
mov eax, dword [edx]
jmp 0x6a63a6
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov ecx, dword [esp + 0x50]
mov byte [eax + esi], cl
mov eax, dword [ebx]
lea esi, [eax + 1]
mov dword [ebx], esi
test esi, eax
je 0x6a63c0
mov eax, dword [edx]
jmp 0x6a63e9
test esi, esi
je 0x6a63d7
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a63e5
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov ecx, dword [esp + 0x50]
mov byte [eax + esi], ch
mov eax, dword [ebx]
lea esi, [eax + 1]
mov dword [ebx], esi
test esi, eax
je 0x6a6400
mov eax, dword [edx]
jmp 0x6a6429
test esi, esi
je 0x6a6417
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a6425
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov ebx, dword [esp + 0x40]
xor ebx, 0xffff
mov byte [eax + esi], bl
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
lea esi, [eax + 1]
mov dword [ecx], esi
test esi, eax
je 0x6a6450
mov eax, dword [edx]
jmp 0x6a647c
test esi, esi
je 0x6a646a
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov ecx, dword [ebp + 0x18]
mov esi, dword [ecx]
jmp 0x6a6478
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov ecx, dword [esp + 8]
mov byte [eax + esi], bh
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebx]
inc edi
mov dword [ebx], edi
cmp dword [esp + 0x40], 0
je 0x6a6210
add ecx, dword [esp + 0x14]
mov dword [esp + 8], ecx
xor esi, esi
jmp 0x6a64cd
mov eax, dword [edx]
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + esi]
mov byte [eax + edi], cl
mov edi, dword [ebx]
inc edi
mov dword [ebx], edi
inc esi
cmp dword [esp + 0x40], esi
je 0x6a6210
lea eax, [edi - 1]
test edi, eax
jne 0x6a64b0
test edi, edi
je 0x6a64ee
add edi, edi
push edi
push dword [edx]
mov ebx, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov ecx, dword [ebp + 0x18]
mov edi, dword [ecx]
jmp 0x6a64fc
xor edi, edi
push 1
mov ebx, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [ebx], eax
mov edx, ebx
mov ebx, dword [ebp + 0x18]
jmp 0x6a64b2
mov ecx, dword [esp + 0xd4]
mov edx, 1
jmp 0x6a4914
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov byte [eax + esi], 0
mov esi, dword [ebx]
inc esi
mov dword [ebx], esi
mov edi, dword [ebp + 0x10]
movzx ecx, byte [edi]
mov ebx, dword [esp + 0x3c]
shl ebx, cl
mov eax, dword [edx]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
and cl, 7
mov byte [edi], cl
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebx]
jne 0x6a6597
lea eax, [esi - 1]
test esi, eax
jne 0x6a6572
test esi, esi
je 0x6a6576
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a6584
mov eax, dword [edx]
jmp 0x6a6588
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov byte [eax + esi], 0
mov esi, dword [ebx]
inc esi
mov dword [ebx], esi
mov edi, dword [ebp + 0x10]
movzx ecx, byte [edi]
mov eax, 1
shl eax, cl
mov ecx, dword [edx]
or byte [esi + ecx - 1], al
movzx eax, byte [edi]
inc al
and al, 7
mov byte [edi], al
jne 0x6a65f1
mov esi, dword [ebx]
lea eax, [esi - 1]
test esi, eax
jne 0x6a65cf
test esi, esi
je 0x6a65d3
add esi, esi
push esi
push dword [edx]
mov edi, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov esi, dword [ebx]
jmp 0x6a65e1
mov eax, dword [edx]
jmp 0x6a65e5
xor esi, esi
push 1
mov edi, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [edi], eax
mov edx, edi
mov byte [eax + esi], 0
inc dword [ebx]
mov edi, dword [ebp + 0x10]
movzx eax, byte [edi]
inc al
and al, 7
mov byte [edi], al
mov esi, 7
jmp 0x6a661c
mov eax, dword [edx]
mov byte [eax + edi], 0
inc dword [ebx]
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
inc al
and al, 7
mov ecx, dword [ebp + 0x10]
mov byte [ecx], al
dec esi
je 0x6a4999
test al, al
jne 0x6a660c
mov edi, dword [ebx]
lea eax, [edi - 1]
test edi, eax
jne 0x6a65fe
test edi, edi
je 0x6a6643
add edi, edi
push edi
push dword [edx]
mov ebx, edx
call sub.msvcrt.dll_realloc
add esp, 8
mov ecx, dword [ebp + 0x18]
mov edi, dword [ecx]
jmp 0x6a6651
xor edi, edi
push 1
mov ebx, edx
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [ebx], eax
mov edx, ebx
mov ebx, dword [ebp + 0x18]
jmp 0x6a6600
push dword [esp + 0x134]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x138]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x144]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x148]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x14c]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x150]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x154]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0xd8]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 0x17c]
call sub.msvcrt.dll_free
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0xffffffffffffffff
call sub.msvcrt.dll_exit
push ebp
push ebx
push edi
push esi
sub esp, 0xa88
mov esi, edx
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xab4]
mov eax, dword [esp + 0xaac]
mov ebx, dword [esp + 0xa9c]
movzx ecx, byte [eax]
mov edi, dword [edx]
test cl, cl
je 0x6a6727
mov ebp, dword [esp + 0xaac]
jmp 0x6a678e
lea eax, [edi - 1]
test edi, eax
jne 0x6a6752
test edi, edi
je 0x6a675d
add edi, edi
push edi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a6777
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a677a
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [edi + eax - 1], bl
movzx ecx, byte [ebp]
inc cl
mov ebx, esi
and ebx, 1
and cl, 7
mov byte [ebp], cl
mov edi, dword [edx]
jne 0x6a6819
lea eax, [edi - 1]
test edi, eax
jne 0x6a67dd
test edi, edi
je 0x6a67e8
add edi, edi
push edi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a6802
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a6805
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [edi + eax - 1], bl
movzx ecx, byte [ebp]
inc cl
mov ebx, esi
shr ebx, 1
and ebx, 1
and cl, 7
mov byte [ebp], cl
mov edi, dword [edx]
jne 0x6a68a6
lea eax, [edi - 1]
test edi, eax
jne 0x6a686a
test edi, edi
je 0x6a6875
add edi, edi
push edi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a688f
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a6892
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [edi + eax - 1], bl
mov edi, dword [esp + 0xaa8]
mov edx, dword [esp + 0xaa4]
movzx eax, byte [ebp]
inc al
and al, 7
mov byte [ebp], al
mov ecx, dword [esp + 0xaa0]
cmp esi, 1
jne 0x6a6b77
movaps xmm0, xmmword [str._b_b_b_b_t_t_t_t_a_a_a_a]
movups xmmword [esp + 0xbc], xmm0
movups xmmword [esp + 0xcc], xmm0
movups xmmword [esp + 0xdc], xmm0
movups xmmword [esp + 0xec], xmm0
movups xmmword [esp + 0xfc], xmm0
movups xmmword [esp + 0x10c], xmm0
movups xmmword [esp + 0x11c], xmm0
movups xmmword [esp + 0x12c], xmm0
movups xmmword [esp + 0x13c], xmm0
movups xmmword [esp + 0x14c], xmm0
movups xmmword [esp + 0x15c], xmm0
movups xmmword [esp + 0x16c], xmm0
movups xmmword [esp + 0x17c], xmm0
movups xmmword [esp + 0x18c], xmm0
movups xmmword [esp + 0x19c], xmm0
movups xmmword [esp + 0x1ac], xmm0
movups xmmword [esp + 0x1bc], xmm0
movups xmmword [esp + 0x1cc], xmm0
movups xmmword [esp + 0x1dc], xmm0
movups xmmword [esp + 0x1ec], xmm0
movups xmmword [esp + 0x1fc], xmm0
movups xmmword [esp + 0x20c], xmm0
movups xmmword [esp + 0x21c], xmm0
movups xmmword [esp + 0x22c], xmm0
movups xmmword [esp + 0x23c], xmm0
movups xmmword [esp + 0x24c], xmm0
movups xmmword [esp + 0x25c], xmm0
movups xmmword [esp + 0x26c], xmm0
movups xmmword [esp + 0x27c], xmm0
movups xmmword [esp + 0x28c], xmm0
movups xmmword [esp + 0x29c], xmm0
movups xmmword [esp + 0x2ac], xmm0
movups xmmword [esp + 0x2bc], xmm0
movups xmmword [esp + 0x2cc], xmm0
movups xmmword [esp + 0x2dc], xmm0
movups xmmword [esp + 0x2ec], xmm0
movaps xmm1, xmmword [0x7045e0]
movups xmmword [esp + 0x2fc], xmm1
movups xmmword [esp + 0x30c], xmm1
movups xmmword [esp + 0x31c], xmm1
movups xmmword [esp + 0x32c], xmm1
movups xmmword [esp + 0x33c], xmm1
movups xmmword [esp + 0x34c], xmm1
movups xmmword [esp + 0x35c], xmm1
movups xmmword [esp + 0x36c], xmm1
movups xmmword [esp + 0x37c], xmm1
movups xmmword [esp + 0x38c], xmm1
movups xmmword [esp + 0x39c], xmm1
movups xmmword [esp + 0x3ac], xmm1
movups xmmword [esp + 0x3bc], xmm1
movups xmmword [esp + 0x3cc], xmm1
movups xmmword [esp + 0x3dc], xmm1
movups xmmword [esp + 0x3ec], xmm1
movups xmmword [esp + 0x3fc], xmm1
movups xmmword [esp + 0x40c], xmm1
movups xmmword [esp + 0x41c], xmm1
movups xmmword [esp + 0x42c], xmm1
movups xmmword [esp + 0x43c], xmm1
movups xmmword [esp + 0x44c], xmm1
movups xmmword [esp + 0x45c], xmm1
movups xmmword [esp + 0x46c], xmm1
movups xmmword [esp + 0x47c], xmm1
movups xmmword [esp + 0x48c], xmm1
movups xmmword [esp + 0x49c], xmm1
movups xmmword [esp + 0x4ac], xmm1
movaps xmm1, xmmword [0x7045f0]
movups xmmword [esp + 0x4bc], xmm1
movups xmmword [esp + 0x4cc], xmm1
movups xmmword [esp + 0x4dc], xmm1
movups xmmword [esp + 0x4ec], xmm1
movups xmmword [esp + 0x4fc], xmm1
movups xmmword [esp + 0x50c], xmm1
movups xmmword [esp + 0x51c], xmm0
movups xmmword [esp + 0x52c], xmm0
movaps xmm0, xmmword [0x704600]
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x4c], xmm0
movups xmmword [esp + 0x5c], xmm0
movups xmmword [esp + 0x6c], xmm0
movups xmmword [esp + 0x7c], xmm0
movups xmmword [esp + 0x8c], xmm0
movups xmmword [esp + 0x9c], xmm0
movups xmmword [esp + 0xac], xmm0
mov esi, dword [esp + 0xaac]
jmp 0x6a86d7
lea esi, [esp + 0x3c]
lea ebp, [esp + 0xbc]
push esi
push ebp
push edi
call fcn.006a00f0
add esp, 0xc
mov eax, dword [esp + 0xab4]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov ecx, ebp
mov edx, esi
push 0
push 0
push 0
call fcn.006adb70
add esp, 0xc
mov ebx, eax
mov ecx, ebp
mov edx, esi
push 0
push 0
push 1
call fcn.006adb70
add esp, 0xc
lea ecx, [ebx - 1]
xor edx, edx
cmp ecx, eax
setae dl
mov esi, edx
cmovae ebx, eax
mov ecx, ebp
lea edx, [esp + 0x3c]
push 0
push 2
push 0
call fcn.006adb70
add esp, 0xc
lea ecx, [ebx - 1]
cmp ecx, eax
mov edi, 2
cmovb edi, esi
cmovae ebx, eax
mov ecx, ebp
lea edx, [esp + 0x3c]
mov ebp, edx
push 0
push 2
push 1
call fcn.006adb70
add esp, 0xc
lea ecx, [ebx - 1]
cmp ecx, eax
mov esi, 3
cmovb esi, edi
cmovae ebx, eax
lea ecx, [esp + 0xbc]
mov edx, ebp
push 4
push 0
push 0
call fcn.006adb70
add esp, 0xc
lea ecx, [ebx - 1]
cmp ecx, eax
mov edi, 4
cmovb edi, esi
cmovae ebx, eax
lea ecx, [esp + 0xbc]
mov ebp, ecx
lea edx, [esp + 0x3c]
push 4
push 0
push 1
call fcn.006adb70
add esp, 0xc
lea ecx, [ebx - 1]
cmp ecx, eax
mov esi, 5
cmovb esi, edi
cmovae ebx, eax
mov ecx, ebp
lea edx, [esp + 0x3c]
push 4
push 2
push 0
call fcn.006adb70
add esp, 0xc
lea ecx, [ebx - 1]
cmp ecx, eax
mov edi, 6
cmovb edi, esi
cmovae ebx, eax
mov ecx, ebp
lea edx, [esp + 0x3c]
push 4
push 2
push 1
call fcn.006adb70
add esp, 0xc
dec ebx
cmp ebx, eax
mov ecx, 7
cmovb ecx, edi
xorps xmm0, xmm0
movups xmmword [esp + 0x5bc], xmm0
movups xmmword [esp + 0x5cc], xmm0
movups xmmword [esp + 0x5dc], xmm0
movups xmmword [esp + 0x5ec], xmm0
movups xmmword [esp + 0x5f8], xmm0
mov dword [esp + 0xc], 0x1d
cmp dword [esp + 0x530], 0
mov dword [esp + 8], 0x1d
jne 0x6a6f3e
mov dword [esp + 8], 0x1c
cmp dword [esp + 0x52c], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x1b
cmp dword [esp + 0x528], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x1a
cmp dword [esp + 0x524], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x19
cmp dword [esp + 0x520], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x18
cmp dword [esp + 0x51c], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x17
cmp dword [esp + 0x518], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x16
cmp dword [esp + 0x514], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x15
cmp dword [esp + 0x510], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x14
cmp dword [esp + 0x50c], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x13
cmp dword [esp + 0x508], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x12
cmp dword [esp + 0x504], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x11
cmp dword [esp + 0x500], 0
jne 0x6a6f3e
mov dword [esp + 8], 0x10
cmp dword [esp + 0x4fc], 0
jne 0x6a6f3e
mov dword [esp + 8], 0xf
cmp dword [esp + 0x4f8], 0
jne 0x6a6f3e
mov dword [esp + 8], 0xe
cmp dword [esp + 0x4f4], 0
jne 0x6a6f3e
mov dword [esp + 8], 0xd
cmp dword [esp + 0x4f0], 0
jne 0x6a6f3e
mov dword [esp + 8], 0xc
cmp dword [esp + 0x4ec], 0
jne 0x6a6f3e
mov dword [esp + 8], 0xb
cmp dword [esp + 0x4e8], 0
jne 0x6a6f3e
mov dword [esp + 8], 0xa
cmp dword [esp + 0x4e4], 0
jne 0x6a6f3e
mov dword [esp + 8], 9
cmp dword [esp + 0x4e0], 0
jne 0x6a6f3e
mov dword [esp + 8], 8
cmp dword [esp + 0x4dc], 0
jne 0x6a6f3e
mov dword [esp + 8], 7
cmp dword [esp + 0x4d8], 0
jne 0x6a6f3e
mov dword [esp + 8], 6
cmp dword [esp + 0x4d4], 0
jne 0x6a6f3e
mov dword [esp + 8], 5
cmp dword [esp + 0x4d0], 0
jne 0x6a6f3e
mov dword [esp + 8], 4
cmp dword [esp + 0x4cc], 0
jne 0x6a6f3e
mov dword [esp + 8], 3
cmp dword [esp + 0x4c8], 0
jne 0x6a6f3e
mov dword [esp + 8], 2
cmp dword [esp + 0x4c4], 0
jne 0x6a6f3e
xor eax, eax
cmp dword [esp + 0x4c0], 0
setne al
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0xb0], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x1c
cmp dword [esp + 0xac], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x1b
cmp dword [esp + 0xa8], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x1a
cmp dword [esp + 0xa4], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x19
cmp dword [esp + 0xa0], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x18
cmp dword [esp + 0x9c], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x17
cmp dword [esp + 0x98], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x16
cmp dword [esp + 0x94], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x15
cmp dword [esp + 0x90], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x14
cmp dword [esp + 0x8c], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x13
cmp dword [esp + 0x88], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x12
cmp dword [esp + 0x84], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x11
cmp dword [esp + 0x80], 0
jne 0x6a7163
mov dword [esp + 0xc], 0x10
cmp dword [esp + 0x7c], 0
jne 0x6a7163
mov dword [esp + 0xc], 0xf
cmp dword [esp + 0x78], 0
jne 0x6a7163
mov dword [esp + 0xc], 0xe
cmp dword [esp + 0x74], 0
jne 0x6a7163
mov dword [esp + 0xc], 0xd
cmp dword [esp + 0x70], 0
jne 0x6a7163
mov dword [esp + 0xc], 0xc
cmp dword [esp + 0x6c], 0
jne 0x6a7163
mov dword [esp + 0xc], 0xb
cmp dword [esp + 0x68], 0
jne 0x6a7163
mov dword [esp + 0xc], 0xa
cmp dword [esp + 0x64], 0
jne 0x6a7163
mov dword [esp + 0xc], 9
cmp dword [esp + 0x60], 0
jne 0x6a7163
mov dword [esp + 0xc], 8
cmp dword [esp + 0x5c], 0
jne 0x6a7163
mov dword [esp + 0xc], 7
cmp dword [esp + 0x58], 0
jne 0x6a7163
mov dword [esp + 0xc], 6
cmp dword [esp + 0x54], 0
jne 0x6a7163
mov dword [esp + 0xc], 5
cmp dword [esp + 0x50], 0
jne 0x6a7163
mov dword [esp + 0xc], 4
cmp dword [esp + 0x4c], 0
jne 0x6a7163
mov dword [esp + 0xc], 3
cmp dword [esp + 0x48], 0
jne 0x6a7163
mov dword [esp + 0xc], 2
cmp dword [esp + 0x44], 0
jne 0x6a7163
xor eax, eax
cmp dword [esp + 0x40], 0
setne al
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 8]
lea eax, [ecx + 0x101]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
lea edi, [ecx + eax]
add edi, 0x102
add eax, ecx
xor eax, 0xfffffeff
mov dword [esp + 0x2c], eax
lea eax, [ecx*4]
neg eax
add eax, esp
add eax, 0xfffffc3c
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0
xor edx, edx
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x20], edi
jmp 0x6a71d4
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x14]
cmp ecx, edi
jae 0x6a775b
mov eax, ecx
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + ecx*4 + 0xbc]
lea eax, [esp + eax*4 + 0x3c]
cmovb eax, ecx
movzx eax, byte [eax]
mov ecx, dword [esp + 0x28]
test cl, 1
je 0x6a7210
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
jmp 0x6a722d
test cl, 6
je 0x6a73a9
mov dword [esp + 0x18], 0
test eax, eax
mov ecx, dword [esp + 0x10]
jne 0x6a73b0
mov ebx, dword [esp + 0x24]
lea eax, [ebx + 1]
cmp eax, edi
jae 0x6a7390
mov dword [esp], esi
mov ebp, edx
mov ecx, edi
sub ecx, ebx
mov edx, dword [esp + 0x38]
lea edx, [edx + ebx*4]
lea edi, [esp + 0xc0]
lea edi, [edi + ebx*4]
mov dword [esp + 0x14], 1
nop
cmp eax, dword [esp + 0x1c]
mov ebx, edx
cmovb ebx, edi
mov esi, dword [esp + 0x18]
cmp esi, dword [ebx]
jne 0x6a728c
inc dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
add ebx, eax
inc ebx
inc eax
add edx, 4
add edi, 4
cmp ebx, 1
jne 0x6a7260
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x18], 0
mov edx, ebp
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
jne 0x6a7396
cmp dword [esp + 0x14], 3
jb 0x6a7396
test byte [esp + 0x28], 4
mov esi, dword [esp]
je 0x6a73cd
mov eax, dword [esp + 0x14]
mov ebx, eax
cmp eax, 0xb
jae 0x6a7309
jmp 0x6a73d1
lea eax, [esi*8]
push eax
push dword [esp + 8]
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esp + 4], eax
mov edx, ebx
mov ecx, dword [esp + 0x10]
mov ebx, ebp
inc edx
lea eax, [edi - 0xb]
mov ebp, dword [esp + 4]
mov dword [ebp + esi*4], eax
inc esi
inc dword [esp + 0x604]
sub ebx, edi
cmp ebx, 0xa
jbe 0x6a73d1
cmp ebx, 0x8a
mov edi, 0x8a
cmovb edi, ebx
cmp dword [esp + 0xab0], 0
je 0x6a72f7
lea eax, [edx - 1]
test edx, eax
jne 0x6a7357
mov ebp, esi
test edx, edx
je 0x6a7345
lea eax, [edx*8]
push eax
push ecx
mov esi, edx
call sub.msvcrt.dll_realloc
mov edx, esi
add esp, 8
jmp 0x6a7353
push 4
mov esi, edx
call sub.msvcrt.dll_malloc
mov edx, esi
add esp, 4
mov ecx, eax
mov esi, ebp
mov dword [ecx + edx*4], 0x12
lea eax, [esi - 1]
test esi, eax
jne 0x6a72ea
mov ebp, ebx
mov dword [esp + 0x10], ecx
mov ebx, edx
test esi, esi
jne 0x6a72ca
push 4
call sub.msvcrt.dll_malloc
add esp, 4
jmp 0x6a72de
mov eax, dword [esp + 0x18]
jmp 0x6a73b0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp]
test byte [esp + 0x28], 1
jne 0x6a73f0
jmp 0x6a7500
mov ecx, dword [esp + 0x10]
nop dword [eax]
inc dword [esp + eax*4 + 0x5bc]
mov ebx, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 1
jmp 0x6a7513
mov ebx, dword [esp + 0x14]
test byte [esp + 0x28], 2
je 0x6a73e1
cmp ebx, 3
jae 0x6a747c
mov edi, dword [esp + 0x20]
test byte [esp + 0x28], 1
je 0x6a7500
cmp ebx, 4
jb 0x6a7500
mov eax, dword [esp + 0x18]
inc dword [esp + eax*4 + 0x5bc]
cmp dword [esp + 0xab0], 0
je 0x6a7655
lea eax, [edx - 1]
test edx, eax
jne 0x6a75ff
mov edi, esi
test edx, edx
je 0x6a75ed
lea eax, [edx*8]
push eax
push ecx
mov esi, edx
call sub.msvcrt.dll_realloc
mov edx, esi
add esp, 8
jmp 0x6a75fb
lea eax, [esi*8]
push eax
push dword [esp + 8]
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esp + 4], eax
mov edx, ebx
mov ecx, dword [esp + 0x10]
mov ebx, ebp
inc edx
lea eax, [edi - 3]
mov ebp, dword [esp + 4]
mov dword [ebp + esi*4], eax
inc esi
inc dword [esp + 0x600]
sub ebx, edi
cmp ebx, 2
jbe 0x6a74f4
cmp ebx, 0xa
mov edi, 0xa
cmovb edi, ebx
cmp dword [esp + 0xab0], 0
je 0x6a746e
lea eax, [edx - 1]
test edx, eax
jne 0x6a74c7
mov ebp, esi
test edx, edx
je 0x6a74b5
lea eax, [edx*8]
push eax
push ecx
mov esi, edx
call sub.msvcrt.dll_realloc
mov edx, esi
add esp, 8
jmp 0x6a74c3
push 4
mov esi, edx
call sub.msvcrt.dll_malloc
mov edx, esi
add esp, 4
mov ecx, eax
mov esi, ebp
mov dword [ecx + edx*4], 0x11
lea eax, [esi - 1]
test esi, eax
jne 0x6a7461
mov ebp, ebx
mov dword [esp + 0x10], ecx
mov ebx, edx
test esi, esi
jne 0x6a7441
push 4
call sub.msvcrt.dll_malloc
add esp, 4
jmp 0x6a7455
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add dword [esp + eax*4 + 0x5bc], ebx
test ebx, ebx
je 0x6a75d4
cmp dword [esp + 0xab0], 0
je 0x6a71c0
mov ebp, ebx
lea edi, [edx*8]
lea ebx, [esi*8]
jmp 0x6a756d
push ebx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esp + 4], eax
mov edx, esi
mov ecx, dword [esp + 0x10]
mov esi, dword [esp]
mov eax, dword [esp + 4]
mov dword [eax + esi*4], 0
inc esi
add edi, 8
add ebx, 8
inc edx
dec ebp
je 0x6a75d0
lea eax, [edx - 1]
test edx, eax
mov dword [esp], esi
jne 0x6a759a
mov esi, edx
test edx, edx
je 0x6a7589
push edi
push ecx
call sub.msvcrt.dll_realloc
add esp, 8
jmp 0x6a7593
push 4
call sub.msvcrt.dll_malloc
add esp, 4
mov ecx, eax
mov edx, esi
mov esi, dword [esp]
mov eax, dword [esp + 0x18]
mov dword [ecx + edx*4], eax
lea eax, [esi - 1]
test esi, eax
jne 0x6a7557
mov eax, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, esi
mov esi, edx
test ecx, ecx
jne 0x6a7540
push 4
call sub.msvcrt.dll_malloc
add esp, 4
jmp 0x6a754a
mov edi, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x14]
cmp ecx, edi
jb 0x6a71d4
jmp 0x6a7712
push 4
mov esi, edx
call sub.msvcrt.dll_malloc
mov edx, esi
add esp, 4
mov ecx, eax
mov esi, edi
mov eax, dword [esp + 0x18]
mov dword [ecx + edx*4], eax
lea eax, [esi - 1]
test esi, eax
jne 0x6a7648
mov dword [esp], ebx
mov ebx, dword [esp + 4]
mov ebp, esi
mov esi, ecx
mov edi, edx
test ebp, ebp
je 0x6a7631
lea eax, [ebp*8]
push eax
push ebx
call sub.msvcrt.dll_realloc
add esp, 8
jmp 0x6a763b
push 4
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [esp + 4], eax
mov edx, edi
mov ecx, esi
mov esi, ebp
mov ebx, dword [esp]
inc edx
mov eax, dword [esp + 4]
mov dword [eax + esi*4], 0
inc esi
dec ebx
jmp 0x6a7695
lea eax, [esi*8]
push eax
push ebp
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esp + 4], eax
mov edx, ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp]
inc edx
lea eax, [edi - 3]
mov ebp, dword [esp + 4]
mov dword [ebp + esi*4], eax
inc esi
inc dword [esp + 0x5fc]
sub ebx, edi
cmp ebx, 2
jbe 0x6a74fc
cmp ebx, 6
mov edi, 6
cmovb edi, ebx
cmp dword [esp + 0xab0], 0
je 0x6a7683
lea eax, [edx - 1]
test edx, eax
jne 0x6a76e0
mov ebp, esi
test edx, edx
je 0x6a76ce
lea eax, [edx*8]
push eax
push ecx
mov esi, edx
call sub.msvcrt.dll_realloc
mov edx, esi
add esp, 8
jmp 0x6a76dc
push 4
mov esi, edx
call sub.msvcrt.dll_malloc
mov edx, esi
add esp, 4
mov ecx, eax
mov esi, ebp
mov dword [ecx + edx*4], 0x10
lea eax, [esi - 1]
test esi, eax
jne 0x6a7676
mov dword [esp], ebx
mov ebp, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ebx, edx
test esi, esi
jne 0x6a7658
push 4
call sub.msvcrt.dll_malloc
add esp, 4
jmp 0x6a7669
mov dword [esp + 0x1c], edx
lea eax, [esp + 0x53c]
lea ecx, [esp + 0x5bc]
mov edx, 0x13
push eax
push 7
call fcn.006abaa0
add esp, 8
cmp dword [esp + 0xab0], 0
je 0x6a777d
lea eax, [esp + 0xa3c]
lea ecx, [esp + 0x53c]
mov edx, 0x13
push eax
push 7
call fcn.006ab920
jmp 0x6a777a
mov dword [esp + 0x1c], edx
lea eax, [esp + 0x53c]
lea ecx, [esp + 0x5bc]
mov edx, 0x13
push eax
push 7
call fcn.006abaa0
add esp, 8
mov esi, dword [esp + 0xaac]
mov dword [esp], 0xf
cmp dword [esp + 0x5f8], 0
mov edx, dword [esp + 0xab4]
jne 0x6a78a5
mov dword [esp], 0xe
cmp dword [esp + 0x5c0], 0
jne 0x6a78a5
mov dword [esp], 0xd
cmp dword [esp + 0x5f4], 0
jne 0x6a78a5
mov dword [esp], 0xc
cmp dword [esp + 0x5c4], 0
jne 0x6a78a5
mov dword [esp], 0xb
cmp dword [esp + 0x5f0], 0
jne 0x6a78a5
mov dword [esp], 0xa
cmp dword [esp + 0x5c8], 0
jne 0x6a78a5
mov dword [esp], 9
cmp dword [esp + 0x5ec], 0
jne 0x6a78a5
mov dword [esp], 8
cmp dword [esp + 0x5cc], 0
jne 0x6a78a5
mov dword [esp], 7
cmp dword [esp + 0x5e8], 0
jne 0x6a78a5
mov dword [esp], 6
cmp dword [esp + 0x5d0], 0
jne 0x6a78a5
mov dword [esp], 5
cmp dword [esp + 0x5e4], 0
jne 0x6a78a5
mov dword [esp], 4
cmp dword [esp + 0x5d4], 0
jne 0x6a78a5
mov dword [esp], 3
cmp dword [esp + 0x5e0], 0
jne 0x6a78a5
mov dword [esp], 2
cmp dword [esp + 0x5d8], 0
jne 0x6a78a5
xor eax, eax
cmp dword [esp + 0x5dc], 0
setne al
mov dword [esp], eax
cmp dword [esp + 0xab0], 0
je 0x6a8688
movzx ecx, byte [esi]
mov ebx, dword [esp + 8]
and ebx, 1
mov esi, dword [edx]
test cl, cl
je 0x6a78cc
mov edi, dword [esp + 0xaac]
jmp 0x6a7930
lea eax, [esi - 1]
test esi, eax
jne 0x6a78f6
test esi, esi
je 0x6a7901
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a791b
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a791d
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 8]
shr ebx, 1
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a79ba
lea eax, [esi - 1]
test esi, eax
jne 0x6a7980
test esi, esi
je 0x6a798b
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a79a5
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a79a7
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 8]
shr ebx, 2
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a7a45
lea eax, [esi - 1]
test esi, eax
jne 0x6a7a0b
test esi, esi
je 0x6a7a16
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7a30
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7a32
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 8]
shr ebx, 3
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a7ad0
lea eax, [esi - 1]
test esi, eax
jne 0x6a7a96
test esi, esi
je 0x6a7aa1
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7abb
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7abd
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 8]
shr ebx, 4
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
je 0x6a7b04
mov edi, dword [esp + 0xab0]
mov ebp, dword [esp + 0xaac]
jmp 0x6a7b62
lea eax, [esi - 1]
test esi, eax
jne 0x6a7b2e
test esi, esi
mov edi, dword [esp + 0xab0]
je 0x6a7b39
add esi, esi
push esi
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7b4c
mov edi, dword [esp + 0xab0]
mov eax, dword [edi]
jmp 0x6a7b4e
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
shl ebx, cl
mov eax, dword [edi]
or byte [esi + eax - 1], bl
movzx ecx, byte [ebp]
inc cl
mov ebx, dword [esp + 0xc]
and ebx, 1
and cl, 7
mov byte [ebp], cl
mov esi, dword [edx]
je 0x6a7b8a
mov edi, dword [esp + 0xaac]
jmp 0x6a7bee
lea eax, [esi - 1]
test esi, eax
jne 0x6a7bb4
test esi, esi
je 0x6a7bbf
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7bd9
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7bdb
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 0xc]
shr ebx, 1
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a7c78
lea eax, [esi - 1]
test esi, eax
jne 0x6a7c3e
test esi, esi
je 0x6a7c49
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7c63
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7c65
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 0xc]
shr ebx, 2
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a7d03
lea eax, [esi - 1]
test esi, eax
jne 0x6a7cc9
test esi, esi
je 0x6a7cd4
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7cee
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7cf0
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 0xc]
shr ebx, 3
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a7d8e
lea eax, [esi - 1]
test esi, eax
jne 0x6a7d54
test esi, esi
je 0x6a7d5f
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7d79
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7d7b
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp + 0xc]
shr ebx, 4
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
je 0x6a7dc2
mov edi, dword [esp + 0xab0]
mov ebp, dword [esp + 0xaac]
jmp 0x6a7e20
lea eax, [esi - 1]
test esi, eax
jne 0x6a7dec
test esi, esi
mov edi, dword [esp + 0xab0]
je 0x6a7df7
add esi, esi
push esi
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7e0a
mov edi, dword [esp + 0xab0]
mov eax, dword [edi]
jmp 0x6a7e0c
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
shl ebx, cl
mov eax, dword [edi]
or byte [esi + eax - 1], bl
movzx ecx, byte [ebp]
inc cl
mov ebx, dword [esp]
and ebx, 1
and cl, 7
mov byte [ebp], cl
mov esi, dword [edx]
je 0x6a7e47
mov edi, dword [esp + 0xaac]
jmp 0x6a7eab
lea eax, [esi - 1]
test esi, eax
jne 0x6a7e71
test esi, esi
je 0x6a7e7c
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7e96
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7e98
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp]
shr ebx, 1
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a7f34
lea eax, [esi - 1]
test esi, eax
jne 0x6a7efa
test esi, esi
je 0x6a7f05
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7f1f
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7f21
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp]
shr ebx, 2
and ebx, 1
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a7fbe
lea eax, [esi - 1]
test esi, eax
jne 0x6a7f84
test esi, esi
je 0x6a7f8f
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a7fa9
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a7fab
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
mov ebx, dword [esp]
shr ebx, 3
and cl, 7
mov byte [edi], cl
mov esi, dword [edx]
jne 0x6a8045
lea eax, [esi - 1]
test esi, eax
jne 0x6a800b
test esi, esi
je 0x6a8016
add esi, esi
push esi
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a8030
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a8032
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov edi, dword [esp + 0xaac]
movzx ecx, byte [edi]
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [edi]
inc cl
and cl, 7
mov byte [edi], cl
shl dword [esp], 2
mov esi, 0xfffffff0
jmp 0x6a80b3
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
shr ebx, 2
and ebx, 1
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [edi + eax - 1], bl
movzx ecx, byte [ebp]
inc cl
and cl, 7
mov byte [ebp], cl
add esi, 4
cmp dword [esp], esi
je 0x6a823d
mov eax, dword [esi + 0x707898]
mov ebx, dword [esp + eax*4 + 0x53c]
mov edi, dword [edx]
test cl, cl
je 0x6a80d0
mov ebp, dword [esp + 0xaac]
jmp 0x6a8137
lea eax, [edi - 1]
test edi, eax
jne 0x6a80fb
test edi, edi
je 0x6a8106
add edi, edi
push edi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a8120
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a8123
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
mov eax, ebx
and eax, 1
shl eax, cl
mov ecx, dword [esp + 0xab0]
mov ecx, dword [ecx]
or byte [edi + ecx - 1], al
movzx ecx, byte [ebp]
inc cl
and cl, 7
mov byte [ebp], cl
mov edi, dword [edx]
jne 0x6a81c2
lea eax, [edi - 1]
test edi, eax
jne 0x6a8186
test edi, edi
je 0x6a8191
add edi, edi
push edi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a81ab
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a81ae
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
mov eax, ebx
shr eax, 1
and eax, 1
shl eax, cl
mov ecx, dword [esp + 0xab0]
mov ecx, dword [ecx]
or byte [edi + ecx - 1], al
movzx ecx, byte [ebp]
inc cl
and cl, 7
mov byte [ebp], cl
mov edi, dword [edx]
jne 0x6a8086
lea eax, [edi - 1]
test edi, eax
jne 0x6a8069
test edi, edi
je 0x6a821b
add edi, edi
push edi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a8235
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
jmp 0x6a8072
cmp dword [esp + 0x1c], 0
mov esi, dword [esp + 0xaac]
mov ebx, dword [esp + 0xab0]
je 0x6a8688
xor edi, edi
jmp 0x6a828d
mov eax, ebx
mov ebx, dword [esp]
shl ebx, cl
mov eax, dword [eax]
or byte [edi + eax - 1], bl
movzx ecx, byte [esi]
inc cl
and cl, 7
mov byte [esi], cl
mov edi, dword [esp + 0x14]
inc edi
cmp edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0xab0]
je 0x6a8688
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov eax, dword [eax + edi*4]
mov edi, dword [esp + eax*4 + 0x53c]
test edi, edi
je 0x6a83d0
mov eax, dword [esp + eax*4 + 0xa3c]
mov dword [esp], eax
dec edi
jmp 0x6a82ed
mov ebp, dword [esp + 0xaac]
mov bl, ch
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [ebp]
inc cl
and cl, 7
mov byte [ebp], cl
add edi, 0xffffffff
jae 0x6a8380
xor ebx, ebx
mov eax, dword [esp]
bt eax, edi
setb ch
mov esi, dword [edx]
test cl, cl
jne 0x6a82c0
lea eax, [esi - 1]
test esi, eax
jne 0x6a832d
mov byte [esp + 0x18], ch
test esi, esi
je 0x6a8338
add esi, esi
push esi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a8352
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a8359
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov ch, byte [esp + 0x18]
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov ebp, dword [esp + 0xaac]
mov cl, byte [ebp]
jmp 0x6a82c7
mov esi, ebp
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + edi*4]
mov ebx, dword [esp + 0xab0]
cmp eax, 0x12
je 0x6a83d9
cmp eax, 0x11
je 0x6a84b0
cmp eax, 0x10
jne 0x6a8277
mov eax, dword [esp + 4]
mov edi, dword [eax + edi*4]
mov esi, dword [edx]
test cl, cl
je 0x6a84ef
mov ebp, dword [esp + 0xaac]
jmp 0x6a860d
mov edi, dword [esp + 0x14]
cmp eax, 0x12
jne 0x6a8399
mov eax, dword [esp + 4]
mov edi, dword [eax + edi*4]
xor ebx, ebx
jmp 0x6a8422
mov ebp, dword [esp + 0xaac]
mov al, ch
shl eax, cl
mov ecx, eax
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], cl
movzx ecx, byte [ebp]
inc cl
and cl, 7
mov byte [ebp], cl
inc ebx
cmp ebx, 7
mov esi, ebp
je 0x6a8277
xor eax, eax
bt edi, ebx
setb ch
mov esi, dword [edx]
test cl, cl
jne 0x6a83f0
lea eax, [esi - 1]
test esi, eax
jne 0x6a845e
mov byte [esp], ch
test esi, esi
je 0x6a8469
add esi, esi
push esi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a8483
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a8489
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov ch, byte [esp]
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov ebp, dword [esp + 0xaac]
mov cl, byte [ebp]
xor eax, eax
jmp 0x6a83f7
mov eax, dword [esp + 4]
mov eax, dword [eax + edi*4]
mov dword [esp], eax
mov esi, dword [edx]
test cl, cl
je 0x6a84cc
mov ebp, dword [esp + 0xaac]
jmp 0x6a854d
lea eax, [esi - 1]
test esi, eax
jne 0x6a8519
test esi, esi
je 0x6a8524
add esi, esi
push esi
push dword [ebx]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a8537
lea eax, [esi - 1]
test esi, eax
jne 0x6a851d
test esi, esi
je 0x6a85e4
add esi, esi
push esi
push dword [ebx]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a85f7
mov eax, dword [ebx]
jmp 0x6a8539
mov eax, dword [ebx]
jmp 0x6a85f9
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov dword [ebx], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
mov eax, dword [esp]
and eax, 1
shl eax, cl
mov ecx, dword [ebx]
or byte [esi + ecx - 1], al
movzx ecx, byte [ebp]
inc cl
and cl, 7
mov byte [ebp], cl
mov edi, dword [edx]
mov esi, ebp
jne 0x6a85b5
lea eax, [edi - 1]
test edi, eax
jne 0x6a8590
test edi, edi
je 0x6a8594
add edi, edi
push edi
push dword [ebx]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a85a7
mov eax, dword [ebx]
jmp 0x6a85a9
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov dword [ebx], eax
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
movzx ecx, byte [esi]
mov ebp, dword [esp]
mov eax, ebp
shr eax, 1
and eax, 1
shl eax, cl
mov ecx, dword [ebx]
or byte [edi + ecx - 1], al
movzx ecx, byte [esi]
inc cl
shr ebp, 2
and ebp, 1
mov dword [esp], ebp
and cl, 7
mov byte [esi], cl
mov edi, dword [edx]
jne 0x6a8260
jmp 0x6a8638
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov dword [ebx], eax
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov ebp, dword [esp + 0xaac]
movzx ecx, byte [ebp]
mov eax, edi
and eax, 1
shl eax, cl
mov ecx, dword [ebx]
or byte [esi + ecx - 1], al
movzx ecx, byte [ebp]
inc cl
shr edi, 1
and edi, 1
mov dword [esp], edi
and cl, 7
mov byte [ebp], cl
mov edi, dword [edx]
mov esi, ebp
jne 0x6a8260
lea eax, [edi - 1]
test edi, eax
jne 0x6a865b
test edi, edi
je 0x6a865f
add edi, edi
push edi
push dword [ebx]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a8672
add edi, dword [ebx]
jmp 0x6a8676
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov dword [ebx], eax
add edi, eax
mov eax, ebx
mov byte [edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
movzx ecx, byte [esi]
jmp 0x6a8262
push dword [esp + 0x10]
call sub.msvcrt.dll_free
add esp, 4
push dword [esp + 4]
call sub.msvcrt.dll_free
add esp, 4
mov eax, dword [esp + 0x30]
cmp dword [eax], 0
mov edi, dword [esp + 0xaa8]
je 0x6a86d7
push 2
call dword [0x71401c]
add esp, 4
mov ecx, dword [esp + 0xab4]
mov ecx, dword [ecx]
sub ecx, dword [esp + 0x34]
push ecx
push str.treesize:__d_n
push eax
call fcn.006a8de0
add esp, 0xc
lea eax, [esp + 0x5bc]
lea ecx, [esp + 0xbc]
mov edx, 0x120
push eax
push 0xf
call fcn.006ab920
add esp, 8
lea eax, [esp + 0x53c]
lea ecx, [esp + 0x3c]
mov edx, 0x20
push eax
push 0xf
call fcn.006ab920
add esp, 8
mov edx, dword [esp + 0xab4]
mov eax, dword [edx]
mov dword [esp + 0x24], eax
cmp edi, dword [esp + 0xaa4]
jbe 0x6a8c11
mov edi, dword [esp + 0xaa4]
jmp 0x6a8752
mov edi, dword [esp + 0x18]
inc edi
cmp edi, dword [esp + 0xaa8]
je 0x6a8c11
mov ecx, dword [esp + 0xaa0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
movzx ecx, word [ecx + edi*2]
movzx ebx, word [eax + edi*2]
test ecx, ecx
mov dword [esp + 0x18], edi
je 0x6a8a80
lea edi, [ecx - 1]
mov eax, edi
mov dword [esp + 0x14], ecx
cmp cx, 5
jb 0x6a87a3
bsr eax, edi
xor eax, 0x1f
mov cl, 0x1e
sub cl, al
movzx ecx, cl
xor edx, edx
bt edi, ecx
setb dl
lea eax, [edx + eax*2]
mov edx, dword [esp + 0xab4]
xor eax, 0x3e
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x10], ebx
mov eax, dword [ebx*4 + 0x707dc8]
mov edi, dword [esp + eax*4 + 0xbc]
test edi, edi
je 0x6a88a0
mov eax, dword [esp + eax*4 + 0x5bc]
mov dword [esp + 4], eax
movzx ecx, byte [esi]
dec edi
jmp 0x6a880f
mov ebp, dword [esp + 0xaac]
mov bl, ch
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [esi + eax - 1], bl
movzx ecx, byte [ebp]
inc cl
and cl, 7
mov byte [ebp], cl
add edi, 0xffffffff
mov esi, ebp
jae 0x6a88a0
xor ebx, ebx
mov eax, dword [esp + 4]
bt eax, edi
setb ch
mov esi, dword [edx]
test cl, cl
jne 0x6a87e0
lea eax, [esi - 1]
test esi, eax
jne 0x6a884f
mov byte [esp], ch
test esi, esi
je 0x6a885a
add esi, esi
push esi
mov ebp, dword [esp + 0xab4]
push dword [ebp]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov esi, dword [edx]
jmp 0x6a8874
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a887a
xor esi, esi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov ebp, dword [esp + 0xab0]
mov dword [ebp], eax
mov ch, byte [esp]
mov byte [eax + esi], 0
mov esi, dword [edx]
inc esi
mov dword [edx], esi
mov ebp, dword [esp + 0xaac]
mov cl, byte [ebp]
jmp 0x6a87e7
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 0x102]
cmp eax, 0xffffff09
jae 0x6a8b50
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + eax*4 + 0x3c]
test esi, esi
je 0x6a8990
mov eax, dword [esp + eax*4 + 0x53c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaac]
movzx ecx, byte [eax]
dec esi
jmp 0x6a890b
mov edi, dword [esp + 0xaac]
mov bl, ch
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [ebp + eax - 1], bl
movzx ecx, byte [edi]
inc cl
and cl, 7
mov byte [edi], cl
add esi, 0xffffffff
jae 0x6a8990
xor ebx, ebx
mov eax, dword [esp + 4]
bt eax, esi
setb ch
mov ebp, dword [edx]
test cl, cl
jne 0x6a88e0
lea eax, [ebp - 1]
test ebp, eax
jne 0x6a894a
mov byte [esp], ch
test ebp, ebp
je 0x6a8955
add ebp, ebp
push ebp
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov ebp, dword [edx]
jmp 0x6a896f
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a8974
xor ebp, ebp
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov ch, byte [esp]
mov byte [eax + ebp], 0
mov ebp, dword [edx]
inc ebp
mov dword [edx], ebp
mov edi, dword [esp + 0xaac]
mov cl, byte [edi]
jmp 0x6a88e7
mov edi, dword [esp + 0x14]
cmp di, 5
mov esi, dword [esp + 0xaac]
jb 0x6a8740
bsr ecx, dword [esp + 0x2c]
mov ebx, ecx
mov eax, 0xfffffffe
rol eax, cl
xor ebx, 0xffffffe0
add eax, edi
add ebx, 0x1f
mov edi, 0xffffffff
mov dword [esp + 4], ebx
mov ecx, ebx
shl edi, cl
not edi
and edi, eax
mov dword [esp], edi
movzx ecx, byte [esi]
xor ebp, ebp
jmp 0x6a8a10
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov cl, byte [esi]
mov bl, ch
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [edi + eax - 1], bl
movzx ecx, byte [esi]
inc cl
and cl, 7
mov byte [esi], cl
inc ebp
cmp dword [esp + 4], ebp
je 0x6a8740
xor ebx, ebx
mov eax, dword [esp]
bt eax, ebp
setb ch
mov edi, dword [edx]
test cl, cl
jne 0x6a89ea
lea eax, [edi - 1]
test edi, eax
jne 0x6a89d6
mov byte [esp + 0x10], ch
test edi, edi
je 0x6a8a4f
add edi, edi
push edi
mov esi, dword [esp + 0xab4]
push dword [esi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a8a69
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov esi, dword [esp + 0xab0]
mov dword [esi], eax
mov esi, dword [esp + 0xaac]
mov ch, byte [esp + 0x10]
jmp 0x6a89df
mov edi, dword [esp + ebx*4 + 0xbc]
test edi, edi
je 0x6a8740
mov eax, dword [esp + ebx*4 + 0x5bc]
mov dword [esp + 4], eax
movzx ecx, byte [esi]
dec edi
jmp 0x6a8ad8
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
mov byte [eax + ebp], 0
mov ebp, dword [edx]
inc ebp
mov dword [edx], ebp
mov cl, byte [esi]
mov bl, ch
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [ebp + eax - 1], bl
movzx ecx, byte [esi]
inc cl
and cl, 7
mov byte [esi], cl
add edi, 0xffffffff
jae 0x6a8740
xor ebx, ebx
mov eax, dword [esp + 4]
bt eax, edi
setb ch
mov ebp, dword [edx]
test cl, cl
jne 0x6a8ab4
lea eax, [ebp - 1]
test ebp, eax
jne 0x6a8aa0
mov byte [esp], ch
test ebp, ebp
je 0x6a8b17
add ebp, ebp
push ebp
mov esi, dword [esp + 0xab4]
push dword [esi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov ebp, dword [edx]
jmp 0x6a8b31
xor ebp, ebp
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov esi, dword [esp + 0xab0]
mov dword [esi], eax
mov esi, dword [esp + 0xaac]
mov ch, byte [esp]
jmp 0x6a8aa9
mov eax, dword [ecx*4 + 0x707910]
mov dword [esp + 4], eax
mov eax, dword [ecx*4 + 0x70824c]
mov dword [esp], eax
movzx ecx, byte [esi]
xor ebp, ebp
jmp 0x6a8ba5
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
mov byte [eax + edi], 0
mov edi, dword [edx]
inc edi
mov dword [edx], edi
mov cl, byte [esi]
mov bl, ch
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [edi + eax - 1], bl
movzx ecx, byte [esi]
inc cl
and cl, 7
mov byte [esi], cl
inc ebp
cmp dword [esp], ebp
je 0x6a88b5
xor ebx, ebx
mov eax, dword [esp + 4]
bt eax, ebp
setb ch
mov edi, dword [edx]
test cl, cl
jne 0x6a8b80
lea eax, [edi - 1]
test edi, eax
jne 0x6a8b6c
mov byte [esp + 0x10], ch
test edi, edi
je 0x6a8be5
add edi, edi
push edi
mov esi, dword [esp + 0xab4]
push dword [esi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov edi, dword [edx]
jmp 0x6a8bff
xor edi, edi
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov esi, dword [esp + 0xab0]
mov dword [esi], eax
mov esi, dword [esp + 0xaac]
mov ch, byte [esp + 0x10]
jmp 0x6a8b75
mov esi, dword [esp + 0x4bc]
test esi, esi
je 0x6a8ceb
mov eax, dword [esp + 0x9bc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaac]
movzx ecx, byte [eax]
dec esi
jmp 0x6a8c6b
mov edi, dword [esp + 0xaac]
mov bl, ch
shl ebx, cl
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
or byte [ebp + eax - 1], bl
movzx ecx, byte [edi]
inc cl
and cl, 7
mov byte [edi], cl
add esi, 0xffffffff
jae 0x6a8ceb
xor ebx, ebx
mov eax, dword [esp + 4]
bt eax, esi
setb ch
mov ebp, dword [edx]
test cl, cl
jne 0x6a8c40
lea eax, [ebp - 1]
test ebp, eax
jne 0x6a8caa
mov byte [esp], ch
test ebp, ebp
je 0x6a8cb5
add ebp, ebp
push ebp
mov edi, dword [esp + 0xab4]
push dword [edi]
call sub.msvcrt.dll_realloc
add esp, 8
mov edx, dword [esp + 0xab4]
mov ebp, dword [edx]
jmp 0x6a8ccf
mov eax, dword [esp + 0xab0]
mov eax, dword [eax]
jmp 0x6a8cd4
xor ebp, ebp
push 1
call sub.msvcrt.dll_malloc
add esp, 4
mov edx, dword [esp + 0xab4]
mov edi, dword [esp + 0xab0]
mov dword [edi], eax
mov ch, byte [esp]
mov byte [eax + ebp], 0
mov ebp, dword [edx]
inc ebp
mov dword [edx], ebp
mov edi, dword [esp + 0xaac]
mov cl, byte [edi]
jmp 0x6a8c47
xor esi, esi
mov ebx, dword [esp + 0xaa8]
mov eax, ebx
mov edi, dword [esp + 0xaa4]
sub eax, edi
jbe 0x6a8d99
mov ecx, dword [esp + 0xaa0]
mov ecx, dword [ecx + 4]
mov ebp, edi
mov edx, edi
not edx
add edx, ebx
jne 0x6a8d3c
xor esi, esi
test al, 1
mov edx, dword [esp + 0xab4]
je 0x6a8d99
cmp word [ecx + ebp*2], 0
je 0x6a8d92
mov eax, dword [esp + 0xaa0]
mov eax, dword [eax]
movzx eax, word [eax + ebp*2]
jmp 0x6a8d97
mov edx, eax
and edx, 0xfffffffe
xor esi, esi
jmp 0x6a8d5c
add esi, ebx
add esi, edi
add ebp, 2
add edx, 0xfffffffe
je 0x6a8d1b
mov edi, 1
cmp word [ecx + ebp*2], 0
mov ebx, 1
je 0x6a8d7a
mov ebx, dword [esp + 0xaa0]
mov ebx, dword [ebx]
movzx ebx, word [ebx + ebp*2]
cmp word [ecx + ebp*2 + 2], 0
je 0x6a8d50
mov edi, dword [esp + 0xaa0]
mov edi, dword [edi]
movzx edi, word [edi + ebp*2 + 2]
jmp 0x6a8d50
mov eax, 1
add esi, eax
mov eax, dword [esp + 0x30]
cmp dword [eax], 0
je 0x6a8dce
mov edi, dword [edx]
sub edi, dword [esp + 0x24]
push 2
call dword [0x71401c]
add esp, 4
mov ecx, edi
shr ecx, 0xa
push esi
push ecx
push edi
push str.compressed_block_size:__d___dk___unc:__d__n
push eax
call fcn.006a8de0
add esp, 0xa9c
jmp 0x6a8dd4
add esp, 0xa88
pop esi
pop edi
pop ebx
pop ebp
ret