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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x334
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xa8], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x94], esi
mov esi, dword [ebp + 0x28]
mov dword [esp + 0xc8], edx
mov edx, dword [ebp + 0x30]
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xc4], ecx
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0xa4], edx
mov edx, dword [ebp + 0x3c]
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0xac], ecx
mov ecx, dword [ebp + 0x50]
mov dword [esp + 0x98], edx
mov edx, dword [ebp + 0x4c]
mov dword [esp + 0xb8], eax
mov eax, dword [ebp + 0x54]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xcc], ecx
mov ecx, dword [ebp + 0x58]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xbc], ecx
mov ecx, dword [ebp + 0x5c]
mov dword [esp + 0xb0], ecx
mov ecx, dword [ebp + 0x60]
mov dword [esp + 0xc0], ecx
mov ecx, dword [0x1020ed34]
mov dword [esp + 0x308], ecx
inc dword [0x10210a10]
test eax, eax
mov dword [edx], 0
je 0x10098d7b
mov dword [eax], 0
cmp dword [esp + 0xbc], 0
je 0x10098d92
mov eax, dword [esp + 0xbc]
mov dword [eax], 0
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xb0]
xor edx, edx
mov dword [eax], edx
mov dword [ecx], edx
lea eax, [esp + 0x28c]
push eax
push edi
push ebx
call fcn.100ae040
lea eax, [esp + 0x2a8]
push eax
push dword [esp + 0xd4]
push esi
call fcn.100ae040
add esp, 0x18
cmp dword [esp + 0xc0], 0
jne 0x10099112
movsd xmm0, qword [ebp + 0x20]
ucomisd xmm0, qword [0x101e5738]
jp 0x10098df0
je 0x1009a0fc
movsd xmm1, qword [ebp + 0x40]
ucomisd xmm1, qword [0x101e5738]
jp 0x10098e05
je 0x1009a0de
movsd xmm0, qword [ebp + 0x20]
comisd xmm0, xmm1
jbe 0x100990f7
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x28c]
mov ecx, dword [esp + 0x2a0]
shl eax, 4
movsd xmm0, qword [ebx + eax]
shl edx, 4
subsd xmm0, qword [ebx + edx]
mov eax, dword [esp + 0x29c]
shl ecx, 4
movsd xmm1, qword [esi + ecx]
shl eax, 4
subsd xmm1, qword [esi + eax]
comisd xmm0, xmm1
jbe 0x100990f7
mov eax, dword [esp + 0x294]
mov edx, dword [esp + 0x298]
mov ecx, dword [esp + 0x2a4]
shl eax, 4
movsd xmm0, qword [ebx + eax + 8]
shl edx, 4
subsd xmm0, qword [ebx + edx + 8]
mov eax, dword [esp + 0x2a8]
shl ecx, 4
movsd xmm1, qword [esi + ecx + 8]
shl eax, 4
subsd xmm1, qword [esi + eax + 8]
comisd xmm0, xmm1
jbe 0x100990f7
lea eax, [edi + 7]
mov dword [esp + 0x288], eax
push 0x10
push eax
call fcn.101beb7a
add esp, 8
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x28c]
movsd xmm0, qword [0x101e5740]
mov ecx, eax
mov eax, dword [esp + 0x298]
shl edx, 4
movsd xmm1, qword [edx + ebx]
subsd xmm1, xmm0
movsd qword [ecx], xmm1
shl eax, 4
movsd xmm2, qword [ebx + eax + 8]
subsd xmm2, xmm0
movsd qword [ecx + 8], xmm2
movsd xmm3, qword [edx + ebx]
subsd xmm3, xmm0
movsd qword [ecx + 0x10], xmm3
movsd xmm4, qword [edx + ebx + 8]
movsd qword [ecx + 0x18], xmm4
movsd xmm5, qword [edx + ebx]
movsd qword [ecx + 0x20], xmm5
movsd xmm6, qword [edx + ebx + 8]
movsd qword [ecx + 0x28], xmm6
lea ecx, [edi - 1]
mov edx, dword [esp + 0x28c]
mov dword [esp + 0x8c], ecx
lea eax, [edx - 1]
test edx, edx
cmove eax, ecx
xor ecx, ecx
mov dword [esp + 0x88], ecx
cmp eax, edx
je 0x1009a0c9
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], edi
mov edi, ecx
mov esi, dword [esp + 0x90]
inc edi
mov ecx, edi
shl ecx, 4
add esi, ecx
mov edx, eax
shl edx, 4
movsd xmm1, qword [edx + ebx]
movsd qword [esi + 0x20], xmm1
test eax, eax
movsd xmm2, qword [edx + ebx + 8]
movsd qword [esi + 0x28], xmm2
lea edx, [eax - 1]
mov eax, dword [esp + 0x8c]
cmovne eax, edx
mov edx, dword [esp + 0x28c]
cmp eax, edx
jne 0x10098f62
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0x80]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x294]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x8c]
shl edx, 4
movsd xmm1, qword [edx + ebx]
movsd qword [esi + 0x30], xmm1
movsd xmm2, qword [edx + ebx + 8]
movsd qword [ecx + edi + 0x38], xmm2
shl eax, 4
movsd xmm3, qword [edx + ebx]
subsd xmm3, xmm0
movsd qword [esi + 0x40], xmm3
movsd xmm4, qword [edx + ebx + 8]
movsd qword [ecx + edi + 0x48], xmm4
movsd xmm5, qword [edx + ebx]
mov edx, dword [esp + 0x290]
subsd xmm5, xmm0
movsd qword [esi + 0x50], xmm5
movsd xmm6, qword [eax + ebx + 8]
addsd xmm6, xmm0
movsd qword [ecx + edi + 0x58], xmm6
shl edx, 4
movsd xmm7, qword [edx + ebx]
addsd xmm7, xmm0
movsd qword [esi + 0x60], xmm7
movsd xmm1, qword [eax + ebx + 8]
mov eax, dword [esp + 0x88]
addsd xmm1, xmm0
movsd qword [ecx + edi + 0x68], xmm1
movsd xmm2, qword [edx + ebx]
shl eax, 4
mov ecx, dword [esp + 0x298]
add eax, 0x70
addsd xmm2, xmm0
movsd qword [eax + edi], xmm2
shl ecx, 4
movsd xmm3, qword [ebx + ecx + 8]
lea ecx, [esp + 0x288]
subsd xmm3, xmm0
movsd qword [eax + edi + 8], xmm3
mov edx, 6
push edx
push edx
push ecx
push 0
push edi
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
call fcn.100c0a30
add esp, 0x14
xor eax, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x94], eax
pxor xmm0, xmm0
movsd qword [esp + 0x2b0], xmm0
movsd qword [esp + 0x2b8], xmm0
movsd qword [esp + 0x2c0], xmm0
movsd qword [esp + 0x2c8], xmm0
jmp 0x1009914f
mov ecx, dword [esp + 0x308]
call fcn.101bc753
xor eax, eax
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x94], 0
pxor xmm0, xmm0
movsd qword [esp + 0x2b0], xmm0
movsd qword [esp + 0x2b8], xmm0
movsd qword [esp + 0x2c0], xmm0
movsd qword [esp + 0x2c8], xmm0
mov dword [esp + 0x90], 0
jne 0x1009918b
cmp dword [esp + 0xa0], 0
je 0x1009a10f
mov eax, dword [esp + 0xa0]
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x2c8], xmm0
movsd xmm1, qword [eax + 0x20]
movsd qword [esp + 0x2b8], xmm1
xor edi, edi
mov dword [esp + 0x84], edi
jmp 0x10099192
mov dword [esp + 0x84], ebx
cmp dword [esp + 0x9c], 0
jne 0x100991d6
cmp dword [esp + 0x98], 0
je 0x1009a1b4
mov eax, dword [esp + 0x98]
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x2c0], xmm0
movsd xmm1, qword [eax + 0x20]
movsd qword [esp + 0x2b0], xmm1
mov dword [esp + 0x88], edx
jmp 0x100991dd
mov dword [esp + 0x88], esi
cmp dword [esp + 0xa8], 0
jne 0x1009921e
cmp dword [esp + 0xa0], 0
je 0x1009a20c
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx]
mov dword [esp + 0x2f0], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x2f4], edx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x2d0], ebx
jmp 0x100992b9
push 4
push 1
call fcn.101beb7a
mov dword [esp + 0x2f8], eax
push 4
push 1
call fcn.101beb7a
add esp, 0x10
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x2f4], eax
je 0x1009a6bc
mov eax, dword [esp + 0xa0]
cmp dword [eax], 0
je 0x1009a685
push 0x10
mov edx, dword [eax + 8]
push dword [edx]
call fcn.101beb7a
mov edx, dword [esp + 0x2f8]
mov dword [edx], eax
mov edx, dword [esp + 0x2f8]
mov eax, dword [esp + 0xa8]
mov edi, dword [eax]
mov ecx, dword [eax + 8]
mov ebx, dword [ecx]
shl ebx, 4
push ebx
push dword [edi]
push dword [edx]
call fcn.101d7590
add esp, 0x14
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x2f4]
mov edx, dword [eax + 8]
mov ecx, dword [edx]
mov dword [ebx], ecx
mov dword [esp + 0x2d0], 1
cmp dword [esp + 0xa4], 0
jne 0x100992fa
cmp dword [esp + 0x98], 0
je 0x1009a2f0
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx]
mov dword [esp + 0x2f8], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x2fc], edx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x2ec], ebx
jmp 0x1009939a
push 4
push 1
call fcn.101beb7a
mov dword [esp + 0x300], eax
push 4
push 1
call fcn.101beb7a
add esp, 0x10
cmp dword [esp + 0x98], 0
mov dword [esp + 0x2fc], eax
je 0x1009a636
mov eax, dword [esp + 0x98]
cmp dword [eax], 0
je 0x1009a5ed
push 0x10
mov edx, dword [eax + 8]
push dword [edx]
call fcn.101beb7a
mov edx, dword [esp + 0x300]
mov dword [edx], eax
mov edi, dword [esp + 0x300]
mov eax, dword [esp + 0xa0]
mov esi, dword [eax]
mov ecx, dword [eax + 8]
mov ebx, dword [ecx]
shl ebx, 4
push ebx
push dword [esi]
push dword [edi]
call fcn.101d7590
add esp, 0x14
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x2fc]
mov edx, dword [eax + 8]
mov ecx, dword [edx]
mov dword [ebx], ecx
mov dword [esp + 0x2ec], 1
mov ebx, 1
imul ebx, dword [esp + 0x2d0]
push 4
push ebx
call fcn.101beb7a
mov dword [esp + 0x30c], eax
push 4
push ebx
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0x300], eax
xor esi, esi
cmp dword [esp + 0x2d0], 0
jle 0x100994af
mov eax, dword [esp + 0x2ec]
mov dword [esp + 0xac], ebx
xor ecx, ecx
mov dword [esp + 0x8c], ecx
xor edx, edx
xor esi, esi
test eax, eax
jle 0x100994a8
mov dword [esp + 0x80], edx
mov eax, ecx
mov dword [esp + 0xc4], eax
mov ebx, dword [esp + 0x2f4]
mov edi, dword [esp + 0x2f8]
mov esi, dword [esp + 0x2fc]
mov eax, dword [esp + 0x304]
mov ecx, dword [esp + 0x8c]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x300]
lea ecx, [eax + ecx*4]
xor eax, eax
push eax
push ecx
push edx
push eax
mov edx, dword [esp + 0xd4]
push dword [esi + edx*4]
push dword [edi + edx*4]
push eax
mov esi, dword [esp + 0x9c]
push dword [ebx + esi*4]
mov ebx, dword [esp + 0x310]
push dword [ebx + esi*4]
call fcn.101075c0
add esp, 0x24
mov esi, eax
test esi, esi
jne 0x100994a8
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x2ec]
inc dword [esp + 0x8c]
inc edx
mov dword [esp + 0xc4], edx
cmp edx, eax
jl 0x10099406
mov edx, dword [esp + 0x80]
xor ecx, ecx
inc edx
cmp edx, dword [esp + 0x2d0]
jl 0x100993ee
mov ebx, dword [esp + 0xac]
cmp dword [esp + 0xa8], 0
je 0x10099512
mov edx, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2f0]
test edx, edx
jle 0x100994fb
mov dword [esp + 0x80], esi
mov esi, edx
mov dword [esp + 0xac], ebx
xor eax, eax
mov ebx, eax
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x100994df
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0xac]
push dword [esp + 0x2f4]
call fcn.101bceaa
push edi
call fcn.101bceaa
add esp, 8
jmp 0x10099520
cmp dword [esp + 0xa0], 0
je 0x1009a591
cmp dword [esp + 0xa4], 0
je 0x10099583
mov edx, dword [esp + 0x2ec]
mov edi, dword [esp + 0x2f8]
test edx, edx
jle 0x1009956c
mov dword [esp + 0x80], esi
mov esi, edx
mov dword [esp + 0xac], ebx
xor eax, eax
mov ebx, eax
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x10099550
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0xac]
push dword [esp + 0x2fc]
call fcn.101bceaa
push edi
call fcn.101bceaa
add esp, 8
jmp 0x10099591
cmp dword [esp + 0x98], 0
je 0x1009a535
cmp dword [esp + 0x94], 0
jne 0x100995a9
cmp dword [esp + 0xa0], 0
je 0x1009a3eb
cmp dword [esp + 0x9c], 0
jne 0x100995c1
cmp dword [esp + 0x98], 0
je 0x1009a414
test esi, esi
je 0x1009966c
xor edx, edx
cmp dword [esp + 0xb4], 0
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
mov dword [eax], edx
mov dword [ecx], edx
je 0x100995f4
mov eax, dword [esp + 0xb4]
mov dword [eax], 0
cmp dword [esp + 0xbc], 0
je 0x1009960b
mov eax, dword [esp + 0xbc]
mov dword [eax], 0
mov eax, dword [esp + 0xb0]
mov dword [eax], 0
test ebx, ebx
jle 0x10099633
mov edi, dword [esp + 0x304]
xor esi, esi
push dword [edi + esi*4]
call fcn.101bceaa
pop ecx
inc esi
cmp esi, ebx
jl 0x10099625
push dword [esp + 0x300]
call fcn.101bceaa
push dword [esp + 0x308]
call fcn.101bceaa
add esp, 8
mov ecx, dword [esp + 0x308]
call fcn.101bc753
mov eax, 0x63
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ebx, 1
jle 0x10099e4f
xor eax, eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], eax
lea esi, [ebx*4]
mov dword [esp + 0x2e8], eax
push esi
call fcn.101bcde0
mov dword [esp + 0x90], eax
push esi
call fcn.101bcde0
mov dword [esp + 0xb0], eax
push esi
call fcn.101bcde0
add esp, 0xc
mov dword [esp + 0xa4], eax
mov esi, dword [esp + 0x8c]
xor edi, edi
push 4
call fcn.101bcde0
mov edx, dword [esp + 0x308]
mov ecx, dword [edx + edi*4]
mov dword [esi + edi*4], eax
mov dword [eax], ecx
push 4
call fcn.101bcde0
add esp, 8
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x300]
mov dword [edx + edi*4], eax
mov edx, dword [ecx + edi*4]
mov dword [eax], edx
mov eax, dword [esp + 0xa4]
mov dword [eax + edi*4], 1
inc edi
cmp edi, ebx
jl 0x100996c6
push 4
push ebx
call fcn.101beb7a
mov esi, eax
push 4
push ebx
call fcn.101beb7a
mov dword [esp + 0x98], eax
push 0x40
call fcn.101bcde0
add esp, 0x14
movsd xmm1, qword [0x101e5748]
movsd xmm0, qword [0x101e5750]
movsd xmm2, qword [0x101e5738]
movsd qword [esp + 0x78], xmm2
mov dword [esi], eax
movsd qword [eax + 0x30], xmm1
mov edx, dword [esi]
movsd qword [edx], xmm1
mov ecx, dword [esi]
movsd qword [ecx + 0x20], xmm0
mov edi, dword [esi]
movsd qword [edi + 0x10], xmm0
mov eax, dword [esi]
movsd qword [eax + 0x18], xmm0
mov edx, dword [esi]
movsd qword [edx + 8], xmm0
mov edx, dword [esp + 0x88]
mov ecx, dword [esi]
movsd qword [ecx + 0x38], xmm1
mov edi, dword [esi]
mov ecx, dword [esp + 0x8c]
movsd qword [edi + 0x28], xmm1
mov edi, dword [esp + 0xa8]
xor eax, eax
mov dword [edx], 4
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 0x74], 1
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x2d4]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
lea edi, [esp + 0x2ac]
mov dword [esp + 0x44], edi
lea edx, [esp + 0x2d8]
mov dword [esp + 0x48], edx
lea ecx, [esp + 0x2e8]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
lea edi, [esp + 0x2e0]
mov dword [esp + 0x5c], edi
lea edx, [esp + 0x2e4]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
call fcn.100a1c90
test eax, eax
jne 0x1009a4b7
cmp dword [esp + 0x2d8], 0
mov eax, dword [esp + 0xb0]
mov edx, dword [eax]
jle 0x100999da
mov dword [esp + 0x84], esi
mov dword [esp + 0xac], ebx
mov ebx, eax
xor edi, edi
xor esi, esi
mov eax, dword [esp + 0x2d4]
test eax, eax
je 0x100998ff
cmp dword [eax + edi*4], 0
je 0x100998ff
lea eax, [edx*4 + 4]
push eax
mov edx, dword [esp + 0xd4]
push dword [edx]
call fcn.101bcb76
mov ecx, dword [esp + 0xd8]
mov dword [ecx], eax
mov ecx, dword [esp + 0x2dc]
mov edx, dword [ebx]
mov ecx, dword [ecx + edi*4]
mov dword [eax + edx*4], ecx
mov eax, dword [ebx]
lea eax, [eax*4 + 4]
push eax
mov edx, dword [esp + 0xd8]
push dword [edx]
call fcn.101bcb76
add esp, 0x10
mov ecx, dword [esp + 0xcc]
mov dword [ecx], eax
mov ecx, dword [esp + 0x2ac]
mov edx, dword [ebx]
mov ecx, dword [ecx + edi*4]
mov dword [eax + edx*4], ecx
mov edx, dword [ebx]
inc edx
mov dword [ebx], edx
mov eax, dword [esp + 0x2e4]
test eax, eax
je 0x100999b7
cmp dword [eax + edi*4], 0
jle 0x100999b7
mov ecx, dword [esp + 0x2e8]
test ecx, ecx
je 0x100999a7
mov ecx, dword [ecx + edi*4]
test ecx, ecx
je 0x100999a7
cmp dword [ecx + esi*4], 0
je 0x100999a7
lea eax, [edx*4 + 4]
push eax
mov edx, dword [esp + 0xd4]
push dword [edx]
call fcn.101bcb76
mov edx, dword [esp + 0xd8]
mov dword [edx], eax
mov edx, dword [esp + 0x2f0]
mov ecx, dword [edx + edi*4]
mov edx, dword [ebx]
mov ecx, dword [ecx + esi*4]
mov dword [eax + edx*4], ecx
mov eax, dword [ebx]
lea eax, [eax*4 + 4]
push eax
mov edx, dword [esp + 0xd8]
push dword [edx]
call fcn.101bcb76
add esp, 0x10
mov edx, dword [esp + 0xcc]
mov dword [edx], eax
mov edx, dword [esp + 0x2e0]
mov ecx, dword [edx + edi*4]
mov edx, dword [ebx]
mov ecx, dword [ecx + esi*4]
mov dword [eax + edx*4], ecx
mov edx, dword [ebx]
inc edx
mov dword [ebx], edx
mov eax, dword [esp + 0x2e4]
inc esi
cmp esi, dword [eax + edi*4]
jl 0x10099918
lea esi, [esi]
xor esi, esi
inc edi
cmp edi, dword [esp + 0x2d8]
jl 0x10099888
mov esi, dword [esp + 0x84]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0xac]
cmp edx, 2
jl 0x1009a438
shl edx, 3
push edx
call fcn.101bcde0
pop ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xb0]
mov eax, dword [eax]
xor edi, edi
mov dword [esp + 0x80], edi
test eax, eax
jle 0x10099ae8
mov dword [esp + 0x84], esi
mov esi, edi
mov dword [esp + 0xac], ebx
xor eax, eax
mov ebx, eax
pxor xmm0, xmm0
movsd qword [esp + 0x98], xmm0
movaps xmm1, xmm0
movsd qword [esp + 0x90], xmm1
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx]
mov ecx, dword [esp + 0xa0]
lea ecx, [ecx + ebx*8]
push ecx
push dword [eax + ebx*4]
push dword [edx + ebx*4]
call fcn.100b0a90
add esp, 0xc
mov edx, dword [esp + 0xa0]
movsd xmm3, qword [edx + ebx*8]
comisd xmm3, xmmword [esp + 0x98]
jbe 0x10099a9e
movsd xmm0, qword [esp + 0x98]
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x98], xmm3
mov esi, edi
mov edi, ebx
jmp 0x10099ac1
movaps xmm1, xmm3
movsd xmm0, qword [esp + 0x90]
movaps xmm2, xmm0
maxsd xmm1, xmm0
movsd qword [esp + 0x90], xmm1
comisd xmm3, xmm2
cmova esi, ebx
mov edx, dword [esp + 0xb0]
mov eax, dword [edx]
inc ebx
cmp ebx, eax
jl 0x10099a3b
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx]
mov ecx, dword [esp + 0xcc]
mov eax, dword [edx + eax*4 - 4]
mov dword [edx + edi*4], eax
mov eax, dword [esp + 0xb0]
mov edx, dword [ecx]
mov ecx, dword [eax]
mov ecx, dword [edx + ecx*4 - 4]
mov dword [edx + edi*4], ecx
mov ecx, dword [esp + 0xa0]
mov edx, dword [eax]
movsd xmm0, qword [ecx + edx*8 - 8]
mov edx, dword [esp + 0x80]
movsd qword [ecx + edi*8], xmm0
mov ecx, dword [eax]
dec ecx
cmp edx, ecx
mov dword [eax], ecx
je 0x10099b37
mov edi, edx
test edi, edi
je 0x10099b85
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xd0]
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [ecx + edi*4]
mov dword [ecx], edx
mov edx, dword [esi]
mov dword [edx + edi*4], eax
mov eax, dword [esp + 0xcc]
mov esi, dword [eax]
lea ecx, [esi + edi*4]
push ecx
push esi
mov esi, dword [esp + 0x8c]
call fcn.100e3dd0
mov eax, dword [esp + 0xa8]
lea edi, [eax + edi*8]
push edi
push eax
call fcn.100e3df0
add esp, 0x10
cmp dword [esp + 0xc0], 0
je 0x10099ba2
cmp dword [esp + 0xbc], 0
jne 0x10099d09
jmp 0x1009a426
mov eax, dword [esp + 0xb0]
mov edx, dword [eax]
cmp edx, 2
jge 0x10099c0a
xor edx, edx
cmp dword [esp + 0xb4], 0
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
mov dword [eax], edx
mov dword [ecx], edx
je 0x10099bdb
mov eax, dword [esp + 0xb4]
mov dword [eax], 0
cmp dword [esp + 0xbc], 0
je 0x10099bf2
mov eax, dword [esp + 0xbc]
mov dword [eax], 0
mov eax, dword [esp + 0xb0]
mov dword [eax], 0
jne 0x10099d09
jmp 0x1009a426
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x80], 0
mov eax, 1
pxor xmm0, xmm0
mov ecx, dword [esp + 0x80]
movaps xmm3, xmm0
movaps xmm1, xmm0
movsd xmm2, qword [edi + eax*8]
movaps xmm0, xmm2
comisd xmm2, xmm3
jbe 0x10099c42
mov ecx, eax
inc eax
maxsd xmm0, xmm1
cmp eax, edx
jl 0x10099c2c
mov eax, dword [esp + 0xd0]
mov edi, dword [eax]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x80], ecx
mov edx, ecx
mov ecx, dword [edi + edx*4]
mov dword [edi], ecx
mov edi, dword [eax]
mov ecx, dword [edi + edx*4]
mov eax, dword [esp + 0xa0]
mov dword [edi], ecx
mov ecx, dword [esp + 0xb0]
movsd xmm0, qword [eax + edx*8]
movsd qword [eax], xmm0
mov eax, dword [ecx]
lea edi, [eax - 1]
cmp edx, edi
jge 0x10099cf6
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xa0]
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
mov edi, dword [eax + ebx*4 + 4]
mov dword [eax + ebx*4], edi
mov eax, dword [edx]
mov edi, dword [eax + ebx*4 + 4]
mov dword [eax + ebx*4], edi
movsd xmm0, qword [esi + ebx*8 + 8]
movsd qword [esi + ebx*8], xmm0
inc ebx
mov eax, dword [ecx]
lea edi, [eax - 1]
cmp ebx, edi
jl 0x10099cb3
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xb0], ecx
mov edx, ecx
dec eax
cmp dword [esp + 0xbc], 0
mov dword [edx], eax
je 0x1009a426
mov eax, dword [esp + 0xb0]
cmp dword [eax], 0
jle 0x1009a426
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xbc]
mov dword [edx], eax
push dword [esp + 0x2d4]
call fcn.101bceaa
push dword [esp + 0x2b0]
call fcn.101bceaa
add esp, 8
mov eax, dword [esp + 0x2d8]
mov edx, dword [esp + 0x2e0]
mov edi, dword [esp + 0x2e8]
mov dword [esp + 0x80], edx
test eax, eax
jle 0x10099daa
mov dword [esp + 0x90], eax
mov dword [esp + 0x84], esi
mov esi, edx
mov dword [esp + 0xac], ebx
xor edx, edx
mov ebx, edx
push dword [edi + ebx*4]
call fcn.101bceaa
push dword [esi + ebx*4]
call fcn.101bceaa
add esp, 8
inc ebx
cmp ebx, dword [esp + 0x90]
jl 0x10099d7f
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0xac]
push edi
call fcn.101bceaa
push dword [esp + 0x84]
call fcn.101bceaa
push dword [esp + 0x2ec]
call fcn.101bceaa
add esp, 0xc
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x8c]
xor edi, edi
push dword [esi + edi*4]
call fcn.101bceaa
mov eax, dword [esp + 0xac]
push dword [eax + edi*4]
call fcn.101bceaa
add esp, 8
inc edi
cmp edi, ebx
jl 0x10099ddb
mov esi, dword [esp + 0x84]
push dword [esp + 0x8c]
call fcn.101bceaa
push dword [esp + 0xac]
call fcn.101bceaa
push dword [esp + 0xac]
call fcn.101bceaa
push dword [esi]
call fcn.101bceaa
push esi
call fcn.101bceaa
push dword [esp + 0x9c]
call fcn.101bceaa
add esp, 0x18
mov eax, dword [esp + 0xb0]
mov edi, dword [eax]
jmp 0x10099ef7
push 4
call fcn.101bcde0
mov edx, dword [esp + 0xd4]
push 4
mov dword [edx], eax
call fcn.101bcde0
add esp, 8
cmp dword [esp + 0xbc], 0
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x304]
mov dword [edx], eax
mov eax, dword [esp + 0xd0]
mov edi, dword [eax]
mov eax, dword [esp + 0x300]
mov esi, dword [ecx]
mov dword [edi], esi
mov ecx, dword [edx]
mov edx, dword [eax]
mov dword [ecx], edx
je 0x10099ee5
push 8
call fcn.101bcde0
mov edx, dword [esp + 0xc0]
mov dword [edx], eax
lea eax, [esp + 0x84]
push eax
mov ecx, dword [esp + 0x308]
push dword [ecx]
mov esi, dword [esp + 0x310]
push dword [esi]
call fcn.100b0a90
add esp, 0x10
mov eax, dword [esp + 0xbc]
movsd xmm0, qword [esp + 0x80]
mov edx, dword [eax]
movsd qword [edx], xmm0
mov eax, dword [esp + 0xb0]
mov dword [eax], 1
mov edi, 1
movsd xmm1, qword [esp + 0x2c0]
subsd xmm1, qword [esp + 0x2c8]
mov eax, dword [esp + 0xb8]
addsd xmm1, qword [eax]
movsd xmm0, qword [esp + 0x2b0]
subsd xmm0, qword [esp + 0x2b8]
addsd xmm0, qword [eax + 8]
test edi, edi
jle 0x10099fe8
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xac], ebx
xor esi, esi
pxor xmm2, xmm2
xor edx, edx
ucomisd xmm1, xmm2
jp 0x10099f58
je 0x10099f92
mov ebx, dword [eax]
cmp dword [ebx + esi*4], 0
jle 0x10099f92
mov edi, edx
mov edx, dword [esp + 0xd0]
mov ebx, edi
mov ecx, dword [edx]
mov ecx, dword [ecx + esi*4]
movsd xmm3, qword [ecx + ebx]
addsd xmm3, xmm1
movsd qword [ecx + ebx], xmm3
inc edi
mov ecx, dword [eax]
add ebx, 0x10
cmp edi, dword [ecx + esi*4]
jl 0x10099f6b
mov ecx, dword [esp + 0xb0]
xor edx, edx
ucomisd xmm0, xmm2
jp 0x10099f9a
je 0x10099fd6
mov ebx, dword [eax]
cmp dword [ebx + esi*4], 0
jle 0x10099fd6
mov ebx, edx
mov edx, dword [esp + 0xd0]
mov edi, dword [edx]
mov edi, dword [edi + esi*4]
mov ecx, ebx
shl ecx, 4
movsd xmm3, qword [ecx + edi + 8]
addsd xmm3, xmm0
movsd qword [ecx + edi + 8], xmm3
inc ebx
mov ecx, dword [eax]
cmp ebx, dword [ecx + esi*4]
jl 0x10099fab
mov ecx, dword [esp + 0xb0]
xor edx, edx
mov edi, dword [ecx]
inc esi
cmp esi, edi
jl 0x10099f50
mov ebx, dword [esp + 0xac]
cmp dword [esp + 0xb4], 0
je 0x1009a077
push 4
push edi
call fcn.101beb7a
add esp, 8
mov edx, dword [esp + 0xb4]
mov dword [edx], eax
mov eax, dword [esp + 0xb0]
cmp dword [eax], 0
jle 0x1009a077
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xcc]
xor esi, esi
push 8
mov eax, dword [ebx]
push dword [eax + esi*4]
call fcn.101beb7a
mov ecx, dword [esp + 0xbc]
mov edi, dword [ecx]
mov dword [edi + esi*4], eax
mov edx, dword [ebx]
mov edi, dword [ecx]
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0x2e4]
push ecx
mov eax, dword [eax]
push dword [edi + esi*4]
push dword [edx + esi*4]
push dword [eax + esi*4]
call fcn.100b4460
add esp, 0x18
mov eax, dword [esp + 0xb0]
inc esi
cmp esi, dword [eax]
jl 0x1009a026
mov ebx, dword [esp + 0xac]
cmp ebx, 1
jle 0x1009a093
mov edi, dword [esp + 0x304]
xor esi, esi
push dword [edi + esi*4]
call fcn.101bceaa
pop ecx
inc esi
cmp esi, ebx
jl 0x1009a085
push dword [esp + 0x300]
call fcn.101bceaa
push dword [esp + 0x308]
call fcn.101bceaa
add esp, 8
mov ecx, dword [esp + 0x308]
call fcn.101bc753
xor eax, eax
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x90]
mov dword [esp + 0x8c], eax
xor ecx, ecx
jmp 0x10098fc1
lea eax, [ebp + 0x40]
push eax
push dword [esp + 0xc8]
push esi
call fcn.100b0a90
add esp, 0xc
movsd xmm1, qword [ebp + 0x40]
jmp 0x10098e05
lea eax, [ebp + 0x20]
push eax
push edi
push ebx
call fcn.100b0a90
add esp, 0xc
jmp 0x10098df0
cmp dword [esp + 0xc0], 0
jne 0x1009a16d
mov edi, dword [esp + 0x288]
push 0x10
push edi
call fcn.101beb7a
mov dword [esp + 0x8c], eax
mov eax, edi
shl eax, 4
push eax
push dword [esp + 0x9c]
push dword [esp + 0x94]
call fcn.101d7590
lea edx, [esp + 0x2dc]
lea eax, [esp + 0x2cc]
push eax
push edx
push edi
push dword [esp + 0xa4]
call fcn.10100900
add esp, 0x24
jmp 0x10099192
push 0x10
push edi
call fcn.101beb7a
mov dword [esp + 0x8c], eax
mov eax, edi
shl eax, 4
push eax
push ebx
push dword [esp + 0x94]
call fcn.101d7590
lea edx, [esp + 0x2dc]
lea eax, [esp + 0x2cc]
push eax
push edx
push edi
push dword [esp + 0xa4]
call fcn.10100900
add esp, 0x24
jmp 0x10099192
push 0x10
push dword [esp + 0xc8]
call fcn.101beb7a
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xcc]
shl eax, 4
push eax
push esi
push dword [esp + 0x98]
call fcn.101d7590
lea edx, [esp + 0x2d4]
lea eax, [esp + 0x2c4]
push eax
push edx
push dword [esp + 0xe0]
push dword [esp + 0xa8]
call fcn.10100900
add esp, 0x24
jmp 0x100991dd
cmp dword [esp + 0xc8], 0
je 0x1009a220
cmp dword [esp + 0xc0], 0
jne 0x1009a280
lea edx, [esp + 0x280]
lea eax, [esp + 0x2dc]
push eax
push edx
push edi
push dword [esp + 0x90]
call fcn.100b4410
lea ebx, [esp + 0x300]
lea ecx, [esp + 0x2e0]
lea edx, [esp + 0x304]
xor eax, eax
push eax
push eax
push edx
push ecx
push ebx
push dword [esp + 0x2a4]
push edi
push dword [esp + 0xb0]
call fcn.10095d60
mov ebx, eax
push dword [esp + 0x2b0]
call fcn.101bceaa
add esp, 0x34
jmp 0x1009a2bd
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x280], eax
lea ebx, [esp + 0x2d0]
xor edx, edx
lea ecx, [esp + 0x2f4]
push edx
push edx
push ecx
push ebx
lea edx, [esp + 0x300]
push edx
push eax
push edi
push dword [esp + 0xa0]
call fcn.10095d60
add esp, 0x20
mov ebx, eax
test ebx, ebx
je 0x100992b9
mov eax, dword [esp + 0xb0]
mov dword [eax], 0
mov ecx, dword [esp + 0x308]
call fcn.101bc753
mov eax, 0x63
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xac], 0
je 0x1009a37c
mov esi, dword [esp + 0xac]
mov dword [esp + 0x284], esi
lea ebx, [esp + 0x2f8]
xor eax, eax
lea ecx, [esp + 0x2ec]
lea edx, [esp + 0x2fc]
push eax
push eax
push edx
push ecx
push ebx
push esi
push dword [esp + 0xdc]
push dword [esp + 0xa4]
call fcn.10095d60
add esp, 0x20
mov ebx, eax
test ebx, ebx
je 0x1009a370
mov eax, dword [esp + 0xb0]
mov dword [eax], 0
mov ecx, dword [esp + 0x308]
call fcn.101bc753
mov eax, 0x63
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x2ec]
jmp 0x1009939a
lea edx, [esp + 0x284]
lea eax, [esp + 0x2dc]
push eax
push edx
push dword [esp + 0xcc]
push dword [esp + 0x94]
call fcn.100b4410
lea ebx, [esp + 0x308]
lea ecx, [esp + 0x2fc]
lea edx, [esp + 0x30c]
xor eax, eax
push eax
push eax
push edx
push ecx
push ebx
push dword [esp + 0x2a8]
push dword [esp + 0xec]
push dword [esp + 0xb4]
call fcn.10095d60
mov ebx, eax
push dword [esp + 0x2b4]
call fcn.101bceaa
add esp, 0x34
jmp 0x1009a341
cmp dword [esp + 0xc0], 0
jne 0x1009a402
push dword [esp + 0x90]
call fcn.101bceaa
pop ecx
push dword [esp + 0x84]
call fcn.101bceaa
pop ecx
jmp 0x100995a9
push dword [esp + 0x88]
call fcn.101bceaa
pop ecx
jmp 0x100995c1
push dword [esp + 0xa0]
call fcn.101bceaa
pop ecx
jmp 0x10099d29
lea esi, [esp + 0x80]
push edx
push str.vullc___unexpectedly_returned_hodo_anz_d__which_is__2.
push esi
call fcn.101bc928
push 1
push esi
push dword [0x10210a10]
push dword [0x10219180]
push str.two_polygons_hodograph_alt
call fcn.100e45a0
add esp, 0x20
mov edi, dword [esp + 0x304]
xor esi, esi
push dword [edi + esi*4]
call fcn.101bceaa
pop ecx
inc esi
cmp esi, ebx
jl 0x1009a470
push dword [esp + 0x300]
call fcn.101bceaa
push dword [esp + 0x308]
call fcn.101bceaa
add esp, 8
mov ecx, dword [esp + 0x308]
call fcn.101bc753
mov eax, 0x63
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
lea esi, [esp + 0x80]
push str.vullc___failed_at_hodograph_calculation
push esi
call fcn.101bc928
push 1
push esi
push dword [0x10210a10]
push dword [0x10219180]
push str.two_polygons_hodograph_alt
call fcn.100e45a0
add esp, 0x1c
mov edi, dword [esp + 0x304]
xor esi, esi
push dword [edi + esi*4]
call fcn.101bceaa
pop ecx
inc esi
cmp esi, ebx
jl 0x1009a4ee
push dword [esp + 0x300]
call fcn.101bceaa
push dword [esp + 0x308]
call fcn.101bceaa
add esp, 8
mov ecx, dword [esp + 0x308]
call fcn.101bc753
mov eax, 0x63
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x2ec]
mov edi, dword [esp + 0x2f8]
test edx, edx
jle 0x1009a577
mov dword [esp + 0x80], esi
mov esi, edx
mov dword [esp + 0xac], ebx
xor eax, eax
mov ebx, eax
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x1009a55b
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0xac]
push dword [esp + 0x2fc]
call fcn.101bceaa
push edi
call fcn.101bceaa
add esp, 8
jmp 0x10099591
mov edx, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2f0]
test edx, edx
jle 0x1009a5d3
mov dword [esp + 0x80], esi
mov esi, edx
mov dword [esp + 0xac], ebx
xor eax, eax
mov ebx, eax
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x1009a5b7
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0xac]
push dword [esp + 0x2f4]
call fcn.101bceaa
push edi
call fcn.101bceaa
add esp, 8
jmp 0x10099520
push 0x10
push dword [esp + 0xc8]
call fcn.101beb7a
mov edx, dword [esp + 0x300]
mov dword [edx], eax
mov ecx, dword [esp + 0x300]
mov eax, dword [esp + 0xcc]
shl eax, 4
push eax
push esi
push dword [ecx]
call fcn.101d7590
add esp, 0x14
mov edx, dword [esp + 0x2fc]
mov eax, dword [esp + 0xc4]
mov dword [edx], eax
jmp 0x1009938a
push 0x10
push dword [esp + 0xc8]
call fcn.101beb7a
mov edx, dword [esp + 0x300]
mov dword [edx], eax
mov ecx, dword [esp + 0x300]
mov eax, dword [esp + 0xcc]
shl eax, 4
push eax
push dword [esp + 0x94]
push dword [ecx]
call fcn.101d7590
add esp, 0x14
mov edx, dword [esp + 0x2fc]
mov eax, dword [esp + 0xc4]
mov dword [edx], eax
jmp 0x1009938a
push 0x10
push edi
call fcn.101beb7a
mov edx, dword [esp + 0x2f8]
mov dword [edx], eax
mov ecx, dword [esp + 0x2f8]
mov eax, edi
shl eax, 4
push eax
push ebx
push dword [ecx]
call fcn.101d7590
add esp, 0x14
mov eax, dword [esp + 0x2f4]
mov dword [eax], edi
jmp 0x100992ae
push 0x10
push edi
call fcn.101beb7a
mov edx, dword [esp + 0x2f8]
mov dword [edx], eax
mov ecx, dword [esp + 0x2f8]
mov eax, edi
shl eax, 4
push eax
push dword [esp + 0x90]
push dword [ecx]
call fcn.101d7590
add esp, 0x14
mov eax, dword [esp + 0x2f4]
mov dword [eax], edi
jmp 0x100992ae