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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x50
mov rdi, qword [0x180087a70]
xor r15d, r15d
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
cmp byte [rdi + 0xcb], r15b
je 0x18003093b
test byte [rdi + 0xc], 2
jne 0x18003093b
mov byte [rdi + 0xcb], r15b
or r13d, 0xffffffff
cmp byte [rdi + 0x3010], r15b
jne 0x1800309a1
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x18003099a
lea r8, [rsp + 0x80]
mov qword [rsp + 0x80], r15
call fcn.18002d94c
mov rsi, rax
test rax, rax
je 0x18003099a
mov rdx, qword [rsp + 0x80]
mov rcx, rax
call fcn.18003c0d0
mov rcx, qword [0x180087a70]
test rcx, rcx
je 0x180030991
add dword [rcx + 0x3bc], r13d
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov byte [rdi + 0x3010], 1
movss xmm0, dword [rdi + 0x3014]
xorps xmm6, xmm6
comiss xmm0, xmm6
jbe 0x1800309e1
subss xmm0, dword [rdi + 0x18]
comiss xmm6, xmm0
movss dword [rdi + 0x3014], xmm0
jb 0x1800309e1
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1800309d3
call fcn.18003c35c
jmp 0x1800309da
mov byte [rdi + 0x3a4], 1
mov dword [rdi + 0x3014], r15d
movss xmm0, dword [rdi + 0x18]
lea rcx, [rdi + 0x2ff0]
inc dword [rdi + 0x1a08]
xor edx, edx
cvtps2pd xmm0, xmm0
mov byte [rdi + 0x1a14], 1
mov dword [rdi + 0x2fdc], r15d
mov dword [rdi + 0x1a78], r15d
addsd xmm0, qword [rdi + 0x1a00]
movsd qword [rdi + 0x1a00], xmm0
call fcn.18003d2e4
movsxd rax, dword [rdi + 0x3264]
movss xmm1, dword [rdi + 0x18]
movss xmm7, dword [0x18007c3a4]
movaps xmm0, xmm1
subss xmm0, dword [rdi + rax*4 + 0x3084]
addss xmm0, dword [rdi + 0x3268]
movss dword [rdi + 0x3268], xmm0
movss dword [rdi + rax*4 + 0x3084], xmm1
mov eax, 0x88888889
mov ecx, dword [rdi + 0x3264]
movss xmm1, dword [rdi + 0x3268]
inc ecx
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x78
sub ecx, eax
comiss xmm1, xmm6
mov dword [rdi + 0x3264], ecx
jbe 0x180030aa4
divss xmm1, dword [0x18007c348]
movss xmm0, dword [0x18007c200]
divss xmm0, xmm1
jmp 0x180030aa7
movaps xmm0, xmm7
mov rax, qword [rdi + 0xa8]
movss dword [rdi + 0x3a8], xmm0
mov byte [rax], 1
mov rax, qword [0x180087a70]
mov rcx, qword [rax + 0xb8]
test rcx, rcx
jne 0x180030ada
mov rax, qword [rax + 0xa8]
mov rcx, qword [rax + 0x48]
mov rcx, qword [rcx]
call fcn.180036964
movss xmm0, dword [rdi + 0x14]
mov ebp, 0x200
and dword [rsp + 0x20], r15d
and dword [rsp + 0x24], r15d
movss xmm2, dword [rdi + 0x10]
mov eax, dword [rdi + 0x1618]
movss dword [rsp + 0x2c], xmm0
movss dword [rsp + 0x28], xmm2
movups xmm1, xmmword [rsp + 0x20]
mov dword [rdi + 0x1944], eax
movdqu xmmword [rdi + 0x194c], xmm1
movss xmm1, dword [rdi + 0x161c]
movss xmm0, dword [rdi + 0x1948]
ucomiss xmm0, xmm1
jp 0x180030b34
je 0x180030baf
movss dword [rdi + 0x1948], xmm1
lea rsi, [rdi + 0x19c0]
mov ebx, r15d
mov r14d, 0xff
mov r13d, 0xc
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x18007c200]
movaps xmm0, xmm1
subss xmm0, dword [rdi + 0x1948]
divss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_acosf
movss xmm1, dword [0x18007c2e8]
mov ecx, r14d
divss xmm1, xmm0
cvttss2si eax, xmm1
cmp eax, ebp
mov edx, eax
cmovg edx, ebp
cmp eax, r13d
cmovl edx, r13d
cmp edx, r14d
movzx eax, dl
cmovl ecx, eax
inc ebx
mov byte [rsi], cl
inc rsi
cmp ebx, 0x40
jl 0x180030b52
or r13d, 0xffffffff
mov eax, r15d
mov dword [rdi + 0x195c], r15d
cmp byte [rdi + 0x1614], r15b
je 0x180030bd1
mov dword [rdi + 0x195c], 1
mov eax, 1
cmp byte [rdi + 0x1615], r15b
je 0x180030be3
or eax, 2
mov dword [rdi + 0x195c], eax
test byte [rdi + 0xc], 8
je 0x180030bf2
or eax, 4
mov dword [rdi + 0x195c], eax
lea rbx, [rdi + 0x1dd8]
mov rcx, rbx
call fcn.18004319c
mov rdx, qword [rdi + 0xa8]
mov rcx, rbx
mov rdx, qword [rdx + 8]
call fcn.180043820
mov rax, qword [rbx + 0x38]
xor r9d, r9d
mov rcx, rbx
movss xmm1, dword [rax + 0x28]
movss xmm0, dword [rax + 0x24]
movss xmm2, dword [rax + 0x20]
unpcklps xmm0, xmm1
movss xmm1, dword [rax + 0x1c]
movq r8, xmm0
unpcklps xmm1, xmm2
movq rdx, xmm1
call fcn.180043678
lea rbx, [rdi + 0x1eb8]
mov rcx, rbx
call fcn.18004319c
mov rdx, qword [rdi + 0xa8]
mov rcx, rbx
mov rdx, qword [rdx + 8]
call fcn.180043820
mov rax, qword [rbx + 0x38]
xor r9d, r9d
mov rcx, rbx
movss xmm1, dword [rax + 0x28]
movss xmm0, dword [rax + 0x24]
movss xmm2, dword [rax + 0x20]
unpcklps xmm0, xmm1
movss xmm1, dword [rax + 0x1c]
movq r8, xmm0
unpcklps xmm1, xmm2
movq rdx, xmm1
call fcn.180043678
mov byte [rdi + 0x1d78], r15b
mov qword [rdi + 0x1d80], r15
mov qword [rdi + 0x1d8c], r15
mov dword [rdi + 0x1d88], r15d
mov qword [rdi + 0x1da4], r15
mov qword [rdi + 0x1d9c], r15
mov qword [rdi + 0x1d94], r15
cmp byte [rdi + 0x1f9c], r15b
je 0x180030ce9
mov ecx, dword [rdi + 0x1fbc]
cmp ecx, dword [rdi + 0x1ac8]
jne 0x180030ce9
call fcn.18002f658
lea rax, [rdi + 0x1ab4]
mov ecx, dword [rax]
cmp dword [rdi + 0x1abc], r15d
jne 0x180030d04
mov dword [rdi + 0x1ac0], r15d
jmp 0x180030d15
mov edx, ecx
mov r8, rax
test ecx, ecx
je 0x180030d21
cmp dword [rdi + 0x1ac8], ecx
jne 0x180030d21
mov dword [rdi + 0x1ac4], r15d
mov edx, ecx
mov r8, rax
movss xmm1, dword [rdi + 0x18]
test edx, edx
je 0x180030d58
movaps xmm0, xmm1
addss xmm0, dword [rdi + 0x1ac0]
movss dword [rdi + 0x1ac0], xmm0
cmp dword [rdi + 0x1ac8], edx
je 0x180030d58
movaps xmm0, xmm1
addss xmm0, dword [rdi + 0x1ac4]
movss dword [rdi + 0x1ac4], xmm0
mov eax, dword [rdi + 0x1ac8]
movaps xmm2, xmm1
mov dword [rdi + 0x1abc], edx
mov dword [r8], r15d
mov byte [rdi + 0x1ab8], r15b
cmp dword [rdi + 0x1acc], eax
je 0x180030d93
cmp dword [rdi + 0x1b08], eax
jne 0x180030d93
test eax, eax
je 0x180030d93
xor edx, edx
xor ecx, ecx
call fcn.18002f5a8
movss xmm2, dword [rdi + 0x18]
mov ecx, dword [rdi + 0x1ac8]
test ecx, ecx
je 0x180030db0
movaps xmm0, xmm2
addss xmm0, dword [rdi + 0x1ad0]
movss dword [rdi + 0x1ad0], xmm0
mov rax, qword [rdi + 0x1af8]
addss xmm2, dword [rdi + 0x1b1c]
mov qword [rdi + 0x1b10], rax
mov al, byte [rdi + 0x1ad7]
mov byte [rdi + 0x1b0d], al
mov eax, dword [rdi + 0x2fa0]
movss dword [rdi + 0x1b1c], xmm2
mov dword [rdi + 0x1b08], ecx
mov dword [rdi + 0x1acc], r15d
mov byte [rdi + 0x1ad8], r15b
mov byte [rdi + 0x1b0c], r15b
mov byte [rdi + 0x1ad4], r15b
test eax, eax
je 0x180030e11
cmp ecx, eax
je 0x180030e11
mov dword [rdi + 0x2fa0], r15d
test ecx, ecx
jne 0x180030e23
mov qword [rdi + 0x1adc], r15
mov qword [rdi + 0x1ae8], r15
mov r8, qword [0x180087a70]
lea rbx, [rdi + 0x4a8]
mov eax, dword [rdi + 0x200c]
mov dword [rdi + 0x2010], eax
mov eax, r15d
mov qword [rdi + 0x2008], 0x7f7fffff
mov word [rdi + 0x1f9d], r15w
mov dword [rdi + 0x2018], r15d
cmp byte [r8 + 0x148], r15b
setne al
mov ecx, eax
or ecx, 2
cmp byte [r8 + 0x149], r15b
cmove ecx, eax
mov edx, ecx
or edx, 4
cmp byte [r8 + 0x14a], r15b
cmove edx, ecx
lea rcx, [rdi + 0xca8]
mov eax, edx
or eax, 8
cmp byte [r8 + 0x14b], r15b
mov r8d, 0x800
cmove eax, edx
mov rdx, rbx
mov dword [rdi + 0x3c8], eax
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rdi + 0x14c]
cmp byte [rax], r15b
je 0x180030ecd
movss xmm0, dword [rbx]
comiss xmm6, xmm0
jbe 0x180030ec6
movaps xmm0, xmm6
jmp 0x180030ed5
addss xmm0, dword [rdi + 0x18]
jmp 0x180030ed5
movss xmm0, dword [0x18007c3cc]
movss dword [rbx], xmm0
inc rax
add rbx, 4
sub rbp, 1
jne 0x180030eb3
call fcn.1800398c0
call fcn.18002fe00
call fcn.1800305a8
mov r11, qword [0x180087a70]
cmp qword [r11 + 0x1a98], r15
je 0x180030fe0
mov ecx, dword [r11 + 0x1ac8]
call fcn.18002f658
mov rcx, qword [r11 + 0x1a98]
mov r9, qword [rcx + 0x3a0]
cmp byte [r11 + 0x138], r15b
je 0x180030fce
lea rcx, [r11 + 0x130]
call fcn.18003210c
test al, al
je 0x180030fce
movss xmm1, dword [rcx]
subss xmm1, dword [r11 + 0x1af0]
movss xmm2, dword [rcx + 4]
subss xmm2, dword [r11 + 0x1af4]
movss xmm0, dword [r9 + 0x10]
ucomiss xmm0, xmm1
movss dword [rsp + 0x80], xmm1
movss dword [rsp + 0x84], xmm2
jp 0x180030f8b
jne 0x180030f8b
movss xmm0, dword [r9 + 0x14]
ucomiss xmm0, xmm2
jp 0x180030f8b
je 0x180030fc0
test dword [r9 + 0xc], 0x100
jne 0x180030faa
comiss xmm6, dword [r11 + 0x3014]
jb 0x180030faa
mov eax, dword [r11 + 0x1c]
mov dword [r11 + 0x3014], eax
mov r8d, 1
lea rdx, [rsp + 0x80]
mov rcx, r9
call fcn.180036bc8
mov rcx, qword [r11 + 0x1a98]
call fcn.1800366dc
jmp 0x18003100f
xor edx, edx
xor ecx, ecx
call fcn.18002f5a8
mov qword [r11 + 0x1a98], r15
jmp 0x18003100f
mov rax, qword [r11 + 0x1af8]
test rax, rax
je 0x18003100f
mov ecx, dword [r11 + 0x1ac8]
cmp dword [rax + 0x4c], ecx
jne 0x18003100f
call fcn.18002f658
cmp byte [r11 + 0x138], r15b
jne 0x18003100f
xor edx, edx
xor ecx, ecx
call fcn.18002f5a8
call fcn.180037f94
test rax, rax
jne 0x18003104e
cmp qword [rdi + 0x1d28], r15
je 0x18003102f
movss xmm0, dword [rdi + 0x1d44]
comiss xmm0, xmm6
ja 0x18003104e
movss xmm0, dword [rdi + 0x18]
mulss xmm0, dword [0x18007c2f4]
movss xmm1, dword [rdi + 0x1dd0]
subss xmm1, xmm0
maxss xmm1, xmm6
jmp 0x18003106b
movss xmm1, dword [rdi + 0x18]
mulss xmm1, dword [0x18007c2e0]
addss xmm1, dword [rdi + 0x1dd0]
minss xmm1, dword [0x18007c200]
movss dword [rdi + 0x1dd0], xmm1
mov eax, 0x3f800000
mov dword [rdi + 0x3000], eax
mov dword [rdi + 0x3004], eax
mov dword [rdi + 0x1f98], r15d
mov dword [rdi + 0x3274], r13d
mov dword [rdi + 0x3270], r13d
mov dword [rdi + 0x326c], r13d
call fcn.180030144
mov r8, qword [0x180087a70]
mov r9, qword [r8 + 0x1bf8]
test r9, r9
je 0x1800310e4
cmp byte [r9 + 0x7e], r15b
je 0x1800310e4
test dword [r9 + 0xc], 0x40000
jne 0x1800310e4
cmp byte [r8 + 0x148], r15b
jne 0x1800310e4
mov ecx, dword [r8 + 0x3c]
test ecx, ecx
js 0x1800310e4
call fcn.180032014
test al, al
mov al, 1
jne 0x1800310e7
mov al, r15b
mov r10d, 0x7fffffff
mov byte [r8 + 0x1d70], al
cmp dword [r8 + 0x1ac8], r15d
jne 0x18003114a
test al, al
je 0x18003114a
mov qword [r8 + 0x1d58], r9
mov dword [r8 + 0x1d68], r10d
cmp dword [r8 + 0x1c00], r15d
je 0x180031138
mov edx, dword [r8 + 0x1c48]
cmp edx, r10d
je 0x180031138
mov al, byte [r8 + 0x149]
neg al
sbb ecx, ecx
not ecx
and ecx, 2
add ecx, edx
jmp 0x180031143
mov al, byte [r8 + 0x149]
neg al
sbb ecx, ecx
mov dword [r8 + 0x1d6c], ecx
mov r9, qword [r8 + 0x1d58]
mov qword [r8 + 0x1d50], r15
mov dword [r8 + 0x1d64], r10d
mov dword [r8 + 0x1d60], r10d
test r9, r9
je 0x1800311d3
mov eax, dword [r8 + 0x1d68]
mov qword [r8 + 0x1d50], r9
cmp eax, r10d
je 0x180031198
mov ecx, dword [r9 + 0x1b0]
cmp ecx, r13d
je 0x180031198
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [r8 + 0x1d60], edx
mov eax, dword [r8 + 0x1d6c]
cmp eax, r10d
je 0x1800311be
mov ecx, dword [r9 + 0x1b4]
cmp ecx, r13d
je 0x1800311be
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [r8 + 0x1d64], edx
mov qword [r8 + 0x1d58], r15
mov dword [r8 + 0x1d6c], r10d
mov dword [r8 + 0x1d68], r10d
mov dword [r8 + 0x1c48], r10d
movss xmm0, dword [rdi + 0xd0]
comiss xmm0, xmm6
jb 0x1800311f7
movsd xmm7, qword [rdi + 0x1a00]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov esi, r15d
cmp dword [rdi + 0x1a28], r15d
je 0x1800313c0
mov r14, r15
mov rax, qword [rdi + 0x1a30]
mov rbx, qword [r14 + rax]
mov al, byte [rbx + 0x7e]
mov byte [rbx + 0x7f], al
mov word [rbx + 0x8a], r15w
mov byte [rbx + 0x7e], r15b
mov byte [rbx + 0x80], r15b
test al, al
jne 0x1800313ae
cmp byte [rbx + 0x3e8], r15b
jne 0x1800313ae
comiss xmm7, dword [rbx + 0x27c]
jbe 0x1800313ae
mov rcx, qword [rbx + 0x2b0]
mov byte [rbx + 0x3e8], 1
mov eax, dword [rcx + 0x14]
mov dword [rbx + 0x3ec], eax
mov eax, dword [rcx + 0x24]
mov dword [rbx + 0x3f0], eax
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x1800312a3
mov rax, qword [0x180087a70]
mov qword [rbx + 0xc0], r15
test rax, rax
je 0x180031296
add dword [rax + 0x3bc], r13d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0xc8], r15
mov rcx, qword [rbx + 0x2b0]
call fcn.1800433a8
mov rcx, qword [rbx + 0x190]
test rcx, rcx
je 0x1800312e2
mov rax, qword [0x180087a70]
mov qword [rbx + 0x188], r15
test rax, rax
je 0x1800312d5
add dword [rax + 0x3bc], r13d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0x190], r15
mov rcx, qword [rbx + 0x1d0]
test rcx, rcx
je 0x180031315
mov rax, qword [0x180087a70]
mov qword [rbx + 0x1c8], r15
test rax, rax
je 0x180031308
add dword [rax + 0x3bc], r13d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0x1d0], r15
mov rcx, qword [rbx + 0x1e0]
test rcx, rcx
je 0x180031348
mov rax, qword [0x180087a70]
mov qword [rbx + 0x1d8], r15
test rax, rax
je 0x18003133b
add dword [rax + 0x3bc], r13d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0x1e0], r15
mov rcx, qword [rbx + 0x1f0]
test rcx, rcx
je 0x18003137b
mov rax, qword [0x180087a70]
mov qword [rbx + 0x1e8], r15
test rax, rax
je 0x18003136e
add dword [rax + 0x3bc], r13d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0x1f0], r15
mov rcx, qword [rbx + 0x200]
test rcx, rcx
je 0x1800313ae
mov rax, qword [0x180087a70]
mov qword [rbx + 0x1f8], r15
test rax, rax
je 0x1800313a1
add dword [rax + 0x3bc], r13d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0x200], r15
inc esi
add r14, 8
cmp esi, dword [rdi + 0x1a28]
jne 0x18003120a
mov rax, qword [rdi + 0x1bf8]
test rax, rax
je 0x1800313d9
cmp byte [rax + 0x7f], r15b
jne 0x1800313d9
xor ecx, ecx
call fcn.1800368b0
lea rbx, [rdi + 0x1a58]
mov ecx, dword [rbx + 4]
test ecx, ecx
jns 0x180031400
mov eax, ecx
cdq
sub eax, edx
mov edx, r15d
sar eax, 1
add eax, ecx
mov rcx, rbx
test eax, eax
cmovg edx, eax
call fcn.18003cfec
mov dword [rbx], r15d
lea rbx, [rdi + 0x1be8]
mov ecx, dword [rbx + 4]
test ecx, ecx
jns 0x18003142a
mov eax, ecx
cdq
sub eax, edx
mov edx, r15d
sar eax, 1
add eax, ecx
mov rcx, rbx
test eax, eax
cmovg edx, eax
call fcn.18003d6e0
mov dword [rbx], r15d
xor edx, edx
mov rcx, qword [rdi + 0x1bf8]
call fcn.1800381cc
mov r8, qword [0x180087a70]
mov dword [r8 + 0x3080], r15d
cmp byte [r8 + 0x307c], r15b
je 0x180031505
mov ebx, dword [r8 + 0x1abc]
mov dword [r8 + 0x1f98], 7
mov ecx, dword [r8 + 0x74]
test ecx, ecx
js 0x180031480
call fcn.180032014
test al, al
je 0x180031480
mov byte [r8 + 0x307c], r15b
movss xmm0, dword [r8 + 0x444]
ucomiss xmm0, xmm6
jp 0x1800314a2
jne 0x1800314a2
test ebx, ebx
je 0x1800314a2
mov dword [r8 + 0x3080], ebx
mov byte [r8 + 0x307c], r15b
or dword [r8 + 0x1b20], 0x40
xor edx, edx
mov dword [r8 + 0x1b80], 0x3f19999a
call fcn.180037dd0
mov edx, ebx
lea rcx, str.HoveredId:_0x_08X
call fcn.18004ad2c
lea rcx, str.Press_ESC_to_abort_picking.
call fcn.18004ad2c
neg ebx
lea rdx, str.Click_to_break_in_debugger_
sbb rcx, rcx
and rcx, 0xfffffffffffffff0
add rcx, 0x1630
add rcx, qword [0x180087a70]
call fcn.18004adc4
call fcn.180036640
mov r8, qword [0x180087a70]
mov byte [rdi + 0x1a15], 1
lea rcx, str.DebugDefault
or dword [r8 + 0x1b20], 2
mov eax, 0x43c80000
mov dword [r8 + 0x1b40], eax
xor edx, edx
mov dword [r8 + 0x1b44], eax
mov dword [r8 + 0x1b28], 4
xor r8d, r8d
movaps xmm6, xmmword [rsp + 0x40]
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
movaps xmm7, xmmword [rsp + 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rsi
jmp fcn.180034738