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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rdi, qword [rsp + 0xa0]
xor esi, esi
mov r10, qword [rcx]
mov rbp, r8
mov rbx, qword [rcx + 0x10]
movzx r11d, r9w
mov r12, qword [rsp + 0xb0]
mov rax, qword [rdi + 0x20]
movsxd r14, dword [rdi]
mov r15, qword [rcx + 8]
mov qword [rsp + 0x88], rax
mov rax, qword [r10]
mov qword [rsp + 0x30], rax
movzx eax, byte [rbx + 0x10]
imul rax, rax, 0x68
mov dword [r12], esi
mov qword [rsp + 0x20], rax
mov rax, qword [r10 + 8]
mov qword [rbx], rdx
mov r8, qword [rdi + 8]
mov qword [rsp + 0x28], rax
test r14d, r14d
jle 0x1400a5680
mov r10, qword [rsp + 0xb8]
add r8, 5
mov r9d, r14d
nop dword [rax]
movsxd rax, dword [r8 + 3]
imul rdx, rax, 0x38
add rdx, qword [r15 + 0x20]
mov byte [r8], sil
mov rax, qword [rdx + 0x28]
and rax, rbp
cmp rax, qword [rdx + 0x28]
jne 0x1400a5676
test word [rdx + 0x14], r11w
jne 0x1400a5676
test r10, r10
jne 0x1400a5672
movzx eax, byte [rdx + 0x17]
sub al, 0x49
cmp al, 1
jbe 0x1400a5676
mov byte [r8], 1
add r8, 0xc
sub r9, 1
jne 0x1400a5640
mov rcx, qword [rsp + 0x88]
lea rbp, [r14*8]
mov r8, rbp
xor edx, edx
mov r13, r14
call fcn.1401b1bc0
mov rcx, qword [rsp + 0x20]
movabs rax, 0x546d42aea2879f2e
mov rdx, qword [rsp + 0x28]
mov r8, rdi
mov qword [rdi + 0x30], rsi
mov dword [rdi + 0x28], esi
mov dword [rdi + 0x3c], esi
mov qword [rdi + 0x40], rax
mov qword [rdi + 0x48], reloc.OLEAUT32.dll_SafeArrayPutElement
mov dword [rdi + 0x50], esi
mov rax, qword [rcx + rdx + 0x58]
mov qword [rdi + 0x58], rax
mov dword [rdi + 0x78], esi
mov rdx, qword [rcx + rdx + 0x28]
mov rcx, qword [rsp + 0x30]
call fcn.1400a3140
test eax, eax
je 0x1400a56f7
cmp eax, 0x13
cmove eax, esi
jmp 0x1400a5a33
mov rcx, qword [rbx + 0x48]
mov r8, rbp
xor edx, edx
or r14d, 0xffffffff
call fcn.1401b1bc0
xor eax, eax
mov r10d, esi
mov qword [rbx + 0x18], rax
mov r11, rsi
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov rax, qword [rdi + 8]
test r13, r13
jle 0x1400a5840
lea rbp, [rax + 5]
mov rax, qword [rsp + 0x88]
nop word [rax + rax]
mov edx, dword [rax + r11*8]
sub edx, 1
js 0x1400a582d
movsxd rax, dword [rbp + 3]
cmp edx, r13d
jge 0x1400a58b4
test eax, eax
js 0x1400a58b4
cmp eax, dword [r15 + 0x14]
jge 0x1400a58b4
mov r9, qword [rbx + 0x48]
movsxd rcx, edx
cmp qword [r9 + rcx*8], rsi
jne 0x1400a58b4
cmp byte [rbp], sil
je 0x1400a58b4
imul r8, rax, 0x38
add r8, qword [r15 + 0x20]
mov rax, qword [r8 + 0x28]
or qword [rbx], rax
mov rax, qword [rsp + 0x88]
cmp edx, r14d
mov qword [r9 + rcx*8], r8
cmovg r14d, edx
cmp byte [rax + r11*8 + 4], sil
je 0x1400a57da
cmp r10d, 0x10
jge 0x1400a57cf
movzx eax, word [rsp + 0xa8]
bt eax, r10d
jb 0x1400a57cf
movzx eax, word [rbx + 0x22]
bts eax, edx
mov word [rbx + 0x22], ax
cmp byte [r8 + 0x17], 0x4a
jne 0x1400a57da
or dword [rbx + 0x1c], 2
cmp r10d, 0x1f
jg 0x1400a57ec
mov ecx, r10d
mov eax, 1
shl eax, cl
jmp 0x1400a57ee
mov eax, esi
test dword [rdi + 0x78], eax
je 0x1400a57fe
mov eax, dword [rbx + 0x30]
bts eax, edx
mov dword [rbx + 0x30], eax
jmp 0x1400a5814
test byte [r8 + 0x14], 1
je 0x1400a5814
and dword [rdi + 0x50], 0xfffffffe
mov dword [rdi + 0x3c], esi
mov dword [r12], 1
movzx eax, byte [r8 + 0x17]
sub al, 0x49
cmp al, 1
ja 0x1400a5825
cmp dword [r12], esi
jne 0x1400a588a
mov rax, qword [rsp + 0x88]
inc r10d
inc r11
add rbp, 0xc
cmp r11, r13
jl 0x1400a5740
lea eax, [r14 + 1]
mov ecx, esi
mov word [rbx + 0x3c], ax
test r14d, r14d
js 0x1400a5863
mov rax, qword [rbx + 0x48]
cmp qword [rax], rsi
je 0x1400a58b4
inc ecx
add rax, 8
cmp ecx, r14d
jle 0x1400a5853
mov eax, dword [rdi + 0x28]
mov dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x1c]
xor eax, dword [rdi + 0x38]
and eax, 1
xor dword [rbx + 0x1c], eax
mov rax, qword [rdi + 0x30]
mov dword [rdi + 0x38], esi
mov qword [rbx + 0x28], rax
cmp dword [rdi + 0x3c], esi
je 0x1400a58e1
mov eax, dword [rdi + 0x10]
jmp 0x1400a58e3
cmp dword [rdi + 0x38], esi
je 0x1400a589f
mov rcx, qword [rdi + 0x30]
call fcn.140006b90
mov qword [rdi + 0x30], rsi
mov dword [rdi + 0x38], esi
mov rax, qword [rsp + 0xb8]
mov dword [rax], 1
xor eax, eax
jmp 0x1400a5a33
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
mov r8, qword [r8 + rdx + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov r8, qword [r8]
call fcn.14000ab20
mov eax, 1
jmp 0x1400a5a33
mov eax, esi
movsd xmm0, qword [0x140241fd8]
mov byte [rbx + 0x20], al
mov word [rbx + 0x12], si
movsd xmm1, qword [rdi + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x1400a590b
movzx ecx, si
jmp 0x1400a5973
movsd xmm0, qword [0x140242068]
comisd xmm0, xmm1
jb 0x1400a5952
movsd xmm0, qword [0x1402420b0]
xor eax, eax
comisd xmm1, xmm0
jb 0x1400a5940
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1400a5940
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm1
add rcx, rax
call fcn.14000d2a0
movzx ecx, ax
jmp 0x1400a5973
mov rcx, qword [rsp + 0xa0]
mov eax, 0x3fe
shr rcx, 0x34
sub cx, ax
movzx eax, cx
shl ax, 2
add cx, ax
add cx, cx
mov word [rbx + 0x14], cx
mov ecx, 0x28
mov rax, qword [rdi + 0x48]
cmp rax, 8
jae 0x1400a599f
cmp rax, 2
jb 0x1400a59f2
nop dword [rax]
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1400a5990
jmp 0x1400a59dd
cmp rax, 0xff
jbe 0x1400a59c0
nop word [rax + rax]
add cx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x1400a59b0
cmp rax, 0xf
jbe 0x1400a59dd
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x1400a59d0
and eax, 7
lea rdx, [0x14022db68]
movzx esi, word [rdx + rax*2]
sub si, 0xa
add si, cx
mov word [rbx + 0x16], si
test byte [rdi + 0x50], 1
je 0x1400a5a05
or dword [rbx + 0x38], 0x1000
jmp 0x1400a5a0c
and dword [rbx + 0x38], 0xffffefff
mov rcx, qword [rsp + 0x80]
mov rdx, rbx
call fcn.1400a3a00
test byte [rbx + 0x1c], 1
mov edi, eax
je 0x1400a5a31
mov rcx, qword [rbx + 0x28]
call fcn.140006b90
and dword [rbx + 0x1c], 0xfffffffe
mov eax, edi
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret