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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov ecx, dword [0x101f565c]
sub esp, 0xd4
push ebx
push esi
push edi
mov edi, ecx
test edi, edi
je 0x100190b9
mov eax, dword [0x101f5658]
test eax, eax
jne 0x1001861c
mov edx, 0xe80c2f78
mov ecx, 0x1014a9e5
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a90d
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov ecx, dword [0x101f565c]
mov dword [0x101f5658], eax
cmp dword [edi + eax], 0
jle 0x100190b9
test ecx, ecx
je 0x100190b9
mov ecx, dword [0x101bf77c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x100190a7
mov ecx, dword [0x101bf77c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x100190a7
cmp byte [0x101f58b0], 0
je 0x100190b9
mov ecx, dword [0x101bf77c]
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x30]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov ebx, dword [0x101be488]
mov eax, ebx
mov edx, dword [0x101be484]
sub eax, edx
and eax, 0xfffffff8
cmp eax, 0x5c8
jne 0x100190b9
xor edi, edi
mov dword [esp + 0x64], 0xff
mov dword [esp + 0x60], edi
mov dword [esp + 0x70], 0x43e10000
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], 0x43e10000
mov dword [esp + 0x6c], edi
cmp byte [edx + edi*8 + 4], 0
xorps xmm2, xmm2
movss xmm1, dword [edx + edi*8 + 8]
movss xmm7, dword [edx + edi*8]
movss xmm3, dword [0x101b6488]
movss xmm4, dword [0x101b6484]
movss dword [esp + 0x18], xmm7
movss dword [esp + 0x50], xmm1
movss dword [esp + 0x24], xmm1
jne 0x10018703
cmp byte [edx + edi*8 + 0xc], 0
mov byte [esp + 0x12], 1
jne 0x10018708
mov byte [esp + 0x12], 0
mov al, byte [edx + edi*8 + 5]
mov esi, 0xff
mov byte [esp + 0x13], al
mov al, byte [edx + edi*8 + 6]
mov byte [esp + 0x1e], al
mov al, byte [edx + edi*8 + 7]
mov byte [esp + 0x1f], al
mov eax, dword [0x101bc270]
dec eax
mov dword [esp + 0x14], 0xff
cmp eax, 3
ja case.default.0x1001873c
jmp dword [eax*4 + 0x100190c0]
cmp edi, 0x46
jge 0x1001875b
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x1001882f
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x47]
cmp edi, eax
jbe case.default.0x1001873c
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x1001882f
cmp edi, 0x41
jge 0x1001878d
lea eax, [edi + 1]
movd xmm0, eax
jmp 0x100187a1
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe 0x100187ac
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
movaps xmm0, xmm1
movss xmm3, dword [0x101b63d0]
addss xmm0, xmm7
mov dword [esp + 0x5c], 0x3f800000
lea eax, [esp + 0x58]
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x54]
mulss xmm0, dword [0x101b6388]
divss xmm0, dword [0x101bc238]
comiss xmm0, xmm2
movss dword [esp + 0x58], xmm0
cmovae ecx, eax
lea eax, [esp + 0x5c]
comiss xmm3, xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
cmovae eax, ecx
mulss xmm0, dword [eax]
jmp 0x1001882f
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe case.default.0x1001873c
sub ecx, edi
movd xmm0, ecx
jmp 0x10018828
cmp edi, 0x41
jge case.default.0x1001873c
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
mov dword [esp + 0x14], esi
movss xmm0, dword [0x101bc304]
lea eax, [esp + 0x14]
movss dword [esp + 0x78], xmm0
lea ecx, [esp + 0x60]
movss xmm0, dword [0x101bc308]
test esi, esi
movss dword [esp + 0x7c], xmm0
cmovns ecx, eax
movss xmm0, dword [0x101bc30c]
movss dword [esp + 0x80], xmm0
lea eax, [esp + 0x64]
cmp esi, 0xff
movss xmm5, dword [0x101bc2e0]
lea esi, [esp + 0x6c]
cmovle eax, ecx
lea ecx, [esp + 0x68]
comiss xmm1, xmm2
movd xmm0, dword [eax]
lea eax, [esp + 0x24]
cvtdq2ps xmm0, xmm0
cmovae ecx, eax
lea eax, [esp + 0x18]
push ecx
comiss xmm7, xmm2
mulss xmm0, dword [0x101b62c4]
cmovae esi, eax
movd xmm2, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
sub ebx, edx
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x88], xmm0
sar ebx, 3
shr ebx, 1
cdq
sub eax, edx
sar eax, 1
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
shr ebx, 0x1f
cvtdq2ps xmm2, xmm2
addsd xmm0, qword [ebx*8 + 0x101b68e0]
mulss xmm2, dword [0x101bc26c]
lea ebx, [edi + 1]
mov dword [esp], 0
cvtpd2ps xmm6, xmm0
movd xmm0, eax
lea eax, [esp + 0x7c]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [esp + 0x78]
push ecx
subss xmm2, dword [0x101b64d4]
mulss xmm6, xmm5
addss xmm6, xmm0
movss xmm0, dword [0x101b65c8]
comiss xmm0, xmm1
movaps xmm0, xmm2
movaps xmm3, xmm6
cmovae eax, ecx
movss xmm1, dword [eax]
lea eax, [esp + 0x80]
mulss xmm1, dword [0x101b6340]
mulss xmm1, dword [0x101bc268]
subss xmm0, xmm1
movss dword [esp], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm3, xmm0
movss xmm0, dword [0x101b65c8]
comiss xmm0, xmm7
cmovae eax, esi
movss xmm0, dword [eax]
lea eax, [ebx - 2]
mulss xmm0, dword [0x101b6340]
mulss xmm0, dword [0x101bc268]
subss xmm2, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm6, xmm0
movaps xmm1, xmm6
call fcn.100ae600
cmp byte [esp + 0x12], 0
je 0x10018be0
cmp byte [0x101f5921], 0
je 0x10018be0
cmp byte [esp + 0x13], 0
jne 0x10018beb
movss xmm0, dword [esp + 0x14]
fld dword [esp + 0x24]
push ecx
fstp dword [esp]
mov dword [esp + 0x8c], 0x3f800000
mov dword [esp + 0x90], 0x3f800000
mov dword [esp + 0x94], 0x3f800000
movss dword [esp + 0x98], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
call fcn.1010f720
mov edx, eax
lea ecx, [esp + 0xc8]
call fcn.100127e0
mov edx, eax
cmp dword [edx + 0x14], 0xf
jbe 0x10018a2c
mov edx, dword [edx]
mov ecx, edx
mov dword [esp + 0x40], 0
xorps xmm0, xmm0
mov dword [esp + 0x44], 0
movaps xmmword [esp + 0x30], xmm0
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018a50
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.10002920
movss xmm0, dword [esp + 0x50]
lea eax, [esp + 0x24]
movd xmm2, dword [esp + 0x28]
lea ecx, [esp + 0x18]
xorps xmm1, xmm1
mov dword [esp + 0x20], 0x43e10000
comiss xmm0, xmm1
push 0
push 1
mov dword [esp + 0x20], 0
movss xmm1, dword [0x101b65c8]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x3c]
push 1
movss xmm3, dword [0x101b64c8]
mulss xmm2, dword [0x101bc26c]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x34]
subss xmm2, dword [0x101b64f8]
push dword [0x101f59a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b6340]
mov eax, dword [0x101be488]
sub eax, dword [0x101be484]
sar eax, 3
mulss xmm0, dword [0x101bc268]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b68e0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101bc2e0]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101bc2e0]
subss xmm1, xmm0
call fcn.100ae720
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10018b81
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018b77
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100190a1
push ecx
push edx
call fcn.1010e562
add esp, 8
mov ecx, dword [esp + 0xdc]
cmp ecx, 0xf
jbe 0x10018bbd
mov edx, dword [esp + 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018bb3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100190a1
push ecx
push edx
call fcn.1010e562
add esp, 8
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
mov byte [esp + 0xc8], 0
jmp 0x10018d6c
cmp byte [esp + 0x13], 0
je 0x10018d6c
cmp byte [0x101f58d9], 0
je 0x10018d6c
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x20]
movss dword [esp + 0xa4], xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
movd xmm2, dword [esp + 0x28]
movaps xmmword [esp + 0x30], xmm0
mov eax, 0x6265
movss xmm0, dword [esp + 0x50]
comiss xmm0, xmm1
mov word [esp + 0x30], ax
lea eax, [esp + 0x24]
push 0
push 1
mov dword [esp + 0x20], 0x43e10000
mov dword [esp + 0x28], 0
mov dword [esp + 0xa0], 0x3f800000
mov dword [esp + 0xa4], 0x3f800000
movss xmm1, dword [0x101b65c8]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0xac], 0x3f800000
push 1
movss xmm3, dword [0x101b64c8]
mulss xmm2, dword [0x101bc26c]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x2c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], 0xf
mov byte [esp + 0x46], 0
subss xmm2, dword [0x101b64c0]
push dword [0x101f59a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b6340]
mov eax, dword [0x101be488]
sub eax, dword [0x101be484]
sar eax, 3
mulss xmm0, dword [0x101bc268]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b68e0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101bc2e0]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101bc2e0]
subss xmm1, xmm0
call fcn.100ae720
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10018d6c
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018d62
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100190a1
push ecx
push edx
call fcn.1010e562
add esp, 8
cmp byte [esp + 0x1e], 0
je 0x10018ef8
cmp byte [0x101f58c0], 0
je 0x10018ef8
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x20]
movss dword [esp + 0xb4], xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
movd xmm2, dword [esp + 0x28]
movaps xmmword [esp + 0x30], xmm0
mov eax, 0x626a
movss xmm0, dword [esp + 0x50]
comiss xmm0, xmm1
mov word [esp + 0x30], ax
lea eax, [esp + 0x24]
push 0
push 1
mov dword [esp + 0x20], 0x43e10000
mov dword [esp + 0x28], 0
mov dword [esp + 0xb0], 0x3f800000
mov dword [esp + 0xb4], 0x3f800000
movss xmm1, dword [0x101b65c8]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0xbc], 0x3f800000
push 1
movss xmm3, dword [0x101b64c8]
mulss xmm2, dword [0x101bc26c]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x2c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], 0xf
mov byte [esp + 0x46], 0
subss xmm2, dword [0x101b64c0]
push dword [0x101f59a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b6340]
mov eax, dword [0x101be488]
sub eax, dword [0x101be484]
sar eax, 3
mulss xmm0, dword [0x101bc268]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b68e0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101bc2e0]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101bc2e0]
subss xmm1, xmm0
call fcn.100ae720
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10018ef8
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018eee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100190a1
push ecx
push edx
call fcn.1010e562
add esp, 8
cmp byte [esp + 0x1f], 0
je 0x10019080
cmp byte [0x101f5928], 0
je 0x10019080
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x20]
movss dword [esp + 0xc4], xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
movd xmm2, dword [esp + 0x28]
movaps xmmword [esp + 0x30], xmm0
mov eax, 0x7370
movss xmm0, dword [esp + 0x50]
comiss xmm0, xmm1
mov word [esp + 0x30], ax
lea eax, [esp + 0x24]
push 0
push 1
mov dword [esp + 0x20], 0x43e10000
mov dword [esp + 0x28], 0
mov dword [esp + 0xc0], 0x3f800000
mov dword [esp + 0xc4], 0x3f800000
movss xmm1, dword [0x101b65c8]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0xcc], 0x3f800000
push 1
movss xmm3, dword [0x101b64c8]
mulss xmm2, dword [0x101bc26c]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x2c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], 0xf
mov byte [esp + 0x46], 0
subss xmm2, dword [0x101b64c0]
push dword [0x101f59a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b6340]
mov eax, dword [0x101be488]
sub eax, dword [0x101be484]
sar eax, 3
mulss xmm0, dword [0x101bc268]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b68e0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101bc2e0]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101bc2e0]
subss xmm1, xmm0
call fcn.100ae720
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10019080
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10019076
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100190a1
push ecx
push edx
call fcn.1010e562
add esp, 8
mov edx, dword [0x101be484]
mov edi, ebx
mov ebx, dword [0x101be488]
mov eax, ebx
sub eax, edx
sar eax, 3
sub eax, 2
cmp edi, eax
jae 0x100190b9
jmp 0x100186c0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [0x101be484]
cmp eax, dword [0x101be488]
je 0x100190b9
mov dword [0x101be488], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret