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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
push ebx
lea edx, [eax + 0x9ea]
push esi
mov ecx, eax
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], edx
cmp eax, edx
ja 0x10018b5d
mov esi, dword [esp + 0x2c]
fld qword [esp + 0x10]
mov ebx, dword [esp + 0x38]
jmp 0x1001888b
mov edi, dword [ebp + 0xc]
cmp ecx, 0x3a08
ja 0x100189f6
je 0x100189e9
lea eax, [ecx - 0x384b]
cmp eax, 0xf3
ja case.0x100188b5.14412
movzx eax, byte [eax + 0x10018d18]
jmp dword [eax*4 + 0x10018cec]
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0x38ed
jmp case.0x100188b5.14412
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
jmp case.0x100188b5.14412
mov ecx, dword [edi + 8]
fstp st(0)
lea eax, [esp + 0x68]
call fcn.1000d3a0
mov dword [esp + 0x44], eax
test eax, eax
je 0x10018942
lea eax, [esp + 0x40]
call fcn.10019350
jmp 0x10018cbb
mov eax, 0x2c42
fstp st(0)
cmp eax, eax
je 0x10018ce1
add eax, 0x33
cmp eax, 0x2c42
jbe 0x10018913
jmp 0x10018a86
mov ecx, dword [edi + 4]
fstp st(0)
lea eax, [esp + 0x48]
call fcn.1001daf0
mov dword [esp + 0x40], eax
test eax, eax
jne 0x10018cbb
fld qword [esp + 0x10]
mov dword [esp + 0x28], 0x38ed
jmp case.0x100188b5.14412
push 0x44
fstp st(0)
lea eax, [esp + 0x90]
push 0
push eax
mov dword [esp + 0x94], 0
call fcn.1002ae60
mov ecx, 0x12
lea esi, [esp + 0x94]
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x40], 2
jmp 0x10018cb8
mov eax, dword [esp + 0x44]
test eax, eax
je case.0x100188b5.14412
fstp st(0)
call fcn.100047d0
jmp 0x10018cbb
mov ecx, dword [ebp + 8]
cmp dword [ecx], 3
jge case.0x100188b5.14412
fstp st(0)
call fcn.1001c670
jmp 0x10018cbb
mov dword [esp + 0x78], 0x10006
jmp case.0x100188b5.14412
mov eax, dword [esp + 0x40]
test eax, eax
je case.0x100188b5.14412
fstp st(0)
call fcn.100047d0
jmp 0x10018cbb
mov dword [esp + 0x30], 0xa
jmp case.0x100188b5.14412
cmp ecx, 0x4ac7
ja 0x10018b42
je 0x10018b29
mov eax, ecx
sub eax, 0x3a23
je 0x10018a84
sub eax, 0x1b
je 0x10018b5b
sub eax, 0x106e
jne case.0x100188b5.14412
mov esi, dword [ebp + 8]
fstp st(0)
push eax
push eax
lea edi, [esi + 4]
push edi
call fcn.100061b0
mov edx, dword [esi + 0x18]
add esp, 0xc
lea esi, [eax + edx*8]
push edi
mov dword [esp + 0x30], esi
call fcn.1001df00
mov ecx, dword [ebp + 8]
sub eax, dword [ecx + 0x1c]
add esp, 4
test eax, eax
jle 0x10018a73
push edi
call fcn.1001df00
mov edx, dword [ebp + 8]
sub eax, dword [edx + 0x1c]
add esp, 4
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x24], eax
jmp 0x10018cbb
xor eax, eax
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x24], eax
jmp 0x10018cbb
fstp st(0)
mov eax, dword [ebp + 8]
fild dword [eax]
call fcn.100304a0
fstp qword [esp + 0x18]
fld qword [0x100393e8]
call fcn.100304a0
fdivr qword [esp + 0x18]
fld qword [0x10039548]
fadd st(1)
call fcn.100305b0
mov edi, eax
cmp edi, dword [esp + 0x30]
jge 0x10018ac2
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
jmp 0x10018ac6
mov dword [esp + 0x18], edi
fadd qword [0x10039540]
call fcn.100305b0
mov ecx, 0x11
cmp eax, 0x11
jl 0x10018add
mov ecx, eax
cmp dword [esp + 0x18], ecx
jle 0x10018b0f
cmp eax, 0x11
jge 0x10018afd
mov ecx, 0x11
mov eax, 1
shl eax, cl
mov dword [esp + 0x18], eax
jmp 0x10018cbb
mov ecx, eax
mov eax, 1
shl eax, cl
mov dword [esp + 0x18], eax
jmp 0x10018cbb
mov ecx, dword [esp + 0x30]
cmp edi, ecx
jl 0x10018b19
mov ecx, edi
mov eax, 1
shl eax, cl
mov dword [esp + 0x18], eax
jmp 0x10018cbb
mov edx, dword [esp + 0x24]
fstp st(0)
push edx
push edi
call fcn.1001b4a0
add esp, 8
mov dword [esp + 0x3c], eax
jmp 0x10018cbb
mov eax, ecx
sub eax, 0x4ae2
je 0x10018b8d
sub eax, 0x1db3
je 0x10018b68
sub eax, 0x1b
jne case.0x100188b5.14412
fstp st(0)
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
fstp st(0)
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [edi]
push ecx
mov ecx, dword [ebp + 8]
push edx
mov edx, dword [ecx]
push eax
push edx
call fcn.1001b1b0
add esp, 0x10
mov dword [esp + 0x18], eax
jmp 0x10018cbb
mov eax, dword [esp + 0x24]
xor edx, edx
test eax, eax
jle 0x10018ca4
mov ecx, 0x706d
cmp ecx, 0x7375
ja 0x10018c41
je 0x10018c7a
cmp ecx, 0x71f1
ja 0x10018c2c
je 0x10018c7a
cmp ecx, 0x712f
ja 0x10018c08
je 0x10018c11
mov eax, ecx
sub eax, 0x706d
je 0x10018bfa
sub eax, 0x61
jne 0x10018c7b
mov eax, ebx
shl eax, 4
mov edi, esi
sub edi, eax
fld qword [edi - 8]
fadd qword [eax + esi + 8]
fmul qword [ebx*8 + 0x10038350]
faddp st(1)
jmp 0x10018c7a
fstp st(0)
xor ebx, ebx
fld qword [esi]
fmul qword [0x10039290]
jmp 0x10018c7b
cmp ecx, 0x7190
jne 0x10018c7b
inc ebx
mov eax, ebx
shl eax, 4
mov edi, esi
sub edi, eax
fld qword [edi - 8]
fadd qword [eax + esi + 8]
fmul qword [ebx*8 + 0x10038350]
faddp st(1)
jmp 0x10018c7b
mov eax, ecx
sub eax, 0x7252
je 0x10018c11
sub eax, 0x61
je 0x10018c7a
sub eax, 0x61
jne 0x10018c7b
jmp 0x10018c11
cmp ecx, 0x74f9
ja 0x10018c60
je 0x10018c11
mov eax, ecx
sub eax, 0x73d6
je 0x10018bdc
sub eax, 0x61
je 0x10018c11
sub eax, 0x61
jne 0x10018c7b
jmp 0x10018c7a
mov eax, ecx
sub eax, 0x755a
je 0x10018c7a
sub eax, 0x61
je 0x10018c11
sub eax, 0x61
jne 0x10018c7b
mov eax, dword [esp + 0x3c]
fst qword [eax + edx*8]
inc ebx
add ecx, 0x61
cmp ecx, 0x761c
jbe 0x10018ba0
mov eax, dword [esp + 0x24]
inc edx
add esi, 0x10
cmp edx, eax
jl 0x10018b9b
fstp qword [esp + 0x10]
mov dword [esp + 0x2c], esi
jmp 0x10018ca6
fstp st(0)
mov edx, dword [ebp + 8]
push 0
lea ecx, [eax + eax]
push ecx
add edx, 4
push edx
call fcn.100061b0
add esp, 0xc
fld qword [esp + 0x10]
mov ecx, dword [esp + 0x28]
add ecx, 0x1b
mov dword [esp + 0x28], ecx
cmp ecx, dword [esp + 0x38]
jbe 0x10018888
fstp st(0)
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x34]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret