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

Disassembly:
sub esp, 0x60
push ebx
push ebp
mov ebp, dword [esp + 0x6c]
push esi
push edi
push 4
mov eax, dword [ebp + 0x3eee0]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x3e7a8]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 0x1c]
movzx ecx, byte [eax + 0x105fec1c]
movzx esi, byte [eax + 0x105fec34]
mov eax, dword [ebp + 0x3add8]
dec eax
mov dword [esp + 0x30], ecx
add eax, ecx
mov dword [esp + 0x1c], esi
cdq
idiv ecx
mov ebx, eax
mov eax, dword [ebp + 0x3add4]
dec eax
mov dword [esp + 0x78], ebx
add eax, esi
cdq
idiv esi
mov edi, eax
mov dword [esp + 0x14], eax
imul edi, ebx
push edi
mov dword [esp + 0x48], edi
call fcn.1006ea30
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x1009c661
push str.Failed_to_allocate_mb_delta_q_0_
push 2
push dword [ebp + 0x3ac1c]
call fcn.1006e850
add esp, 0xc
push 4
push edi
call fcn.1006ea30
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
jne 0x1009c689
push str.Failed_to_allocate_mb_delta_q_1_
push 2
push dword [ebp + 0x3ac1c]
call fcn.1006e850
add esp, 0xc
mov esi, dword [esp + 0x10]
xor ecx, ecx
movsd xmm5, qword [0x1058db20]
xor edx, edx
xor eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
test esi, esi
jle 0x1009c8c7
nop
xor edi, edi
mov dword [esp + 0x24], edi
test ebx, ebx
jle 0x1009c8b6
mov edx, dword [esp + 0x18]
mov ebx, eax
imul ebx, edx
mov esi, eax
imul esi, dword [esp + 0x74]
xorps xmm0, xmm0
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], esi
jmp 0x1009c6e4
mov edx, dword [esp + 0x18]
xorps xmm1, xmm1
movsd qword [esp + 0x54], xmm0
movsd qword [esp + 0x4c], xmm1
cmp ebx, dword [ebp + 0x3add4]
jge 0x1009c7d6
inc eax
imul eax, edx
mov dword [esp + 0x38], eax
cmp ebx, eax
jge 0x1009c7d2
mov ecx, dword [esp + 0x2c]
mov esi, edi
imul esi, ecx
cmp esi, dword [ebp + 0x3add8]
jge 0x1009c7c3
inc edi
imul edi, ecx
cmp esi, edi
jge 0x1009c7bb
mov ecx, dword [esp + 0x30]
lea eax, [ebx*4]
imul eax, ecx
push 0
push 3
mov dword [esp + 0x74], ecx
add eax, dword [esp + 0x3c]
lea eax, [eax + esi*4]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
lea eax, [ebp + 0x15110]
push eax
push ebp
call fcn.1010f6b0
mov ecx, 1
add esp, 0x14
cmp eax, ecx
cmova ecx, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1059bac0]
call fcn.10526310
addsd xmm0, qword [esp + 0x4c]
add esi, 2
movaps xmm1, xmm0
movsd xmm0, qword [esp + 0x54]
addsd xmm0, qword [0x1059ba70]
movsd qword [esp + 0x4c], xmm1
movsd qword [esp + 0x54], xmm0
cmp esi, dword [ebp + 0x3add8]
jl 0x1009c728
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add ebx, 2
cmp ebx, dword [ebp + 0x3add4]
jl 0x1009c707
mov esi, dword [esp + 0x28]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.105202e0
movsd qword [esp + 0x54], xmm0
mulsd xmm0, qword [0x1060b270]
call fcn.105202e0
mulsd xmm0, qword [0x1060b250]
movsd xmm1, qword [0x1060b258]
subsd xmm1, xmm0
xorps xmm0, xmm0
comisd xmm0, xmm1
jbe 0x1009c81c
subsd xmm1, qword [0x1058db20]
jmp 0x1009c824
addsd xmm1, qword [0x1058db20]
movsd xmm0, qword [esp + 0x54]
add esi, edi
mov ebx, dword [esp + 0x44]
mulsd xmm0, qword [0x1060b268]
cvttsd2si eax, xmm1
mov dword [ebx + esi*4], eax
call fcn.105202e0
mulsd xmm0, qword [str.333333Q_]
movsd xmm1, qword [0x1060b260]
movsd xmm5, qword [0x1058db20]
subsd xmm1, xmm0
xorps xmm0, xmm0
comisd xmm0, xmm1
jbe 0x1009c86f
subsd xmm1, xmm5
jmp 0x1009c873
addsd xmm1, xmm5
mov ecx, dword [esp + 0x48]
inc edi
mov edx, dword [esp + 0x20]
cvttsd2si eax, xmm1
mov dword [esp + 0x24], edi
mov dword [ecx + esi*4], eax
add edx, eax
mov ecx, dword [esp + 0x1c]
add ecx, dword [ebx + esi*4]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
cmp edi, dword [esp + 0x74]
jl 0x1009c6e0
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x10]
inc eax
mov dword [esp + 0x14], eax
cmp eax, esi
jl 0x1009c6b0
mov edi, dword [esp + 0x40]
movd xmm1, edi
xorps xmm6, xmm6
movd xmm0, ecx
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm1
comisd xmm6, xmm0
jbe 0x1009c8ea
subsd xmm0, xmm5
jmp 0x1009c8ee
addsd xmm0, xmm5
cvttsd2si edi, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x54], edi
divsd xmm0, xmm1
comisd xmm6, xmm0
jbe 0x1009c90e
subsd xmm0, xmm5
jmp 0x1009c912
addsd xmm0, xmm5
mov edx, dword [ebp + 0x3eb38]
cvttsd2si esi, xmm0
mov dword [esp + 0x58], esi
cmp edx, edi
jge 0x1009c930
xor ebx, ebx
movd xmm2, edx
movd xmm0, edi
jmp 0x1009c961
cmp edx, esi
jge 0x1009c949
sub edx, edi
mov eax, esi
sub eax, edi
mov ebx, 2
movd xmm2, edx
movd xmm0, eax
jmp 0x1009c961
mov ecx, 0xff
mov ebx, 1
mov eax, ecx
sub eax, edx
sub ecx, esi
movd xmm2, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
sub esi, edi
cmp dword [esp + 0x10], 0
mov dword [esp + 0x18], ebx
cvtdq2pd xmm2, xmm2
movd xmm4, esi
divsd xmm2, xmm0
cvtdq2pd xmm4, xmm4
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mulsd xmm4, xmm2
addsd xmm4, xmm0
jle 0x1009caa4
movsd xmm3, qword [0x105fe908]
xor eax, eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x14], eax
test ecx, ecx
jle 0x1009ca88
cmp ebx, 2
jne 0x1009ca27
mov edi, dword [esp + 0x48]
mov esi, eax
mov ebx, dword [esp + 0x44]
sub ebx, edi
lea edx, [edi + eax]
mov edi, ecx
mov ecx, dword [edx + ebx]
xorps xmm1, xmm1
mov eax, dword [edx]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, ecx
cvtsi2sd xmm1, eax
movzx eax, byte [ebp + 0x3eb62]
mulsd xmm1, xmm2
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
subsd xmm1, xmm4
divsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm6, xmm1
jbe 0x1009ca09
subsd xmm1, xmm5
jmp 0x1009ca0d
addsd xmm1, xmm5
mov eax, dword [ebp + 0x917d0]
add edx, 4
cvttsd2si ecx, xmm1
mov dword [esi + eax], ecx
add esi, 4
sub edi, 1
jne 0x1009c9c6
jmp 0x1009ca80
mov edi, dword [esp + ebx*4 + 0x44]
mov edx, eax
mov ebx, dword [esp + ebx*4 + 0x54]
mov esi, ecx
mov eax, dword [edx + edi]
sub eax, ebx
movd xmm1, eax
movzx eax, byte [ebp + 0x3eb62]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm3
mulsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm6, xmm1
jbe 0x1009ca67
subsd xmm1, xmm5
jmp 0x1009ca6b
addsd xmm1, xmm5
mov eax, dword [ebp + 0x917d0]
cvttsd2si ecx, xmm1
mov dword [edx + eax], ecx
add edx, 4
sub esi, 1
jne 0x1009ca33
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
lea ebx, [ecx*4]
add eax, ebx
sub dword [esp + 0x10], 1
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
jne 0x1009c9a8
push dword [esp + 0x44]
call fcn.1006eaa0
push dword [esp + 0x4c]
call fcn.1006eaa0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret