Function at 0x10070110
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x134
mov edi, dword [ebp + 0x18]
inc dword [0x10210954]
lea ebx, [edi + edi]
push 0x18
push ebx
call fcn.101beb7a
mov dword [esp + 0x108], eax
push 4
push ebx
call fcn.101beb7a
mov dword [esp + 0x114], eax
lea eax, [esp + 0x108]
push eax
push 9
push dword [ebp + 8]
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.100ab850
add esp, 0x24
mov esi, dword [esp + 0xf8]
cmp esi, 4
je 0x10071f90
mov edx, esi
test edi, edi
jle 0x100718c9
movsd xmm0, qword [0x101e42e0]
mov dword [esp + 0xac], esi
xor ebx, ebx
mov dword [esp + 0xb8], ebx
lea ecx, [edi - 1]
mov dword [esp + 0xa8], ecx
mov edi, edx
mov esi, dword [esp + 0x104]
mov dword [esi + ebx*4], 4
lea esi, [ebx + 1]
xor ecx, ecx
cmp esi, dword [ebp + 0x18]
cmovne ecx, esi
lea eax, [esp + 0xf8]
mov dword [esp + 0xc4], ecx
shl ecx, 4
add ecx, dword [ebp + 8]
mov dword [esp + 0xfc], ecx
push eax
push 9
push ecx
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.100ab850
add esp, 0x14
mov eax, dword [esp + 0xf8]
cmp eax, 4
je 0x10071e49
cmp eax, edi
je 0x100705a4
cmp edi, 4
je 0x100705a4
mov edx, dword [ebp + 0x58]
mov ecx, dword [ebp + 0x5c]
mov edi, dword [ebp + 8]
movsd xmm4, qword [edx]
movsd xmm1, qword [ecx]
movsd xmm0, qword [edx + 8]
mov edx, dword [esp + 0xfc]
movsd xmm2, qword [ecx + 8]
movsd xmm3, qword [edx]
subsd xmm1, xmm4
movsd qword [esp + 0xd8], xmm1
movaps xmm5, xmm1
mulsd xmm1, xmm1
subsd xmm2, xmm0
movsd qword [esp + 0xd0], xmm2
mov eax, ebx
shl eax, 4
movsd xmm7, qword [edi + eax]
movsd xmm6, qword [eax + edi + 8]
movsd qword [esp + 0xf0], xmm7
movsd qword [esp + 0xe8], xmm6
subsd xmm3, xmm7
movsd xmm7, qword [edx + 8]
subsd xmm7, xmm6
movsd qword [esp + 0xc8], xmm7
mulsd xmm5, xmm7
movaps xmm6, xmm2
mulsd xmm2, xmm2
mulsd xmm7, xmm7
mulsd xmm6, xmm3
addsd xmm1, xmm2
sqrtsd xmm2, xmm1
subsd xmm5, xmm6
movsd qword [esp + 0xb0], xmm5
movaps xmm6, xmm3
mulsd xmm6, xmm3
addsd xmm6, xmm7
sqrtsd xmm7, xmm6
pxor xmm1, xmm1
movsd xmm6, qword [0x101e42e0]
ucomisd xmm2, xmm1
jne 0x100702d6
jp 0x100702d6
movaps xmm2, xmm6
pxor xmm1, xmm1
ucomisd xmm7, xmm1
movsd xmm1, qword [0x1020c128]
jne 0x100702ed
jp 0x100702ed
movaps xmm7, xmm6
movaps xmm6, xmm2
mulsd xmm6, xmm7
divsd xmm5, xmm6
movsd qword [esp + 0xe0], xmm5
comisd xmm1, xmm5
jbe 0x1007034e
movsd xmm5, qword [esp + 0xe0]
pxor xmm6, xmm6
subsd xmm6, xmm1
comisd xmm5, xmm6
jbe 0x1007034e
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x100]
lea edi, [edx + edx*2]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax + edx]
lea ecx, [ecx + edi*8]
movsd qword [ecx], xmm0
movsd xmm1, qword [eax + edx + 8]
movsd qword [ecx + 8], xmm1
jmp 0x10070593
movsd xmm5, qword [esp + 0xd0]
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [esp + 0xe8]
movsd qword [esp + 0x90], xmm2
movsd xmm2, qword [esp + 0xf0]
movsd qword [esp + 0x98], xmm7
movsd xmm7, qword [esp + 0xd8]
movaps xmm6, xmm7
subsd xmm2, xmm4
subsd xmm1, xmm0
mulsd xmm6, xmm1
movaps xmm0, xmm5
mulsd xmm3, xmm1
mulsd xmm0, xmm2
subsd xmm6, xmm0
movsd xmm1, qword [esp + 0xc8]
mulsd xmm1, xmm2
subsd xmm3, xmm1
movsd xmm1, qword [esp + 0x88]
pxor xmm0, xmm0
subsd xmm0, xmm6
movsd xmm6, qword [esp + 0xb0]
divsd xmm0, xmm6
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [esp + 0x80]
pxor xmm2, xmm2
subsd xmm2, xmm3
divsd xmm2, xmm6
mulsd xmm7, xmm2
movsd xmm3, qword [0x101e42f0]
mulsd xmm5, xmm2
addsd xmm4, xmm7
addsd xmm0, xmm5
movaps xmm5, xmm1
divsd xmm1, qword [esp + 0x98]
divsd xmm5, qword [esp + 0x90]
addsd xmm3, xmm5
comisd xmm2, xmm3
ja 0x10070446
pxor xmm3, xmm3
subsd xmm3, xmm5
comisd xmm3, xmm2
jbe 0x1007046a
movsd xmm3, qword [0x101e42f0]
movsd xmm2, qword [esp + 0xa0]
mov ecx, 1
xor edx, edx
addsd xmm3, xmm1
comisd xmm2, xmm3
ja 0x100704dc
jmp 0x100704c5
movsd xmm3, qword [0x101e42f0]
subsd xmm3, xmm5
comisd xmm3, xmm2
jbe 0x100704a6
comisd xmm2, xmm5
jbe 0x100704a6
movsd xmm3, qword [0x101e42f0]
movsd xmm2, qword [esp + 0xa0]
xor ecx, ecx
mov edx, 1
addsd xmm3, xmm1
comisd xmm2, xmm3
ja 0x100704fe
jmp 0x100704c5
movsd xmm3, qword [0x101e42f0]
movsd xmm2, qword [esp + 0xa0]
xor ecx, ecx
xor edx, edx
addsd xmm3, xmm1
comisd xmm2, xmm3
ja 0x100704fe
pxor xmm2, xmm2
subsd xmm2, xmm1
comisd xmm2, xmmword [esp + 0xa0]
jbe 0x10070521
test ecx, ecx
je 0x100704fe
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x100]
lea edi, [edx + edx*2]
lea ecx, [ecx + edi*8]
movsd qword [ecx], xmm4
movsd qword [ecx + 8], xmm0
jmp 0x10070593
test edx, edx
je 0x100704dc
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x100]
lea edi, [edx + edx*2]
lea ecx, [ecx + edi*8]
movsd qword [ecx], xmm4
movsd qword [ecx + 8], xmm0
jmp 0x10070593
movsd xmm2, qword [0x101e42f0]
subsd xmm2, xmm1
comisd xmm2, xmmword [esp + 0xa0]
jbe 0x10070566
movsd xmm2, qword [esp + 0xa0]
comisd xmm2, xmm1
jbe 0x10070566
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x100]
lea edi, [edx + edx*2]
lea ecx, [ecx + edi*8]
movsd qword [ecx], xmm4
movsd qword [ecx + 8], xmm0
jmp 0x10070593
test ecx, ecx
je 0x100704dc
test edx, edx
je 0x100704dc
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x100]
lea edi, [edx + edx*2]
lea ecx, [ecx + edi*8]
movsd qword [ecx], xmm4
movsd qword [ecx + 8], xmm0
mov eax, dword [esp + 0xf8]
inc dword [esp + 0xb8]
mov dword [ecx + 0x10], ebx
cmp esi, dword [ebp + 0x18]
mov edi, eax
mov ebx, esi
jl 0x100701a2
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xac]
mov edi, dword [ebp + 0x18]
cmp ebx, 2
jl 0x100718c9
mov eax, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x58]
movsd xmm2, qword [eax]
subsd xmm2, qword [edx]
movaps xmm1, xmm2
andps xmm1, xmmword [0x101e42c0]
pxor xmm0, xmm0
ucomisd xmm0, xmm1
jp 0x100705f3
je 0x10071c9e
pxor xmm0, xmm0
comisd xmm0, xmm2
jbe 0x10070613
push 0x10072000
push 0x18
push ebx
push dword [esp + 0x10c]
call fcn.101bec80
jmp 0x10070627
push 0x10071fe0
push 0x18
push ebx
push dword [esp + 0x10c]
call fcn.101bec80
add esp, 0x10
push 4
push edi
call fcn.101beb7a
mov dword [esp + 0xf4], eax
push 4
push ebx
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0xe0], eax
mov edx, dword [esp + 0xec]
and edx, 0xf
je 0x10070668
test dl, 3
jne 0x10071a89
neg edx
add edx, 0x10
shr edx, 2
lea eax, [edx + 4]
cmp edi, eax
jl 0x10071a89
mov eax, edi
sub eax, edx
and eax, 3
neg eax
add eax, edi
test edx, edx
jbe 0x10070693
mov esi, dword [esp + 0xec]
xor ecx, ecx
mov dword [esi + ecx*4], edi
inc ecx
cmp ecx, edx
jb 0x1007068b
mov ecx, dword [esp + 0xec]
movd xmm0, edi
pshufd xmm0, xmm0, 0
movdqa xmmword [ecx + edx*4], xmm0
add edx, 4
cmp edx, eax
jb 0x100706a3
cmp eax, edi
jae 0x100706c2
mov edx, dword [esp + 0xec]
mov dword [edx + eax*4], edi
inc eax
cmp eax, edi
jb 0x100706ba
mov edx, dword [esp + 0xec]
mov eax, dword [esp + 0x100]
xor ecx, ecx
lea esi, [ecx + ecx*2]
mov esi, dword [eax + esi*8 + 0x10]
test esi, esi
jl 0x100706e0
mov dword [edx + esi*4], ecx
inc ecx
cmp ecx, ebx
jb 0x100706d2
mov esi, dword [esp + 0xe0]
and esi, 0xf
mov ecx, esi
je 0x10070709
test esi, 3
jne 0x10071a90
mov ecx, esi
neg ecx
add ecx, 0x10
shr ecx, 2
lea eax, [ecx + 4]
cmp ebx, eax
jl 0x10071a90
mov eax, ebx
sub eax, ecx
and eax, 3
neg eax
add eax, ebx
test ecx, ecx
jbe 0x1007073b
mov edi, dword [esp + 0xe0]
xor edx, edx
mov dword [edi + edx*4], 0
inc edx
cmp edx, ecx
jb 0x1007072c
mov edi, dword [ebp + 0x18]
mov edx, dword [esp + 0xe0]
pxor xmm0, xmm0
movdqa xmmword [edx + ecx*4], xmm0
add ecx, 4
cmp ecx, eax
jb 0x10070746
cmp eax, ebx
jae 0x10070769
mov edx, dword [esp + 0xe0]
mov dword [edx + eax*4], 0
inc eax
cmp eax, ebx
jb 0x1007075d
cmp dword [ebp + 0x1c], 0
je 0x10071c7b
push 4
push ebx
call fcn.101beb7a
mov dword [esp + 0xd0], eax
push 4
push ebx
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0xc4], eax
mov dword [esp + 0x88], esi
xor eax, eax
mov dword [esp + 0xd8], eax
lea ecx, [edi + ebx + 2]
mov dword [esp + 0x80], eax
mov esi, eax
mov dword [esp + 0x84], ecx
lea edx, [ebx - 1]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xe0]
lea eax, [ebx - 2]
mov dword [esp + 0x90], eax
cmp dword [edx + esi*4], 0
jne 0x10070b22
mov edi, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
lea eax, [esi + esi*2]
mov edi, dword [edi + eax*8 + 0x10]
cmp dword [ecx + edi*4], 0
je 0x10070b22
mov dword [esp + 0x8c], edi
push 0x10
push dword [esp + 0x88]
mov dword [esp + 0xe8], edx
call fcn.101beb7a
mov edx, dword [esp + 0xe8]
add esp, 8
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0x9c], edi
mov dword [ecx + ebx*4], eax
mov ebx, dword [ebp + 8]
mov dword [esp + 0x80], esi
mov ecx, edi
mov dword [esp + 0xe0], edx
shl ecx, 4
movsd xmm0, qword [ecx + ebx]
movsd qword [eax], xmm0
movsd xmm1, qword [ecx + ebx + 8]
mov ecx, dword [esp + 0xec]
movsd qword [eax + 8], xmm1
mov eax, 1
mov dword [edx + esi*4], 1
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x104]
mov ebx, dword [ecx + edx*4]
cmp ebx, dword [ebp + 0x18]
mov esi, dword [esi + edx*4]
jge 0x10070a7e
cmp esi, 4
je 0x100708a9
cmp ebx, dword [esp + 0x94]
jne 0x100708b7
mov esi, dword [esp + 0xe0]
mov dword [esi + ebx*4], 1
movsd xmm1, qword [0x1020c110]
lea esi, [ebx + ebx*2]
mov ebx, dword [esp + 0x100]
lea edi, [ebx + esi*8]
movsd xmm3, qword [edi]
mov esi, dword [esp + 0xc8]
movaps xmm0, xmm3
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0xd8]
mov ebx, eax
shl ebx, 4
add ebx, dword [esi + edi*4]
subsd xmm0, qword [ebx - 0x10]
comisd xmm1, xmm0
jbe 0x10070926
pxor xmm2, xmm2
subsd xmm2, xmm1
comisd xmm0, xmm2
jbe 0x10070926
mov esi, dword [esp + 0x98]
movsd xmm0, qword [esi + 8]
subsd xmm0, qword [ebx - 8]
comisd xmm1, xmm0
jbe 0x10070926
comisd xmm0, xmm2
ja 0x10070969
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x100]
movsd qword [ebx], xmm3
movsd xmm0, qword [esi + 8]
movsd qword [ebx + 8], xmm0
mov ebx, dword [ecx + edx*4]
inc eax
lea ebx, [ebx + ebx*2]
lea esi, [edi + ebx*8]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x98], esi
mov esi, dword [esp + 0xd8]
mov ebx, eax
shl ebx, 4
add ebx, dword [edi + esi*4]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x104]
movsd xmm0, qword [esi + 0x18]
movsd qword [ebx], xmm0
movsd xmm1, qword [esi + 0x20]
movsd qword [ebx + 8], xmm1
inc eax
mov ebx, dword [ecx + edx*4]
cmp dword [edi + ebx*4 + 4], 4
je 0x1007099e
cmp ebx, dword [esp + 0x90]
jne 0x100709ad
mov esi, dword [esp + 0xe0]
mov dword [esi + ebx*4 + 4], 1
mov esi, edx
mov edx, dword [esp + 0x100]
lea ebx, [ebx + ebx*2]
mov edx, dword [edx + ebx*8 + 0x28]
inc edx
xor edi, edi
cmp edx, dword [ebp + 0x18]
cmove edx, edi
cmp edx, dword [esp + 0x9c]
je 0x10070a7b
movsd xmm1, qword [0x1020c110]
mov edi, dword [ebp + 8]
mov esi, dword [ecx + esi*4]
mov ebx, edx
shl ebx, 4
movsd xmm3, qword [ebx + edi]
mov edi, dword [esp + 0x100]
lea esi, [esi + esi*2]
movsd xmm0, qword [edi + esi*8 + 0x18]
subsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x10070a32
pxor xmm2, xmm2
subsd xmm2, xmm1
comisd xmm0, xmm2
jbe 0x10070a32
movsd xmm0, qword [edi + esi*8 + 0x20]
mov esi, dword [ebp + 8]
subsd xmm0, qword [ebx + esi + 8]
comisd xmm1, xmm0
jbe 0x10070a32
comisd xmm0, xmm2
ja 0x10070adf
mov esi, dword [esp + 0xd8]
mov edi, dword [ebp + 8]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0xc8]
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x8c], edx
mov edx, eax
shl edx, 4
movsd qword [ecx + edx], xmm3
movsd xmm0, qword [ebx + edi + 8]
movsd qword [ecx + edx + 8], xmm0
mov edx, dword [esp + 0x8c]
inc eax
mov ecx, dword [esp + 0xec]
jmp 0x10070adf
inc eax
jmp 0x10070adf
cmp esi, 1
je 0x100708a0
mov edi, dword [esp + 0xd8]
mov esi, dword [esp + 0xc8]
mov esi, dword [esi + edi*4]
mov dword [esp + 0xec], ecx
inc edx
xor ebx, ebx
cmp edx, dword [ebp + 0x18]
cmove edx, ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x8c], edx
mov ecx, eax
shl ecx, 4
shl edx, 4
movsd xmm0, qword [edx + ebx]
movsd qword [esi + ecx], xmm0
movsd xmm1, qword [edx + ebx + 8]
mov edx, dword [esp + 0x8c]
movsd qword [esi + ecx + 8], xmm1
mov ecx, dword [esp + 0xec]
inc eax
cmp edx, dword [esp + 0x9c]
jne 0x10070885
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0xd8]
dec eax
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0xc4]
mov dword [ecx + edi*4], eax
inc edi
mov dword [esp + 0xd8], edi
inc esi
cmp esi, ebx
jl 0x100707d3
cmp dword [ebp + 0x1c], 0
mov esi, dword [esp + 0x88]
mov edi, dword [ebp + 0x18]
mov dword [esp + 0xe0], edx
je 0x10071c5a
push 4
push ebx
call fcn.101beb7a
mov dword [esp + 0xf0], eax
push 4
push ebx
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0xcc], eax
test esi, esi
je 0x10070b7f
test esi, 3
jne 0x10071a97
neg esi
add esi, 0x10
shr esi, 2
lea eax, [esi + 4]
cmp ebx, eax
jl 0x10071a97
mov eax, ebx
sub eax, esi
and eax, 3
neg eax
add eax, ebx
test esi, esi
jbe 0x10070bb5
mov ecx, dword [esp + 0xe0]
xor edx, edx
mov dword [ecx + edx*4], 0
inc edx
cmp edx, esi
jb 0x10070ba2
mov dword [esp + 0xe0], ecx
mov edx, dword [esp + 0xe0]
pxor xmm0, xmm0
movdqa xmmword [edx + esi*4], xmm0
add esi, 4
cmp esi, eax
jb 0x10070bc0
mov dword [esp + 0xe0], edx
cmp eax, ebx
jae 0x10070bf1
mov edx, dword [esp + 0xe0]
mov dword [edx + eax*4], 0
inc eax
cmp eax, ebx
jb 0x10070bde
mov dword [esp + 0xe0], edx
mov dword [esp + 0xb8], ebx
xor esi, esi
lea ecx, [edi + ebx + 2]
lea edx, [ebx - 1]
mov dword [esp + 0x90], edx
mov ebx, esi
mov dword [esp + 0x80], ecx
mov ecx, esi
mov edx, dword [esp + 0xe0]
cmp dword [edx + ebx*4], 0
jne 0x10070fdd
mov edx, dword [esp + 0x100]
lea edi, [ebx + ebx*2]
mov esi, dword [edx + edi*8 + 0x10]
mov edx, dword [esp + 0x104]
cmp dword [edx + esi*4], 1
je 0x10070fdd
inc esi
xor edx, edx
cmp esi, dword [ebp + 0x18]
cmove esi, edx
mov dword [esp + 0x88], esi
push 0x10
push dword [esp + 0x84]
mov dword [esp + 0xec], ecx
call fcn.101beb7a
mov ecx, dword [esp + 0xec]
add esp, 8
mov edx, dword [esp + 0xe8]
mov dword [edx + ecx*4], eax
mov edx, dword [esp + 0x100]
movsd xmm0, qword [edx + edi*8]
movsd qword [eax], xmm0
movsd xmm1, qword [edx + edi*8 + 8]
movsd qword [eax + 8], xmm1
mov eax, esi
movsd xmm1, qword [0x1020c110]
movsd xmm0, qword [edx + edi*8]
mov edx, dword [ebp + 8]
shl eax, 4
movsd xmm3, qword [eax + edx]
subsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x10070d17
pxor xmm2, xmm2
subsd xmm2, xmm1
comisd xmm0, xmm2
jbe 0x10070d17
mov edx, dword [esp + 0x100]
movsd xmm0, qword [edx + edi*8 + 8]
mov edi, dword [ebp + 8]
subsd xmm0, qword [eax + edi + 8]
comisd xmm1, xmm0
jbe 0x10070d17
comisd xmm0, xmm2
jbe 0x10070d17
mov edx, dword [esp + 0xe0]
mov eax, esi
mov dword [edx + ebx*4], 1
mov edx, 1
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x94], esi
mov dword [esp + 0x84], ebx
jmp 0x10070d5e
mov edx, dword [esp + 0xe8]
mov edi, dword [ebp + 8]
mov edx, dword [edx + ecx*4]
movsd qword [edx + 0x10], xmm3
movsd xmm0, qword [eax + edi + 8]
mov eax, esi
movsd qword [edx + 0x18], xmm0
mov edx, dword [esp + 0xe0]
mov dword [esp + 0xe4], ecx
mov dword [edx + ebx*4], 1
mov edx, 2
mov dword [esp + 0x94], esi
mov dword [esp + 0x84], ebx
mov ecx, dword [esp + 0xec]
mov ebx, dword [esp + 0x104]
mov esi, dword [ecx + eax*4]
cmp esi, dword [ebp + 0x18]
mov ecx, dword [ebx + eax*4]
jge 0x10070d7e
cmp ecx, 4
je 0x10070d8f
jmp 0x10070d86
test ecx, ecx
jne 0x10070f6c
cmp esi, dword [esp + 0x90]
jne 0x10070d9d
mov ecx, dword [esp + 0xe0]
mov dword [ecx + esi*4], 1
movsd xmm1, qword [0x1020c110]
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0xe4]
lea ebx, [esi + esi*2]
lea ecx, [ecx + ebx*8]
movsd xmm3, qword [ecx]
movaps xmm0, xmm3
mov esi, dword [esp + 0xe8]
mov ebx, edx
shl ebx, 4
add ebx, dword [esi + edi*4]
subsd xmm0, qword [ebx - 0x10]
comisd xmm1, xmm0
jbe 0x10070dfe
pxor xmm2, xmm2
subsd xmm2, xmm1
comisd xmm0, xmm2
jbe 0x10070dfe
movsd xmm0, qword [ecx + 8]
subsd xmm0, qword [ebx - 8]
comisd xmm1, xmm0
jbe 0x10070dfe
comisd xmm0, xmm2
ja 0x10070e3a
mov esi, dword [esp + 0x100]
movsd qword [ebx], xmm3
movsd xmm0, qword [ecx + 8]
mov ecx, dword [esp + 0xec]
movsd qword [ebx + 8], xmm0
mov ebx, dword [ecx + eax*4]
inc edx
lea edi, [ebx + ebx*2]
lea ecx, [esi + edi*8]
mov edi, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov ebx, edx
shl ebx, 4
add ebx, dword [esi + edi*4]
movsd xmm0, qword [ecx - 0x18]
movsd qword [ebx], xmm0
movsd xmm1, qword [ecx - 0x10]
mov ecx, dword [esp + 0xec]
movsd qword [ebx + 8], xmm1
mov ebx, dword [esp + 0x104]
mov esi, dword [ecx + eax*4]
inc edx
cmp dword [ebx + esi*4 - 4], 4
je 0x10070e6b
cmp esi, 1
jne 0x10070e7a
mov ecx, dword [esp + 0xe0]
mov dword [ecx + esi*4 - 4], 1
mov ecx, eax
mov eax, dword [esp + 0x100]
lea ebx, [esi + esi*2]
mov eax, dword [eax + ebx*8 - 8]
inc eax
cmp eax, dword [ebp + 0x18]
jne 0x10070e95
mov eax, 0
cmp eax, dword [esp + 0x94]
je 0x10070f44
movsd xmm1, qword [0x1020c110]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0xec]
mov ecx, dword [edi + ecx*4]
mov ebx, eax
shl ebx, 4
movsd xmm3, qword [ebx + esi]
mov dword [esp + 0x8c], ebx
lea ebx, [ecx + ecx*2]
mov ecx, dword [esp + 0x100]
movsd xmm0, qword [ecx + ebx*8 - 0x18]
subsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x10070f12
pxor xmm2, xmm2
subsd xmm2, xmm1
comisd xmm0, xmm2
jbe 0x10070f12
mov esi, dword [ebp + 8]
movsd xmm0, qword [ecx + ebx*8 - 0x10]
mov ebx, dword [esp + 0x8c]
subsd xmm0, qword [ebx + esi + 8]
comisd xmm1, xmm0
jbe 0x10070f12
comisd xmm0, xmm2
ja 0x10070f44
mov esi, dword [esp + 0xe4]
mov ebx, dword [esp + 0xe8]
mov edi, dword [esp + 0x8c]
mov esi, dword [ebx + esi*4]
mov ecx, edx
shl ecx, 4
mov ebx, dword [ebp + 8]
movsd qword [esi + ecx], xmm3
movsd xmm0, qword [edi + ebx + 8]
movsd qword [esi + ecx + 8], xmm0
inc edx
mov ecx, dword [esp + 0x104]
cmp dword [ecx + eax*4], 5
jne 0x10070fb6
mov ecx, dword [esp + 0xec]
mov ebx, dword [esp + 0xe0]
mov esi, dword [ecx + eax*4]
mov dword [ebx + esi*4 - 4], 1
jmp 0x10070fb6
mov ebx, dword [esp + 0xe4]
mov edi, dword [esp + 0xe8]
inc eax
xor esi, esi
cmp eax, dword [ebp + 0x18]
cmove eax, esi
mov esi, dword [edi + ebx*4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x88], eax
mov ecx, edx
shl ecx, 4
shl eax, 4
movsd xmm0, qword [eax + ebx]
movsd qword [esi + ecx], xmm0
movsd xmm1, qword [eax + ebx + 8]
mov eax, dword [esp + 0x88]
movsd qword [esi + ecx + 8], xmm1
inc edx
cmp eax, dword [esp + 0x94]
jne 0x10070d5e
mov ecx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0xcc]
dec edx
mov dword [edi + ecx*4], edx
inc ecx
inc ebx
cmp ebx, dword [esp + 0xb8]
jl 0x10070c13
cmp dword [ebp + 0x1c], 0
mov esi, ecx
je 0x10071548
push 4
push esi
call fcn.101beb7a
mov dword [esp + 0xdc], eax
push 4
push esi
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0xd0], eax
test esi, esi
jle 0x10071076
mov ebx, dword [ebp + 0x58]
mov dword [esp + 0xe4], esi
mov esi, dword [ebp + 0x5c]
xor edi, edi
xor edx, edx
mov ecx, dword [esp + 0xd4]
lea eax, [ecx + edi*4]
mov ecx, dword [esp + 0xd0]
push esi
lea ecx, [ecx + edi*4]
push ebx
push ecx
push edx
push eax
mov eax, dword [esp + 0xe0]
push dword [eax + edi*4]
push edx
mov eax, dword [esp + 0x104]
push dword [eax + edi*4]
call fcn.100af100
xor edx, edx
add esp, 0x20
inc edi
cmp edi, dword [esp + 0xe4]
jl 0x1007102d
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0xd8]
push 4
lea edi, [eax + esi]
push edi
call fcn.101beb7a
mov dword [esp + 0xc0], eax
push 4
push edi
call fcn.101beb7a
mov dword [esp + 0xc4], eax
push 8
push edi
call fcn.101beb7a
mov dword [esp + 0xc8], eax
push 4
push edi
call fcn.101beb7a
mov dword [esp + 0xcc], eax
push 4
push edi
call fcn.101beb7a
add esp, 0x28
mov dword [esp + 0xa8], eax
test edi, edi
jle 0x1007136d
mov edx, dword [esp + 0xb0]
and edx, 0xf
je 0x100710f0
test dl, 7
jne 0x10071a9e
mov edx, 1
lea eax, [edx + 8]
cmp edi, eax
jl 0x10071a9e
mov eax, edi
sub eax, edx
and eax, 7
neg eax
add eax, edi
test edx, edx
jbe 0x10071125
movsd xmm0, qword [0x101e42e8]
mov ebx, dword [esp + 0xb0]
xor ecx, ecx
movsd qword [ebx + ecx*8], xmm0
inc ecx
cmp ecx, edx
jb 0x1007111b
mov ecx, dword [esp + 0xb0]
movaps xmm0, xmmword [0x101e42b0]
movaps xmmword [ecx + edx*8], xmm0
movaps xmmword [ecx + edx*8 + 0x10], xmm0
movaps xmmword [ecx + edx*8 + 0x20], xmm0
movaps xmmword [ecx + edx*8 + 0x30], xmm0
add edx, 8
cmp edx, eax
jb 0x10071133
cmp eax, edi
jae 0x1007116a
movsd xmm0, qword [0x101e42e8]
mov edx, dword [esp + 0xb0]
movsd qword [edx + eax*8], xmm0
inc eax
cmp eax, edi
jb 0x10071160
mov edx, dword [esp + 0xa8]
and edx, 0xf
je 0x10071187
test dl, 3
jne 0x10071aa5
neg edx
add edx, 0x10
shr edx, 2
lea eax, [edx + 4]
cmp edi, eax
jl 0x10071aa5
mov eax, edi
sub eax, edx
and eax, 3
neg eax
add eax, edi
test edx, edx
jbe 0x100711b6
mov ebx, dword [esp + 0xa8]
xor ecx, ecx
mov dword [ebx + ecx*4], 0
inc ecx
cmp ecx, edx
jb 0x100711aa
mov ecx, dword [esp + 0xa8]
pxor xmm0, xmm0
movdqa xmmword [ecx + edx*4], xmm0
add edx, 4
cmp edx, eax
jb 0x100711c1
cmp eax, edi
jae 0x100711e4
mov edx, dword [esp + 0xa8]
mov dword [edx + eax*4], 0
inc eax
cmp eax, edi
jb 0x100711d8
lea edx, [esi + 1]
cmp edi, esi
mov ecx, esi
cmovb ecx, edi
test esi, esi
jle 0x10071274
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0xb4]
xor eax, eax
lea ebx, [esi*4]
neg ebx
add ebx, dword [esp + 0xc4]
mov dword [esp + 0x88], ebx
mov ebx, dword [edx + eax*4]
mov dword [ecx + eax*4], ebx
cmp esi, eax
jle 0x1007124f
mov ebx, dword [esp + 0xcc]
mov ebx, dword [ebx + eax*4]
jmp 0x10071259
mov ebx, dword [esp + 0x88]
mov ebx, dword [ebx + eax*4]
mov dword [edi + eax*4], ebx
inc eax
cmp eax, dword [esp + 0x8c]
jb 0x10071239
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
mov eax, 1
test edx, edx
cmovle edx, eax
mov ecx, edi
sub ecx, edx
inc ecx
cmp edx, edi
ja 0x1007135b
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x88], 0
lea eax, [eax + edx*4]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x94], ecx
lea eax, [eax + edx*4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x80], edi
lea eax, [eax + edx*4]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x90], eax
lea eax, [esi*4]
sub ebx, eax
lea ebx, [ebx + edx*4]
mov dword [esp + 0x9c], ebx
neg eax
add eax, dword [esp + 0xc4]
lea eax, [eax + edx*4]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x88]
dec edx
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x98]
mov ecx, dword [ecx + eax*4 - 4]
mov dword [ebx + eax*4 - 4], ecx
cmp esi, edx
jle 0x1007133a
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + eax*4 - 4]
jmp 0x10071345
mov ecx, dword [esp + 0x8c]
mov ecx, dword [ecx + eax*4 - 4]
mov dword [edi + eax*4 - 4], ecx
inc edx
inc eax
cmp eax, dword [esp + 0x94]
jb 0x10071313
mov edi, dword [esp + 0x80]
cmp edi, 1
je 0x10071b3a
cmp edi, 2
je 0x10071aac
mov edx, dword [esp + 0xb8]
movsd xmm0, qword [0x101e42e8]
movsd qword [esp + 0x78], xmm0
xor eax, eax
mov dword [esp], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov dword [esp + 0x74], 2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x80]
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x48], edx
lea edx, [esp + 0x84]
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x88]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x8c]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x90]
mov dword [esp + 0x58], edx
lea edx, [esp + 0x94]
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x98]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x9c]
mov dword [esp + 0x64], edx
lea edx, [esp + 0xa0]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
call fcn.100a1c90
mov ebx, eax
mov eax, dword [ebp + 0x2c]
cmp dword [eax], 0
jle 0x100714c3
mov dword [esp + 0xa4], ebx
mov ebx, dword [ebp + 0x1c]
xor edi, edi
mov dword [esp + 0xe4], esi
mov esi, dword [ebp + 0x28]
lea ecx, [esp + 0xdc]
push ecx
push 5
mov eax, dword [ebx]
mov edx, dword [esi]
lea edx, [edx + edi*4]
push edx
push 0
push dword [eax + edi*4]
call fcn.100c0900
add esp, 0x14
mov eax, dword [ebp + 0x2c]
inc edi
cmp edi, dword [eax]
jl 0x1007148e
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xe4]
push dword [esp + 0xb8]
call fcn.101bceaa
push dword [esp + 0xb8]
call fcn.101bceaa
push dword [esp + 0xb8]
call fcn.101bceaa
push dword [esp + 0xb8]
call fcn.101bceaa
add esp, 0x10
test esi, esi
jle 0x1007151f
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0xd4]
xor edi, edi
push dword [ebx + edi*4]
call fcn.101bceaa
pop ecx
inc edi
cmp edi, esi
jl 0x1007150a
mov ebx, dword [esp + 0xa4]
push dword [esp + 0xd0]
call fcn.101bceaa
push dword [esp + 0xd8]
call fcn.101bceaa
push dword [esp + 0xb0]
call fcn.101bceaa
add esp, 0xc
jmp 0x1007154a
xor ebx, ebx
cmp dword [ebp + 0x44], 0
jne 0x100715c2
cmp dword [esp + 0xc8], 0
je 0x1007170e
cmp dword [esp + 0xd8], 0
jle 0x100715a2
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0xe4], esi
xor edi, edi
mov esi, dword [esp + 0xc8]
push dword [esi + edi*4]
call fcn.101bceaa
pop ecx
inc edi
cmp edi, ebx
jl 0x10071586
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xe4]
push dword [esp + 0xc4]
call fcn.101bceaa
push dword [esp + 0xcc]
call fcn.101bceaa
add esp, 8
jmp 0x1007170e
mov eax, dword [esp + 0xd8]
lea edi, [eax*4]
push edi
push dword [esp + 0xcc]
call fcn.101bcb76
mov dword [esp + 0xb0], eax
push edi
push dword [esp + 0xd0]
call fcn.101bcb76
add esp, 0x10
mov edi, eax
cmp dword [esp + 0xd8], 0
jle 0x10071646
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xe4], esi
mov esi, dword [esp + 0xa8]
xor eax, eax
mov ebx, eax
mov edx, dword [edi + ebx*4]
shl edx, 4
push edx
push dword [esi + ebx*4]
call fcn.101bcb76
add esp, 8
mov dword [esi + ebx*4], eax
inc ebx
cmp ebx, dword [esp + 0xd8]
jl 0x10071619
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xe4]
cmp dword [ebp + 0x48], 0
mov edx, dword [ebp + 0x54]
mov eax, dword [esp + 0xd8]
mov dword [edx], eax
mov eax, dword [ebp + 0x50]
mov dword [eax], edi
mov eax, dword [ebp + 0x44]
mov edi, dword [esp + 0xa8]
mov dword [eax], edi
je 0x100716b9
mov eax, dword [ebp + 0x54]
cmp dword [eax], 0
jle 0x100716b9
mov dword [esp + 0xa4], ebx
mov ebx, dword [ebp + 0x44]
mov dword [esp + 0xe4], esi
xor edi, edi
mov esi, dword [ebp + 0x48]
mov edx, dword [ebp + 0x50]
push 0
mov eax, dword [ebx + edi*4]
mov edx, dword [edx]
mov ecx, dword [esi]
push dword [ecx + edi*4]
push dword [edx + edi*4]
push dword [eax]
call fcn.100b4460
add esp, 0x10
mov eax, dword [ebp + 0x54]
inc edi
cmp edi, dword [eax]
jl 0x10071687
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xe4]
cmp dword [ebp + 0x4c], 0
je 0x1007170e
mov eax, dword [ebp + 0x54]
cmp dword [eax], 0
jle 0x1007170e
mov dword [esp + 0xa4], ebx
mov ebx, dword [ebp + 0x44]
mov dword [esp + 0xe4], esi
xor edi, edi
mov esi, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x4c]
mov eax, dword [ebx]
mov edx, dword [esi]
mov ecx, dword [ecx]
lea ecx, [ecx + edi*8]
push ecx
push dword [edx + edi*4]
push dword [eax + edi*4]
call fcn.100b0a90
add esp, 0xc
mov eax, dword [ebp + 0x54]
inc edi
cmp edi, dword [eax]
jl 0x100716dd
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xe4]
cmp dword [ebp + 0x30], 0
jne 0x1007176b
cmp dword [esp + 0xe8], 0
je 0x10071887
test esi, esi
jle 0x1007174b
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0xe8]
xor edi, edi
push dword [ebx + edi*4]
call fcn.101bceaa
pop ecx
inc edi
cmp edi, esi
jl 0x10071736
mov ebx, dword [esp + 0xa4]
push dword [esp + 0xcc]
call fcn.101bceaa
push dword [esp + 0xec]
call fcn.101bceaa
add esp, 8
jmp 0x10071887
lea edi, [esi*4]
push edi
push dword [esp + 0xec]
call fcn.101bcb76
mov dword [esp + 0xb0], eax
push edi
push dword [esp + 0xd8]
call fcn.101bcb76
add esp, 0x10
mov edi, eax
test esi, esi
jle 0x100717e2
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xe4], esi
mov esi, dword [esp + 0xa8]
xor eax, eax
mov ebx, eax
mov edx, dword [edi + ebx*4]
shl edx, 4
push edx
push dword [esi + ebx*4]
call fcn.101bcb76
add esp, 8
mov dword [esi + ebx*4], eax
inc ebx
cmp ebx, dword [esp + 0xe4]
jl 0x100717b5
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xe4]
cmp dword [ebp + 0x34], 0
mov eax, dword [ebp + 0x40]
mov edx, dword [ebp + 0x3c]
mov dword [eax], esi
mov eax, dword [ebp + 0x30]
mov dword [edx], edi
mov edi, dword [esp + 0xa8]
mov dword [eax], edi
je 0x10071840
mov eax, dword [ebp + 0x40]
cmp dword [eax], 0
jle 0x10071840
mov esi, dword [ebp + 0x34]
mov dword [esp + 0xa4], ebx
mov ebx, dword [ebp + 0x30]
xor edi, edi
mov edx, dword [ebp + 0x3c]
push 0
mov eax, dword [ebx]
mov edx, dword [edx]
mov ecx, dword [esi]
push dword [ecx + edi*4]
push dword [edx + edi*4]
push dword [eax + edi*4]
call fcn.100b4460
add esp, 0x10
mov eax, dword [ebp + 0x40]
inc edi
cmp edi, dword [eax]
jl 0x10071815
mov ebx, dword [esp + 0xa4]
cmp dword [ebp + 0x38], 0
je 0x10071887
mov eax, dword [ebp + 0x40]
cmp dword [eax], 0
jle 0x10071887
mov esi, dword [ebp + 0x3c]
mov dword [esp + 0xa4], ebx
mov ebx, dword [ebp + 0x30]
xor edi, edi
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebx]
mov edx, dword [esi]
mov ecx, dword [ecx]
lea ecx, [ecx + edi*8]
push ecx
push dword [edx + edi*4]
push dword [eax + edi*4]
call fcn.100b0a90
add esp, 0xc
mov eax, dword [ebp + 0x40]
inc edi
cmp edi, dword [eax]
jl 0x1007185d
mov ebx, dword [esp + 0xa4]
push dword [esp + 0x104]
call fcn.101bceaa
push dword [esp + 0xf0]
call fcn.101bceaa
push dword [esp + 0xe8]
call fcn.101bceaa
push dword [esp + 0x10c]
call fcn.101bceaa
add esp, 0x10
mov eax, ebx
add esp, 0x134
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push dword [esp + 0x100]
call fcn.101bceaa
push dword [esp + 0x108]
call fcn.101bceaa
add esp, 8
cmp dword [ebp + 0x1c], 0
je 0x1007197c
cmp dword [ebp + 0x24], 0
je 0x1007190e
push 8
push 1
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x24]
movsd xmm0, qword [ebp + 0x10]
mov dword [edx], eax
movsd qword [eax], xmm0
push 4
push 1
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [edx], eax
mov dword [eax], edi
cmp esi, 1
mov dword [ecx], 1
je 0x10071dd2
push 4
push 1
call fcn.101beb7a
add esp, 8
cmp dword [ebp + 0x20], 0
mov edx, dword [ebp + 0x1c]
mov dword [edx], eax
je 0x10071db1
push 4
push 1
call fcn.101beb7a
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x28]
mov ebx, dword [ebp + 0x1c]
mov dword [edx], eax
push dword [ecx]
push eax
push dword [ebx]
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.100af100
add esp, 0x28
cmp dword [ebp + 0x30], 0
je 0x10071986
test esi, esi
je 0x100719c2
cmp dword [ebp + 0x44], 0
je 0x10071995
cmp esi, 1
je 0x10071cea
cmp dword [ebp + 0x30], 0
je 0x100719a4
mov eax, dword [ebp + 0x40]
mov dword [eax], 0
cmp dword [ebp + 0x44], 0
je 0x100719b3
mov eax, dword [ebp + 0x54]
mov dword [eax], 0
xor eax, eax
add esp, 0x134
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push 4
push 1
call fcn.101beb7a
mov edx, dword [ebp + 0x30]
push 0x10
push edi
mov dword [edx], eax
call fcn.101beb7a
mov edx, dword [ebp + 0x30]
push 4
push 1
mov ecx, dword [edx]
mov dword [ecx], eax
call fcn.101beb7a
add esp, 0x18
cmp dword [ebp + 0x34], 0
mov edx, dword [ebp + 0x3c]
mov dword [edx], eax
mov dword [eax], edi
mov eax, dword [ebp + 0x40]
mov dword [eax], 1
je 0x10071a35
push 4
push 1
call fcn.101beb7a
mov edx, dword [ebp + 0x34]
push 8
push edi
mov dword [edx], eax
call fcn.101beb7a
mov ecx, dword [ebp + 0x34]
mov edx, dword [ecx]
mov dword [edx], eax
mov ebx, dword [ecx]
lea eax, [edi*8]
push eax
push dword [ebp + 0xc]
push dword [ebx]
call fcn.101d7590
add esp, 0x1c
cmp dword [ebp + 0x38], 0
je 0x10071a55
push 8
push 1
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x38]
movsd xmm0, qword [ebp + 0x10]
mov dword [edx], eax
movsd qword [eax], xmm0
mov eax, dword [ebp + 0x30]
mov edx, dword [eax]
shl edi, 4
push edi
push dword [ebp + 8]
push dword [edx]
call fcn.101d7590
add esp, 0xc
cmp dword [ebp + 0x54], 0
je 0x10071a7a
mov eax, dword [ebp + 0x54]
mov dword [eax], 0
xor eax, eax
add esp, 0x134
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
jmp 0x100706af
xor eax, eax
jmp 0x10070752
xor eax, eax
jmp 0x10070bd3
xor eax, eax
jmp 0x1007114d
xor eax, eax
jmp 0x100711cd
movsd xmm0, qword [0x101e42e8]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb4]
mov edx, dword [ecx]
mov edi, dword [ebx]
movsd qword [esp + 8], xmm0
movsd qword [esp + 0x1c], xmm0
xor eax, eax
mov dword [esp], edx
mov edx, dword [ecx + 4]
mov dword [esp + 4], eax
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x50], 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
call fcn.100d2c30
jmp 0x1007146e
mov eax, dword [ebp + 0x2c]
push 4
mov edx, 1
mov dword [eax], edx
push edx
call fcn.101beb7a
mov edx, dword [ebp + 0x1c]
push 4
push 1
mov dword [edx], eax
call fcn.101beb7a
add esp, 0x10
cmp dword [ebp + 0x20], 0
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
je 0x10071b79
push 4
push 1
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x20]
mov dword [edx], eax
cmp dword [ebp + 0x24], 0
je 0x10071b99
push 8
push 1
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x24]
movsd xmm0, qword [ebp + 0x10]
mov dword [edx], eax
movsd qword [eax], xmm0
cmp dword [esp + 0xd8], 1
je 0x10071bb5
mov eax, dword [ebp + 0x28]
mov edx, dword [esp + 0xcc]
mov eax, dword [eax]
mov edi, dword [edx]
mov dword [eax], edi
jmp 0x10071bc5
mov eax, dword [ebp + 0x28]
mov edx, dword [esp + 0xc4]
mov eax, dword [eax]
mov edi, dword [edx]
mov dword [eax], edi
mov eax, dword [ebp + 0x28]
push 0x10
mov edx, dword [eax]
push dword [edx]
call fcn.101beb7a
add esp, 8
cmp dword [esp + 0xd8], 1
mov edx, dword [ebp + 0x1c]
mov edi, dword [edx]
mov dword [edi], eax
je 0x10071c36
mov eax, dword [ebp + 0x1c]
mov edx, dword [esp + 0xcc]
mov ecx, dword [eax]
mov edi, dword [edx]
shl edi, 4
push edi
mov eax, dword [esp + 0xd8]
push dword [eax]
push dword [ecx]
call fcn.101d7590
add esp, 0xc
cmp dword [ebp + 0x20], 0
je 0x10071c2f
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x28]
mov edi, dword [ebp + 0x20]
push 0
mov ecx, dword [eax]
push dword [edi]
mov eax, dword [edx]
push dword [eax]
push dword [ecx]
call fcn.100b4410
add esp, 0x10
xor ebx, ebx
jmp 0x10071470
mov eax, dword [ebp + 0x1c]
mov edx, dword [esp + 0xc4]
mov ecx, dword [eax]
mov edi, dword [edx]
shl edi, 4
push edi
mov eax, dword [esp + 0xcc]
push dword [eax]
push dword [ecx]
call fcn.101d7590
jmp 0x10071c09
cmp dword [ebp + 0x30], 0
jne 0x10070b46
xor ebx, ebx
mov dword [esp + 0xe8], ebx
xor esi, esi
mov dword [esp + 0xcc], esi
jmp 0x1007154a
cmp dword [ebp + 0x44], 0
jne 0x10070773
xor eax, eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xc4], eax
jmp 0x10071c5a
mov eax, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x58]
movsd xmm1, qword [eax + 8]
subsd xmm1, qword [edx + 8]
pxor xmm0, xmm0
comisd xmm0, xmm1
jbe 0x10071cd1
push 0x10072040
push 0x18
push ebx
push dword [esp + 0x10c]
call fcn.101bec80
jmp 0x10070627
push 0x10072020
push 0x18
push ebx
push dword [esp + 0x10c]
call fcn.101bec80
jmp 0x10070627
push 4
push 1
call fcn.101beb7a
mov edx, dword [ebp + 0x44]
push 0x10
push edi
mov dword [edx], eax
call fcn.101beb7a
mov edx, dword [ebp + 0x44]
push 4
push 1
mov ecx, dword [edx]
mov dword [ecx], eax
call fcn.101beb7a
add esp, 0x18
cmp dword [ebp + 0x48], 0
mov edx, dword [ebp + 0x50]
mov dword [edx], eax
mov dword [eax], edi
mov eax, dword [ebp + 0x54]
mov dword [eax], 1
je 0x10071d5d
push 4
push 1
call fcn.101beb7a
mov edx, dword [ebp + 0x48]
push 8
push edi
mov dword [edx], eax
call fcn.101beb7a
mov ecx, dword [ebp + 0x48]
mov edx, dword [ecx]
mov dword [edx], eax
mov ebx, dword [ecx]
lea eax, [edi*8]
push eax
push dword [ebp + 0xc]
push dword [ebx]
call fcn.101d7590
add esp, 0x1c
cmp dword [ebp + 0x4c], 0
je 0x10071d7d
push 8
push 1
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x4c]
movsd xmm0, qword [ebp + 0x10]
mov dword [edx], eax
movsd qword [eax], xmm0
mov eax, dword [ebp + 0x44]
mov edx, dword [eax]
shl edi, 4
push edi
push dword [ebp + 8]
push dword [edx]
call fcn.101d7590
add esp, 0xc
cmp dword [ebp + 0x40], 0
je 0x10071da2
mov eax, dword [ebp + 0x40]
mov dword [eax], 0
xor eax, eax
add esp, 0x134
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
mov edx, dword [ebp + 0x28]
push dword [edx]
xor ecx, ecx
push ecx
push eax
push edi
push ecx
push dword [ebp + 8]
call fcn.100af100
add esp, 0x20
jmp 0x1007197c
push 4
push 1
call fcn.101beb7a
mov edx, dword [ebp + 0x1c]
push 0x10
push edi
mov dword [edx], eax
call fcn.101beb7a
add esp, 0x10
cmp dword [ebp + 0x20], 0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [edx]
mov dword [ecx], eax
je 0x10071e2c
push 4
push 1
call fcn.101beb7a
mov edx, dword [ebp + 0x20]
push 8
push edi
mov dword [edx], eax
call fcn.101beb7a
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx]
mov dword [edx], eax
mov edx, dword [ecx]
lea ebx, [edi*8]
push ebx
push dword [ebp + 0xc]
push dword [edx]
call fcn.101d7590
add esp, 0x1c
mov edx, dword [ebp + 0x1c]
mov ebx, dword [edx]
mov ecx, edi
shl ecx, 4
push ecx
push dword [ebp + 8]
push dword [ebx]
call fcn.101d7590
add esp, 0xc
jmp 0x1007197c
cmp ebx, dword [esp + 0xa8]
jne 0x10071ea8
cmp dword [esp + 0xb8], 0
jle 0x10071ea8
movsd xmm1, qword [0x1020c110]
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
movsd xmm0, qword [edx]
subsd xmm0, qword [ecx]
comisd xmm1, xmm0
jbe 0x10071ea8
pxor xmm2, xmm2
subsd xmm2, xmm1
comisd xmm0, xmm2
jbe 0x10071ea8
movsd xmm0, qword [edx + 8]
subsd xmm0, qword [ecx + 8]
comisd xmm1, xmm0
jbe 0x10071ea8
comisd xmm0, xmm2
ja 0x100705a4
lea edx, [esp + 0xbc]
push edx
push 9
mov ecx, ebx
shl ecx, 4
add ecx, dword [ebp + 8]
push ecx
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.100ab850
mov edi, dword [esp + 0xd8]
lea ecx, [esp + 0xd4]
push ecx
inc edi
xor edx, edx
cmp edi, dword [ebp + 0x18]
cmove edi, edx
shl edi, 4
add edi, dword [ebp + 8]
push 9
push edi
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.100ab850
add esp, 0x28
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0xfc]
lea edi, [eax + eax*2]
inc eax
mov dword [ecx + edi*8 + 0x10], ebx
movsd xmm0, qword [edx]
movsd qword [ecx + edi*8], xmm0
movsd xmm1, qword [edx + 8]
movsd qword [ecx + edi*8 + 8], xmm1
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xbc]
cmp edx, 4
mov dword [esp + 0xb8], eax
je 0x10071f75
cmp ecx, 4
je 0x10071f5f
cmp edx, ecx
jne 0x10071f84
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0xf8]
mov dword [edx + ebx*4], ecx
jmp 0x100705a4
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0xf8]
mov dword [ecx + ebx*4], edx
jmp 0x100705a4
cmp ecx, 4
je 0x10071f84
mov edx, dword [esp + 0x104]
mov dword [edx + ebx*4], ecx
mov eax, dword [esp + 0xf8]
jmp 0x100705a4
mov ebx, edi
dec ebx
js 0x10070174
mov edi, dword [ebp + 0x58]
mov esi, dword [ebp + 0x5c]
lea eax, [esp + 0xf8]
push eax
push 9
mov edx, ebx
shl edx, 4
add edx, dword [ebp + 8]
push edx
push esi
push edi
call fcn.100ab850
add esp, 0x14
mov eax, dword [esp + 0xf8]
cmp eax, 4
jne 0x10071fcb
dec ebx
jns 0x10071f9f
mov edi, dword [ebp + 0x18]
mov esi, eax
jmp 0x10070174