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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x80
cmp eax, edx
jg 0x10187a55
mov dword [esp + 0x44], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov esi, eax
mov dword [esp + 0x38], ebx
mov edx, dword [0x1021f3a0]
mov ecx, dword [edx + esi*4]
mov edx, dword [0x1021f380]
test edx, edx
jne 0x10187838
imul ebx, ecx, 0xa10
mov edx, dword [0x10219190]
mov ecx, dword [ebx + edx + 0x118]
mov edi, dword [ecx]
mov dword [esp + 0x58], edi
jmp 0x10187856
imul ebx, ecx, 0xa10
cmp edx, 3
jne 0x10187856
mov edx, dword [0x10219190]
mov ecx, dword [ebx + edx + 0xd0]
mov edi, dword [ecx]
mov dword [esp + 0x58], edi
mov edi, dword [0x1021f3fc]
cmp dword [edi + esi*4], 0
je 0x10187871
mov edx, dword [0x1021f3f8]
push dword [edx + esi*4]
call fcn.101bceaa
pop ecx
mov ecx, dword [esp + 0x58]
push 0x10
mov edx, dword [ecx + 0x10]
mov dword [edi + esi*4], edx
mov edi, dword [0x1021f400]
movsd xmm0, qword [ecx + 0x18]
movsd qword [edi + esi*8], xmm0
mov edx, dword [0x1021f3fc]
push dword [edx + esi*4]
call fcn.101beb7a
mov edx, dword [0x1021f3f8]
mov dword [edx + esi*4], eax
mov eax, dword [0x1021f3f8]
mov ecx, dword [0x1021f3fc]
mov edi, dword [ecx + esi*4]
shl edi, 4
push edi
mov edx, dword [esp + 0x64]
push dword [edx]
push dword [eax + esi*4]
call fcn.101d7590
add esp, 0x14
mov edx, dword [0x1021f3f8]
mov ecx, dword [edx + esi*4]
mov edx, dword [0x1021f3fc]
mov edx, dword [edx + esi*4]
mov edi, esi
shl edi, 4
mov dword [esp], ecx
mov dword [esp + 4], edx
lea ecx, [esp + 8]
pxor xmm2, xmm2
mov edx, dword [0x10219190]
movsd xmm0, qword [edx + ebx + 0x78]
movsd qword [ecx], xmm0
movsd xmm1, qword [edx + ebx + 0x80]
movsd qword [ecx + 8], xmm1
mov ebx, dword [0x1021f404]
movsd qword [esp + 0x18], xmm2
movsd xmm3, qword [ebx + edi]
lea edx, [esp + 0x20]
movsd qword [edx], xmm3
movsd xmm4, qword [ebx + edi + 8]
movsd qword [edx + 8], xmm4
mov edx, dword [0x1021f40c]
movsd xmm5, qword [edx + esi*8]
movsd qword [esp + 0x30], xmm5
call fcn.100ae4e0
mov eax, dword [0x1021f3a0]
imul ebx, dword [eax + esi*4], 0xa10
mov ecx, dword [0x10219190]
mov edx, dword [0x1021f404]
movsd xmm0, qword [edx + edi]
subsd xmm0, qword [ecx + ebx + 0x78]
movsd qword [esp + 0x48], xmm0
imul ebx, dword [eax + esi*4], 0xa10
movsd xmm1, qword [edx + edi + 8]
subsd xmm1, qword [ecx + ebx + 0x80]
mov edx, dword [0x1021f408]
mov ebx, dword [0x1021f40c]
movsd qword [esp + 0x50], xmm1
mov edi, dword [eax + esi*4]
mov ecx, dword [edx + esi*4]
movsd xmm2, qword [ebx + esi*8]
mov edx, dword [0x1021f3c0]
movsd qword [esp + 8], xmm2
mov dword [esp], edi
lea edx, [edx + esi*8]
mov dword [esp + 0x10], 1
mov dword [esp + 4], ecx
lea edi, [esp + 0x48]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
mov edx, dword [0x1021f3c4]
lea edx, [edx + esi*8]
mov dword [esp + 0x1c], edx
mov edx, dword [0x1021f3c8]
lea edx, [edx + esi*8]
mov dword [esp + 0x20], edx
mov edx, dword [0x1021f3cc]
lea edx, [edx + esi*8]
mov dword [esp + 0x24], edx
xor edx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
call fcn.100dfc50
mov edx, dword [0x1021f8f8]
cmp edx, 2
je 0x10187a11
cmp edx, 1
jne 0x10187a3e
mov edx, dword [0x1021f3cc]
movsd xmm1, qword [0x1021f508]
addsd xmm1, qword [0x101f52c8]
movsd xmm0, qword [edx + esi*8]
comisd xmm0, xmm1
jbe 0x10187a3e
mov eax, 0x1021f3a0
mov edx, esi
call fcn.10181b58
inc esi
cmp esi, dword [esp + 0x44]
jle 0x1018780a
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
xor eax, eax
mov esp, ebp
pop ebp
ret