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

Disassembly:
sub esp, 0x28
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
push ebx
push ebp
push esi
mov ebx, ecx
xor esi, esi
push edi
mov dword [esp + 0x1c], ebx
xor ecx, ecx
nop dword [eax]
cmp byte [edx + 0x58], 0
je 0x1018d37d
cmp byte [edx + 0x78], 0
je 0x1018d398
test ecx, ecx
mov eax, edx
mov esi, edx
cmovne eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
jmp 0x1018d38c
test ecx, ecx
je 0x1018d38a
cmp byte [edx + 0xc8], 0
jne 0x1018d3a9
xor esi, esi
cmp edx, eax
je 0x1018d3b5
mov edx, dword [edx + 0x88]
jmp 0x1018d360
test esi, esi
mov ebp, ecx
mov dword [esp + 0x14], ebp
cmovne eax, esi
mov dword [esp + 0x44], eax
jmp 0x1018d3bb
mov ebp, ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x14], ebp
jmp 0x1018d3bb
mov ebp, ecx
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1018d3cb
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0xc
movsd xmm3, qword [ecx + 0xb0]
xorps xmm4, xmm4
mov eax, dword [ecx + 0x80]
mov edx, dword [ecx + 0x84]
movsd xmm2, qword [ecx + 0x50]
movsd qword [esp + 0x30], xmm3
movsd qword [esp + 0x28], xmm4
mov dword [esp + 0x18], edx
test eax, eax
je 0x1018d42b
nop dword [eax + eax]
mov esi, dword [eax]
movsd xmm1, qword [esi + 0xb0]
movsd xmm0, qword [esi + 0xa8]
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm4, xmm1
jae 0x1018d42d
mov eax, dword [eax + 4]
test eax, eax
jne 0x1018d400
xor esi, esi
movsd xmm0, qword [ecx + 0x70]
mov edi, dword [esp + 0x3c]
comisd xmm0, xmm2
seta byte [esp + 0x40]
test edx, edx
je 0x1018d5f9
movsd xmm0, qword [edx + 0xb8]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jp 0x1018d5f9
movsd xmm0, qword [edx + 0xb0]
lea eax, [esp + 0x28]
sub esp, 0x10
subsd xmm0, xmm3
mov ecx, ebx
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm3
push eax
lea eax, [esp + 0x34]
push eax
push edi
call fcn.10195b70
test al, al
je 0x1018d5f6
mov eax, dword [esp + 0x18]
movsd xmm1, qword [esp + 0x20]
comisd xmm1, xmmword [eax + 0xb0]
jbe 0x1018d5f6
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmm1
jbe 0x1018d5f6
movsd xmm1, qword [esp + 0x28]
mov ecx, eax
call fcn.101977d0
mov dword [esp + 0x3c], eax
test eax, eax
je 0x1018d5f6
mov ecx, ebx
mov esi, eax
call fcn.101824c0
movsd xmm2, qword [esp + 0x20]
lea ecx, [ebx + 4]
push ecx
push dword [esp + 0x1c]
mov ebp, eax
mov ecx, ebp
mov dword [esp + 0x1c], ebp
call fcn.101841c0
push dword [ebx]
mov ecx, ebp
call fcn.1018cfd0
push dword [ebx]
mov ecx, dword [esp + 0x1c]
call fcn.1018cfd0
cmp byte [ebp + 0x58], 0
movsd xmm0, qword [0x102265b8]
jne 0x1018d51d
movsd qword [ebp + 0x50], xmm0
mov byte [ebp + 0x58], 1
cmp byte [ebp + 0x78], 0
jne 0x1018d52c
movsd qword [ebp + 0x70], xmm0
mov eax, dword [esp + 0x18]
mov byte [ebp + 0x78], 1
cmp byte [eax + 0x78], 0
jne 0x1018d53f
movsd qword [eax + 0x70], xmm0
movsd xmm1, qword [esp + 0x28]
mov byte [eax + 0x78], 1
mov eax, dword [esp + 0x3c]
comisd xmm1, xmmword [eax + 0xa8]
jbe 0x1018d5f6
movsd xmm0, qword [eax + 0xb0]
comisd xmm0, xmm1
jbe 0x1018d5f6
mov ecx, edi
call fcn.10180b20
movsd xmm2, qword [esp + 0x28]
lea ecx, [edi + 4]
push ecx
push dword [esp + 0x40]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.10183f10
push dword [edi]
mov ecx, dword [esp + 0x1c]
call fcn.10189680
push dword [edi]
mov ecx, dword [esp + 0x40]
call fcn.10189680
cmp byte [esp + 0x40], 0
je 0x1018d5d2
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x70], 0
jne 0x1018d5c1
movsd xmm0, qword [0x102265b8]
movsd qword [eax + 0x68], xmm0
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x70], 1
call fcn.10191040
mov esi, ecx
jmp 0x1018d5f6
mov ecx, dword [esp + 0x3c]
call fcn.10191040
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x50], 0
jne 0x1018d5f2
movsd xmm0, qword [0x102265b8]
movsd qword [eax + 0x48], xmm0
mov byte [eax + 0x50], 1
xorps xmm4, xmm4
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + 0x80]
movsd xmm2, qword [edx + 0x70]
test ecx, ecx
je 0x1018d63b
nop dword [eax]
mov eax, dword [ecx]
movsd xmm1, qword [eax + 0xb0]
movsd xmm0, qword [eax + 0xa8]
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm4, xmm1
jae 0x1018d63d
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x1018d610
xor eax, eax
mov bl, byte [esp + 0x40]
mov ecx, esi
test bl, bl
cmovne ecx, eax
cmovne eax, esi
mov dword [esp + 0x18], eax
xor bh, bh
mov eax, dword [edx + 0x88]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x3c], eax
nop
mov esi, dword [ebp + 0x80]
xor bl, bl
test esi, esi
je 0x1018d685
nop dword [eax]
mov ecx, dword [esi]
push ebp
call fcn.1018efb0
mov esi, dword [esi + 4]
or bl, al
test esi, esi
jne 0x1018d670
mov eax, dword [esp + 0x3c]
mov ebp, dword [ebp + 0x88]
or bh, bl
cmp ebp, eax
jne 0x1018d660
mov esi, dword [esp + 0x14]
mov byte [esp + 0x3c], bh
mov ebx, dword [esp + 0x1c]
push 1
push 8
mov dword [esi + 0x80], 0
lea ecx, [ebx + 4]
call fcn.10103ab0
mov ebp, dword [esp + 0x18]
xor bh, bh
mov dword [eax], ebp
mov ecx, dword [esi + 0x80]
mov dword [eax + 4], ecx
mov dword [esi + 0x80], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x80]
mov dword [esp + 0x28], eax
mov esi, dword [ebp + 0x78]
xor bl, bl
test esi, esi
je 0x1018d6f6
mov ecx, dword [esi]
push ebp
call fcn.1018f0a0
mov esi, dword [esi + 4]
or bl, al
test esi, esi
jne 0x1018d6e1
mov eax, dword [esp + 0x28]
mov ebp, dword [ebp + 0x80]
or bh, bl
cmp ebp, eax
jne 0x1018d6d8
mov ebp, dword [esp + 0x18]
lea ecx, [edi + 4]
push 1
push 8
mov dword [ebp + 0x78], 0
call fcn.10103ab0
mov esi, dword [esp + 0x14]
or byte [esp + 0x3c], bh
mov ebx, dword [esp + 0x1c]
mov dword [eax], esi
mov ecx, dword [ebp + 0x78]
mov dword [eax + 4], ecx
mov dword [ebp + 0x78], eax
mov eax, dword [esp + 0x44]
cmp esi, eax
je 0x1018d78e
mov edx, dword [esi + 0x88]
mov eax, dword [eax + 0x88]
mov dword [esp + 0x14], eax
test edx, edx
je 0x1018d77e
mov ebp, eax
nop
cmp edx, ebp
je 0x1018d776
mov ecx, dword [edx + 0x88]
dec dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x88], eax
mov dword [ebx + 0x20], edx
mov byte [edx + 0xcc], 1
mov edx, ecx
test ecx, ecx
jne 0x1018d750
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1018d788
mov dword [eax + 0x84], esi
mov dword [esi + 0x88], eax
mov eax, dword [esp + 0x20]
cmp ebp, eax
je 0x1018d7eb
mov edx, dword [ebp + 0x80]
mov eax, dword [eax + 0x80]
mov dword [esp + 0x20], eax
test edx, edx
je 0x1018d7de
mov ebx, eax
nop dword [eax]
cmp edx, ebx
je 0x1018d7d6
mov ecx, dword [edx + 0x80]
dec dword [edi + 0x24]
mov eax, dword [edi + 0x20]
mov dword [edx + 0x80], eax
mov dword [edi + 0x20], edx
mov byte [edx + 0xc4], 1
mov edx, ecx
test ecx, ecx
jne 0x1018d7b0
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1018d7e5
mov dword [eax + 0x7c], ebp
mov dword [ebp + 0x80], eax
mov eax, dword [esp + 0x44]
mov ecx, esi
movsd xmm0, qword [eax + 0xb8]
movsd qword [esi + 0xb8], xmm0
mov eax, dword [ebx]
push eax
mov word [esi + 0xca], 0
call fcn.1018cfd0
movsd xmm0, qword [esi + 0xb0]
lea ecx, [esi + 0x40]
sub esp, 8
movsd qword [esp], xmm0
push dword [edi]
push esi
push dword [ebx]
call fcn.10185990
movsd xmm0, qword [esi + 0xb8]
lea eax, [esi + 0x30]
sub esp, 8
lea ecx, [esi + 0x60]
movsd qword [esp], xmm0
push dword [edi]
push eax
push dword [ebx]
call fcn.10185990
movsd xmm6, qword [esi + 0x50]
xorps xmm1, xmm1
movsd xmm4, qword [0x10226358]
subsd xmm1, xmm6
movsd xmm2, qword [esi + 0x70]
movaps xmm0, xmm4
subsd xmm0, xmm6
xorps xmm3, xmm3
movaps xmm5, xmm6
mulsd xmm1, xmm0
comisd xmm3, xmm1
jb 0x1018d8d2
xorps xmm1, xmm1
movaps xmm0, xmm4
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm3, xmm1
jb 0x1018d8d2
cmp byte [esp + 0x40], 0
jne 0x1018d8a4
movaps xmm5, xmm2
movaps xmm2, xmm6
movsd qword [ebp + 0xa8], xmm5
mov ecx, ebp
movsd qword [ebp + 0xb0], xmm2
mov eax, dword [edi]
push eax
mov word [ebp + 0xc2], 0
call fcn.10189680
movsd xmm4, qword [0x10226358]
xorps xmm3, xmm3
mov eax, dword [esi + 0x84]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x44], edx
test eax, eax
je 0x1018d8f8
mov dword [eax + 0x88], edx
test edx, edx
je 0x1018d909
mov dword [edx + 0x84], eax
jmp 0x1018d909
mov dword [ebx + 0x18], edx
test edx, edx
je 0x1018d909
mov dword [edx + 0x84], 0
subsd xmm4, qword [esi + 0x50]
xorps xmm1, xmm1
subsd xmm1, qword [esi + 0x50]
mulsd xmm1, xmm4
comisd xmm3, xmm1
setae al
dec dword [ebx + 0x24]
test al, al
jne 0x1018d93d
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x88], eax
mov dword [ebx + 0x20], esi
mov byte [esi + 0xcc], 1
jmp 0x1018d949
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x88], eax
mov dword [ebx + 0x1c], esi
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x80]
test ecx, ecx
je 0x1018d965
mov dword [ecx + 0x80], eax
test eax, eax
je 0x1018d973
mov dword [eax + 0x7c], ecx
jmp 0x1018d973
mov dword [edi + 0x18], eax
test eax, eax
je 0x1018d973
mov dword [eax + 0x7c], 0
dec dword [edi + 0x24]
cmp byte [esp + 0x3c], 0
mov eax, dword [edi + 0x1c]
mov dword [ebp + 0x80], eax
mov dword [edi + 0x1c], ebp
je 0x1018da50
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1018d9f8
nop dword [eax]
nop dword [eax + eax]
cmp dword [edx + 0x80], 0
mov ecx, dword [edx + 0x88]
jne 0x1018d9f2
mov eax, dword [edx + 0x84]
test eax, eax
je 0x1018d9cb
mov dword [eax + 0x88], ecx
test ecx, ecx
je 0x1018d9dc
mov dword [ecx + 0x84], eax
jmp 0x1018d9dc
mov dword [ebx + 0x18], ecx
test ecx, ecx
je 0x1018d9dc
mov dword [ecx + 0x84], 0
mov eax, dword [ebx + 0x20]
dec dword [ebx + 0x24]
mov dword [edx + 0x88], eax
mov dword [ebx + 0x20], edx
mov byte [edx + 0xcc], 1
mov edx, ecx
test ecx, ecx
jne 0x1018d9a0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x1018da4c
nop
cmp dword [edx + 0x78], 0
mov ecx, dword [edx + 0x80]
jne 0x1018da46
mov eax, dword [edx + 0x7c]
test eax, eax
je 0x1018da22
mov dword [eax + 0x80], ecx
test ecx, ecx
je 0x1018da30
mov dword [ecx + 0x7c], eax
jmp 0x1018da30
mov dword [edi + 0x18], ecx
test ecx, ecx
je 0x1018da30
mov dword [ecx + 0x7c], 0
mov eax, dword [edi + 0x20]
dec dword [edi + 0x24]
mov dword [edx + 0x80], eax
mov dword [edi + 0x20], edx
mov byte [edx + 0xc4], 1
mov edx, ecx
test ecx, ecx
jne 0x1018da00
mov edx, dword [esp + 0x44]
test edx, edx
je 0x1018da5d
cmp byte [edx + 0xcc], 0
je 0x1018da5f
xor edx, edx
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x28
ret 0xc