Function at 0x14009c104
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 r10, qword [rcx]
xor esi, esi
mov rdi, qword [rsp + 0xa0]
mov r11, r8
mov rbx, qword [rcx + 0x10]
mov rbp, qword [rcx + 8]
mov r15, qword [r10]
lea r13d, [rsi + 1]
mov r12, qword [rdi + 0x20]
movzx eax, byte [rbx + 0x10]
imul r14, rax, 0x68
mov rax, qword [rsp + 0xb0]
add r14, qword [r10 + 8]
movsxd r10, dword [rdi]
mov qword [rbx], rdx
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x88], r14
mov dword [rsp + 0xa0], r10d
mov dword [rax], esi
test r10d, r10d
jle 0x14009c1ce
mov rsi, qword [rsp + 0xb8]
add rcx, 5
mov r8d, r10d
movsxd rax, dword [rcx + 3]
imul rdx, rax, 0x38
add rdx, qword [rbp + 0x20]
mov byte [rcx], 0
mov rax, qword [rdx + 0x28]
and rax, r11
cmp rax, qword [rdx + 0x28]
jne 0x14009c1c3
test word [rdx + 0x14], r9w
jne 0x14009c1c3
test rsi, rsi
jne 0x14009c1c0
mov al, byte [rdx + 0x17]
sub al, 0x49
cmp al, r13b
jbe 0x14009c1c3
mov byte [rcx], r13b
add rcx, 0xc
sub r8, r13
jne 0x14009c18e
xor esi, esi
lea r13, [r10*8]
mov qword [rsp + 0x20], r10
mov r8, r13
xor edx, edx
mov rcx, r12
call fcn.1400e73c0
mov qword [rdi + 0x30], rsi
movabs rax, 0x546d42aea2879f2e
mov qword [rdi + 0x40], rax
mov dword [rdi + 0x28], esi
mov dword [rdi + 0x3c], esi
mov qword [rdi + 0x48], 0x19
mov dword [rdi + 0x50], esi
mov rax, qword [r14 + 0x58]
mov qword [rdi + 0x58], rax
mov dword [rdi + 0x78], esi
mov rbp, qword [r14 + 0x28]
mov rax, qword [rbp + 0x50]
test rax, rax
je 0x14009c234
mov rcx, qword [r15]
cmp qword [rax], rcx
je 0x14009c234
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x14009c226
mov r12, qword [rax + 0x10]
mov rdx, rdi
mov rax, qword [r15]
mov rcx, r12
inc dword [rax + 0x48]
mov rax, qword [r12]
call qword [rax + 0x18]
mov esi, eax
mov rax, qword [r15]
dec dword [rax + 0x48]
test esi, esi
je 0x14009c28e
cmp esi, 0x13
je 0x14009c28e
cmp esi, 7
jne 0x14009c26b
mov rcx, qword [r15]
call fcn.14002b7d0
jmp 0x14009c28e
mov r8, qword [r12 + 0x10]
test r8, r8
jne 0x14009c27f
mov ecx, esi
call fcn.1400a8fd8
mov r8, rax
lea rdx, [0x140125d00]
mov rcx, r15
call fcn.14002e178
mov rax, qword [rbp + 0x50]
cmp byte [rax + 0x1d], 0
je 0x14009c2e7
mov rax, qword [r15]
mov r14d, dword [rax + 0x28]
xor eax, eax
mov ebp, eax
test r14d, r14d
jle 0x14009c2bb
mov edx, ebp
mov rcx, r15
call fcn.14006f614
inc ebp
cmp ebp, r14d
jl 0x14009c2a8
xor eax, eax
cmp dword [r15 + 0x80], eax
je 0x14009c2df
mov ebp, eax
test r14d, r14d
jle 0x14009c2df
mov r8d, ebp
xor edx, edx
mov rcx, r15
call fcn.14006f6c8
inc ebp
cmp ebp, r14d
jl 0x14009c2cb
mov r14, qword [rsp + 0x88]
mov rcx, qword [r12 + 0x10]
call fcn.14002b114
xor eax, eax
mov qword [r12 + 0x10], rax
test esi, esi
je 0x14009c307
cmp esi, 0x13
cmove esi, eax
jmp 0x14009c67c
mov rcx, qword [rbx + 0x48]
mov r8, r13
xor edx, edx
or esi, 0xffffffff
call fcn.1400e73c0
xorps xmm0, xmm0
xor r10d, r10d
mov r11d, r10d
movups xmmword [rbx + 0x18], xmm0
movups xmmword [rbx + 0x28], xmm0
mov rax, qword [rdi + 8]
cmp qword [rsp + 0x20], r10
jle 0x14009c546
movsxd r12, dword [rsp + 0xa0]
lea rbp, [rax + 5]
mov rax, qword [rsp + 0x20]
mov r8d, r10d
mov r13, qword [rsp + 0x30]
movsxd rcx, dword [r13 + r8*8]
lea r9d, [rcx - 1]
test r9d, r9d
js 0x14009c478
cmp r9d, r12d
jge 0x14009c526
movsxd rax, dword [rbp + 3]
test eax, eax
js 0x14009c526
mov rdx, qword [rsp + 0x28]
cmp eax, dword [rdx + 0x14]
jge 0x14009c526
mov r10, rcx
xor edx, edx
mov rcx, qword [rbx + 0x48]
cmp qword [rcx + r10*8 - 8], rdx
jne 0x14009c526
cmp byte [rbp], dl
je 0x14009c526
imul rdx, rax, 0x38
mov rax, qword [rsp + 0x28]
add rdx, qword [rax + 0x20]
mov rax, qword [rdx + 0x28]
or qword [rbx], rax
mov eax, r9d
cmp r9d, esi
mov qword [rcx + r10*8 - 8], rdx
cmovle eax, esi
xor r10d, r10d
mov esi, eax
cmp byte [r13 + r8*8 + 4], r10b
je 0x14009c3fb
cmp r11d, 0x10
jge 0x14009c3f1
movzx eax, word [rsp + 0xa8]
bt eax, r11d
jb 0x14009c3f1
movzx eax, word [rbx + 0x22]
bts eax, r9d
mov word [rbx + 0x22], ax
cmp byte [rdx + 0x17], 0x4a
jne 0x14009c3fb
or dword [rbx + 0x1c], 2
mov ecx, r11d
mov eax, 1
shl eax, cl
mov ecx, r10d
cmp r11d, 0x1f
cmovle ecx, eax
test dword [rdi + 0x78], ecx
je 0x14009c457
mov eax, dword [rbx + 0x30]
bts eax, r9d
mov r9d, 1
mov dword [rbx + 0x30], eax
mov rcx, qword [rsp + 0xb0]
mov al, byte [rdx + 0x17]
sub al, 0x49
cmp al, r9b
ja 0x14009c452
cmp dword [rcx], r10d
jne 0x14009c496
mov rax, r10
test r8, r8
jle 0x14009c452
cmp dword [r13 + rax*8], r10d
jle 0x14009c496
add rax, r9
cmp rax, r8
jl 0x14009c443
mov rax, r12
jmp 0x14009c47e
mov r9d, 1
test byte [rdx + 0x14], r9b
je 0x14009c424
mov rcx, qword [rsp + 0xb0]
and dword [rdi + 0x50], 0xfffffffe
mov dword [rdi + 0x3c], r10d
mov dword [rcx], r9d
jmp 0x14009c42c
mov r9d, 1
add r11d, r9d
add r8, r9
add rbp, 0xc
cmp r8, rax
jge 0x14009c54c
jmp 0x14009c351
cmp dword [rdi + 0x38], r10d
je 0x14009c514
mov rbx, qword [rdi + 0x30]
test rbx, rbx
je 0x14009c50c
cmp dword [0x140144eb0], r10d
je 0x14009c4fa
mov rcx, qword [0x14014c468]
test rcx, rcx
je 0x14009c4c0
call qword [0x140144f30]
mov rcx, rbx
call qword [0x140144ee8]
dec qword [0x14014c268]
mov rcx, rbx
movsxd rdx, eax
sub qword [0x14014c220], rdx
call qword [0x140144ed8]
mov rcx, qword [0x14014c468]
xor r10d, r10d
test rcx, rcx
je 0x14009c506
call qword [0x140144f40]
jmp 0x14009c503
mov rcx, rbx
call qword [0x140144ed8]
xor r10d, r10d
mov r9d, 1
mov qword [rdi + 0x30], r10
mov dword [rdi + 0x38], r10d
mov rax, qword [rsp + 0xb8]
mov dword [rax], r9d
xor eax, eax
jmp 0x14009c67e
mov r8, qword [r14 + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov rcx, r15
mov r8, qword [r8]
call fcn.14002e178
mov eax, 1
jmp 0x14009c67e
mov r9d, 1
lea eax, [r9 + rsi]
mov ecx, r10d
mov word [rbx + 0x3c], ax
test esi, esi
js 0x14009c56f
mov rax, qword [rbx + 0x48]
cmp qword [rax], r10
je 0x14009c598
add ecx, r9d
add rax, 8
cmp ecx, esi
jle 0x14009c55f
mov eax, dword [rdi + 0x28]
mov dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x1c]
xor eax, dword [rdi + 0x38]
and eax, r9d
xor dword [rbx + 0x1c], eax
mov rax, qword [rdi + 0x30]
mov dword [rdi + 0x38], r10d
mov qword [rbx + 0x28], rax
cmp dword [rdi + 0x3c], r10d
je 0x14009c5b8
mov eax, dword [rdi + 0x10]
jmp 0x14009c5bb
mov r8, qword [r14 + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov rcx, r15
mov r8, qword [r8]
call fcn.14002e178
mov eax, 1
jmp 0x14009c67e
mov eax, r10d
mov byte [rbx + 0x20], al
mov word [rbx + 0x12], r10w
movsd xmm0, qword [rdi + 0x40]
call fcn.14002fd28
mov word [rbx + 0x14], ax
mov rcx, qword [rdi + 0x48]
call fcn.14002fcc8
mov edx, dword [rbx + 0x38]
mov word [rbx + 0x16], ax
mov eax, edx
bts edx, 0xc
btr eax, 0xc
test byte [rdi + 0x50], r9b
cmove edx, eax
mov dword [rbx + 0x38], edx
mov rdx, rbx
mov rcx, qword [rsp + 0x80]
call fcn.14009a594
mov r14d, 1
mov esi, eax
test byte [rbx + 0x1c], r14b
je 0x14009c67c
mov rdi, qword [rbx + 0x28]
xor ebp, ebp
test rdi, rdi
je 0x14009c678
cmp dword [0x140144eb0], ebp
je 0x14009c66f
mov rcx, qword [0x14014c468]
test rcx, rcx
je 0x14009c638
call qword [0x140144f30]
mov rcx, rdi
call qword [0x140144ee8]
sub qword [0x14014c268], r14
mov rcx, rdi
movsxd rdx, eax
sub qword [0x14014c220], rdx
call qword [0x140144ed8]
mov rcx, qword [0x14014c468]
test rcx, rcx
je 0x14009c678
call qword [0x140144f40]
jmp 0x14009c678
mov rcx, rdi
call qword [0x140144ed8]
and dword [rbx + 0x1c], 0xfffffffe
mov eax, esi
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret