Function at 0x140255990
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 rbp, r8
mov rbx, qword [rcx + 0x10]
movzx r11d, r9w
mov r15, qword [rcx + 8]
mov r12, qword [rsp + 0xb0]
mov rax, qword [rdi + 0x20]
movsxd r14, dword [rdi]
mov qword [rsp + 0x88], rax
mov rax, qword [r10]
mov qword [rsp + 0x30], rax
movzx eax, byte [rbx + 0x10]
imul rax, rax, 0x68
mov qword [rsp + 0x20], rax
mov rax, qword [r10 + 8]
mov dword [r12], esi
mov qword [rbx], rdx
mov r8, qword [rdi + 8]
mov qword [rsp + 0x28], rax
test r14d, r14d
jle 0x140255a60
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 0x140255a56
test word [rdx + 0x14], r11w
jne 0x140255a56
test r10, r10
jne 0x140255a52
movzx eax, byte [rdx + 0x17]
sub al, 0x49
cmp al, 1
jbe 0x140255a56
mov byte [r8], 1
add r8, 0xc
sub r9, 1
jne 0x140255a20
mov rcx, qword [rsp + 0x88]
lea rbp, [r14*8]
mov r8, rbp
xor edx, edx
mov r13, r14
call fcn.140264a90
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], 0x19
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.14024fb10
test eax, eax
je 0x140255ad7
cmp eax, 0x13
cmove eax, esi
jmp 0x140255ecd
mov rcx, qword [rbx + 0x48]
mov r8, rbp
xor edx, edx
mov r14d, 0xffffffff
call fcn.140264a90
xorps xmm0, xmm0
mov r10d, esi
movups xmmword [rbx + 0x18], xmm0
movups xmmword [rbx + 0x28], xmm0
mov rax, qword [rdi + 8]
test r13, r13
jle 0x140255c21
lea rbp, [rax + 5]
mov r11, rsi
mov rax, qword [rsp + 0x88]
movsxd rcx, dword [rax + r11*8]
lea r8d, [rcx - 1]
test r8d, r8d
js 0x140255c0e
cmp r8d, r13d
jge 0x140255cfa
movsxd rax, dword [rbp + 3]
test eax, eax
js 0x140255cfa
cmp eax, dword [r15 + 0x14]
jge 0x140255cfa
mov r9, rcx
mov rcx, qword [rbx + 0x48]
cmp qword [rcx + r9*8 - 8], rsi
jne 0x140255cfa
cmp byte [rbp], sil
je 0x140255cfa
imul rdx, rax, 0x38
add rdx, qword [r15 + 0x20]
mov rax, qword [rdx + 0x28]
or qword [rbx], rax
mov eax, r8d
cmp r8d, r14d
mov qword [rcx + r9*8 - 8], rdx
cmovle eax, r14d
mov r14d, eax
mov rax, qword [rsp + 0x88]
cmp byte [rax + r11*8 + 4], sil
je 0x140255bbb
cmp r10d, 0x10
jge 0x140255bb1
movzx eax, word [rsp + 0xa8]
bt eax, r10d
jb 0x140255bb1
movzx eax, word [rbx + 0x22]
bts eax, r8d
mov word [rbx + 0x22], ax
cmp byte [rdx + 0x17], 0x4a
jne 0x140255bbb
or dword [rbx + 0x1c], 2
mov ecx, r10d
mov eax, 1
shl eax, cl
cmp r10d, 0x1f
cmovg eax, esi
test dword [rdi + 0x78], eax
je 0x140255bdd
mov eax, dword [rbx + 0x30]
bts eax, r8d
mov dword [rbx + 0x30], eax
jmp 0x140255bf2
test byte [rdx + 0x14], 1
je 0x140255bf2
and dword [rdi + 0x50], 0xfffffffe
mov dword [rdi + 0x3c], esi
mov dword [r12], 1
movzx eax, byte [rdx + 0x17]
sub al, 0x49
cmp al, 1
ja 0x140255c06
cmp dword [r12], esi
jne 0x140255c76
mov rax, qword [rsp + 0x88]
inc r10d
inc r11
add rbp, 0xc
cmp r11, r13
jl 0x140255b15
lea eax, [r14 + 1]
mov ecx, esi
mov word [rbx + 0x3c], ax
test r14d, r14d
js 0x140255c48
mov rax, qword [rbx + 0x48]
cmp qword [rax], rsi
je 0x140255cfa
inc ecx
add rax, 8
cmp ecx, r14d
jle 0x140255c34
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 0x140255d27
mov eax, dword [rdi + 0x10]
jmp 0x140255d29
cmp dword [rdi + 0x38], esi
je 0x140255ce5
mov rbx, qword [rdi + 0x30]
test rbx, rbx
je 0x140255cde
cmp dword [0x1403182c0], esi
je 0x140255cd5
mov rcx, qword [0x14031baa0]
test rcx, rcx
je 0x140255c9e
call qword [0x140318340]
mov rcx, rbx
call qword [0x1403182f8]
dec qword [0x14031ba38]
mov rcx, rbx
movsxd rdx, eax
sub qword [0x14031b9f0], rdx
call qword [0x1403182e8]
mov rcx, qword [0x14031baa0]
test rcx, rcx
je 0x140255cde
call qword [0x140318350]
jmp 0x140255cde
mov rcx, rbx
call qword [0x1403182e8]
mov qword [rdi + 0x30], rsi
mov dword [rdi + 0x38], esi
mov rax, qword [rsp + 0xb8]
mov dword [rax], 1
xor eax, eax
jmp 0x140255ecd
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.1401fcaf0
mov eax, 1
jmp 0x140255ecd
mov eax, esi
movsd xmm0, qword [0x140299548]
mov byte [rbx + 0x20], al
mov word [rbx + 0x12], si
movsd xmm1, qword [rdi + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x140255d51
movzx ecx, si
jmp 0x140255db9
movsd xmm0, qword [0x1402995d0]
comisd xmm0, xmm1
jb 0x140255d98
movsd xmm0, qword [0x140299608]
xor eax, eax
comisd xmm1, xmm0
jb 0x140255d86
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x140255d86
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm1
add rcx, rax
call fcn.140210260
movzx ecx, ax
jmp 0x140255db9
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 0x140255de1
cmp rax, 2
jb 0x140255e2e
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x140255dd2
jmp 0x140255e1d
cmp rax, 0xff
jbe 0x140255e00
nop dword [rax]
add cx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x140255df0
cmp rax, 0xf
jbe 0x140255e1d
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x140255e10
and eax, 7
lea rdx, [0x1403189e0]
add cx, word [rdx + rax*2]
lea esi, [rcx - 0xa]
mov edx, dword [rbx + 0x38]
mov eax, edx
bts edx, 0xc
mov word [rbx + 0x16], si
mov ecx, dword [rdi + 0x50]
btr eax, 0xc
and cl, 1
mov rcx, qword [rsp + 0x80]
cmove edx, eax
mov dword [rbx + 0x38], edx
mov rdx, rbx
call fcn.140256140
test byte [rbx + 0x1c], 1
mov esi, eax
je 0x140255ecb
mov rdi, qword [rbx + 0x28]
test rdi, rdi
je 0x140255ec7
cmp dword [0x1403182c0], 0
je 0x140255ebe
mov rcx, qword [0x14031baa0]
test rcx, rcx
je 0x140255e87
call qword [0x140318340]
mov rcx, rdi
call qword [0x1403182f8]
dec qword [0x14031ba38]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x14031b9f0], rdx
call qword [0x1403182e8]
mov rcx, qword [0x14031baa0]
test rcx, rcx
je 0x140255ec7
call qword [0x140318350]
jmp 0x140255ec7
mov rcx, rdi
call qword [0x1403182e8]
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