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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov r13, qword [rcx]
mov eax, dword [rcx + 0x10]
mov bpl, byte [r13 + 0x26]
mov rsi, rcx
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x2c], eax
mov rcx, rsi
call sym.rtreeSearchPointFirst
test rax, rax
mov r15, rax
je 0x4b5fa3
cmp byte [rax + 0x10], 0
je 0x4b5fa3
lea rdx, [rsp + 0x38]
mov rcx, rsi
call sym.rtreeNodeOfFirstSearchPoint
mov rdx, rax
mov eax, dword [rsp + 0x38]
test eax, eax
jne 0x4b5fed
mov rbx, qword [rdx + 0x18]
movzx eax, byte [rbx + 2]
movzx edx, byte [rbx + 3]
shl eax, 8
add eax, edx
movzx edx, byte [r15 + 0x12]
mov dword [rsp + 0x28], eax
movzx eax, byte [r13 + 0x27]
imul eax, edx
add eax, 4
cdqe
add rbx, rax
movzx eax, byte [r15 + 0x12]
cmp eax, dword [rsp + 0x28]
jge 0x4b5f96
mov rax, qword [0x004f5f10]
xor r12d, r12d
mov edi, 2
lea r14, [rsp + 0x40]
movq xmm6, rax
cmp dword [rsp + 0x2c], r12d
jle 0x4b5f1e
imul rax, r12, 0x18
add rax, qword [rsi + 0x18]
mov r8d, dword [rax + 4]
cmp r8d, 0x45
jle 0x4b5df0
mov r11, qword [rax + 0x10]
cmp r8d, 0x47
mov edx, dword [r11 + 0x38]
jne 0x4b5b50
cmp byte [r15 + 0x10], 1
jne 0x4b5b50
mov rcx, qword [rbx]
bswap rcx
mov qword [r11 + 0x48], rcx
cmp bpl, 1
mov ecx, dword [rbx + 0xc]
je 0x4b5c70
cmp edx, 6
je 0x4b5bea
jg 0x4b5b76
cmp edx, 4
je 0x4b5c1a
jmp 0x4b5c4a
cmp edx, 8
je 0x4b5bba
cmp edx, 0xa
jne 0x4b5c4a
mov r9d, dword [rbx + 0x2c]
bswap r9d
mov dword [rsp + 0x20], r9d
mov r9d, dword [rbx + 0x28]
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x88], xmm0
bswap r9d
mov dword [rsp + 0x20], r9d
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
mov dword [rsp + 0x20], r9d
mov r9d, dword [rbx + 0x20]
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x78], xmm0
bswap r9d
mov dword [rsp + 0x20], r9d
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
mov dword [rsp + 0x20], r9d
mov r9d, dword [rbx + 0x18]
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x68], xmm0
bswap r9d
mov dword [rsp + 0x20], r9d
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x60], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
mov dword [rsp + 0x20], r9d
mov r9d, dword [rbx + 0x10]
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x58], xmm0
bswap r9d
mov dword [rsp + 0x20], r9d
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x50], xmm0
bswap ecx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rbx + 8]
cvtss2sd xmm0, dword [rsp + 0x20]
movsd qword [rsp + 0x48], xmm0
bswap ecx
mov dword [rsp + 0x20], ecx
cvtss2sd xmm0, dword [rsp + 0x20]
jmp 0x4b5d3e
cmp edx, 6
je 0x4b5ce1
jg 0x4b5c85
cmp edx, 4
je 0x4b5d05
jmp 0x4b5d29
cmp edx, 8
je 0x4b5cbd
cmp edx, 0xa
jne 0x4b5d29
mov r9d, dword [rbx + 0x2c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x28]
movsd qword [rsp + 0x88], xmm0
bswap r9d
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x20]
movsd qword [rsp + 0x78], xmm0
bswap r9d
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x18]
movsd qword [rsp + 0x68], xmm0
bswap r9d
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x60], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x10]
movsd qword [rsp + 0x58], xmm0
bswap r9d
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x50], xmm0
bswap ecx
cvtsi2sd xmm0, ecx
mov ecx, dword [rbx + 8]
movsd qword [rsp + 0x48], xmm0
bswap ecx
cvtsi2sd xmm0, ecx
cmp r8d, 0x46
movsd qword [rsp + 0x40], xmm0
mov rax, qword [rax + 8]
jne 0x4b5d75
mov dword [rsp + 0x3c], 0
lea r9, [rsp + 0x3c]
mov r8, r14
mov rcx, r11
call rax
cmp dword [rsp + 0x3c], 0
mov edx, 0
xorps xmm0, xmm0
cmove edi, edx
jmp 0x4b5ddf
mov qword [r11 + 0x28], r14
movzx edx, byte [r15 + 0x10]
mov rcx, r11
movsd xmm0, qword [r15]
mov qword [rsp + 0x20], r11
movsd qword [r11 + 0x50], xmm0
dec edx
movsd qword [r11 + 0x60], xmm0
mov dword [r11 + 0x3c], edx
movzx edx, byte [r15 + 0x11]
mov dword [r11 + 0x58], edx
mov dword [r11 + 0x5c], edx
call rax
mov r11, qword [rsp + 0x20]
mov edx, dword [r11 + 0x5c]
movsd xmm0, qword [r11 + 0x60]
cmp edi, edx
cmovg edi, edx
comisd xmm6, xmm0
ja 0x4b5ddf
movapd xmm2, xmm6
xorps xmm1, xmm1
cmpltsd xmm2, xmm1
movapd xmm1, xmm2
andps xmm0, xmm2
andnps xmm1, xmm6
orps xmm0, xmm1
test eax, eax
mov dword [rsp + 0x38], eax
je 0x4b5ee1
jmp 0x4b5fed
cmp byte [r15 + 0x10], 1
lea edx, [r8 - 0x3f]
mov ecx, dword [rax]
jne 0x4b5e2a
lea ecx, [rcx*4 + 8]
cmp bpl, 1
movsxd rcx, ecx
mov ecx, dword [rbx + rcx]
bswap ecx
mov dword [rsp + 0x20], ecx
jne 0x4b5e1f
cvtsi2sd xmm0, ecx
jmp 0x4b5f04
cvtss2sd xmm0, dword [rsp + 0x20]
jmp 0x4b5f04
and ecx, 0xfe
cmp edx, 4
lea rcx, [rbx + rcx*4 + 8]
ja case.default.0x4b5e48
lea r10, [0x004e8b40]
movsxd rdx, dword [r10 + rdx*4]
add rdx, r10
jmp rdx
mov edx, dword [rcx]
cmp bpl, 1
bswap edx
mov dword [rsp + 0x20], edx
jne 0x4b5e5e
cvtsi2sd xmm0, edx
jmp 0x4b5e64
cvtss2sd xmm0, dword [rsp + 0x20]
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
jb case.0x4b5e48.1
mov eax, dword [rcx + 4]
cmp bpl, 1
bswap eax
mov dword [rsp + 0x20], eax
jne 0x4b5e88
cvtsi2sd xmm0, eax
jmp 0x4b5e8e
cvtss2sd xmm0, dword [rsp + 0x20]
comisd xmm0, xmm1
jmp 0x4b5ed9
mov edx, dword [rcx]
cmp bpl, 1
bswap edx
mov dword [rsp + 0x20], edx
jne 0x4b5ea8
cvtsi2sd xmm0, edx
jmp case.0x4b5fe1.3
cvtss2sd xmm0, dword [rsp + 0x20]
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
jmp 0x4b5ed9
mov edx, dword [rcx + 4]
cmp bpl, 1
bswap edx
mov dword [rsp + 0x20], edx
jne 0x4b5ece
cvtsi2sd xmm0, edx
jmp case.0x4b5fe1.5
cvtss2sd xmm0, dword [rsp + 0x20]
comisd xmm0, xmmword [rax + 8]
jb case.0x4b5e48.1
jmp case.0x4b5fe1.0
movapd xmm0, xmm6
test edi, edi
je case.0x4b5e48.1
movapd xmm6, xmm0
jmp case.0x4b5fe1.0
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
ja case.0x4b5fe1.0
inc byte [r15 + 0x12]
movzx eax, byte [r13 + 0x27]
jmp 0x4b5ae5
cmp edx, 6
jbe 0x4b5fd3
ucomisd xmm0, qword [rax + 8]
jp case.0x4b5e48.1
jne case.0x4b5e48.1
inc r12
jmp 0x4b5b10
movzx r14d, byte [r15 + 0x12]
mov r12b, byte [r15 + 0x10]
lea eax, [r14 + 1]
dec r12b
mov byte [r15 + 0x12], al
je 0x4b5fc6
mov rbx, qword [rbx]
xor edx, edx
mov r8d, dword [rsi + 0x24]
bswap rbx
cmp r8d, edx
jg 0x4b5fae
xor r14d, r14d
movzx eax, al
cmp eax, dword [rsp + 0x28]
jl 0x4b5f5d
mov rcx, rsi
call sym.rtreeSearchPointPop
xorps xmm0, xmm0
comisd xmm0, xmm6
jbe 0x4b5f6a
movapd xmm6, xmm0
movzx r8d, r12b
movapd xmm1, xmm6
mov rcx, rsi
call sym.rtreeSearchPointNew
test rax, rax
je 0x4b5fcc
cmp r14d, dword [rsp + 0x28]
mov byte [rax + 0x11], dil
mov qword [rax + 8], rbx
mov byte [rax + 0x12], r14b
jl 0x4b5a84
mov rcx, rsi
call sym.rtreeSearchPointPop
jmp 0x4b5a84
test r15, r15
sete byte [rsi + 8]
xor eax, eax
jmp 0x4b5fed
imul rcx, rdx, 0x18
inc rdx
add rcx, qword [rsi + 0x30]
cmp qword [rcx + 8], rbx
jne 0x4b5f44
mov eax, 0x10b
jmp 0x4b5fed
mov rbx, qword [r15 + 8]
jmp 0x4b5f4c
mov eax, 7
jmp 0x4b5fed
lea rcx, [0x004e8b54]
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
comisd xmm0, xmmword [rax + 8]
jmp 0x4b5ef4
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret