Function at 0x1401d7df0
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 rsi, qword [rsp + 0xa0]
xor ebp, ebp
mov rbx, qword [rcx + 0x18]
mov r10, r8
mov rax, qword [rcx + 8]
mov rdi, qword [rcx]
movsxd r13, dword [rsi]
lea r15d, [rbp + 1]
mov r11, qword [rsi + 0x20]
mov qword [rsp + 0x20], rax
mov r12, qword [rdi]
movzx eax, byte [rbx + 0x10]
mov rdi, qword [rdi + 8]
imul r14, rax, 0x70
mov rax, qword [rsp + 0xb0]
mov qword [rbx], rdx
mov rdx, qword [rsi + 8]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x88], r11
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rdi
mov dword [rax], ebp
test r13d, r13d
jle 0x1401d7ec1
mov rsi, qword [rsp + 0x20]
add rdx, 5
mov r8d, r13d
nop dword [rax]
movsxd rax, dword [rdx + 3]
imul rdi, rax, 0x38
add rdi, qword [rsi + 0x20]
mov byte [rdx], bpl
mov rax, qword [rdi + 0x28]
and rax, r10
cmp rax, qword [rdi + 0x28]
jne 0x1401d7eab
test word [rdi + 0x14], r9w
movzx eax, bpl
cmove eax, r15d
mov byte [rdx], al
add rdx, 0xc
sub r8, r15
jne 0x1401d7e80
mov rsi, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x28]
lea r8, [r13*8]
xor edx, edx
mov rcx, r11
call fcn.1401ec560
mov qword [rsi + 0x30], rbp
movabs rax, 0x546d42aea2879f2e
mov qword [rsi + 0x40], rax
mov dword [rsi + 0x28], ebp
mov dword [rsi + 0x3c], ebp
mov qword [rsi + 0x48], 0x19
mov dword [rsi + 0x50], ebp
mov rax, qword [r14 + rdi + 0x60]
mov qword [rsi + 0x58], rax
mov rax, qword [r14 + rdi + 0x28]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x1401d7f1f
mov rax, qword [r12]
cmp qword [rcx], rax
je 0x1401d7f1f
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x1401d7f11
mov r14, qword [rcx + 0x10]
mov rdx, rsi
mov rcx, r14
mov rax, qword [r14]
call qword [rax + 0x18]
mov edi, eax
test eax, eax
je 0x1401d7f6c
cmp eax, 0x13
je 0x1401d7f6c
cmp eax, 7
jne 0x1401d7f4a
mov rcx, qword [r12]
call fcn.14014ee50
jmp 0x1401d7f6c
mov r8, qword [r14 + 0x10]
test r8, r8
jne 0x1401d7f5d
mov ecx, edi
call fcn.1401e8570
mov r8, rax
lea rdx, [0x140241a14]
mov rcx, r12
call fcn.140151b10
mov rcx, qword [r14 + 0x10]
call fcn.14014e560
mov qword [r14 + 0x10], rbp
test edi, edi
je 0x1401d7f8a
cmp edi, 0x13
cmove edi, ebp
mov eax, edi
jmp 0x1401d8361
mov r9d, 0xffffffff
mov r8d, ebp
test r13d, r13d
jle 0x1401d7ff2
cmp r13d, 2
jb 0x1401d7ff2
mov rdi, qword [rbx + 0x38]
lea rdx, [rbx + 0x38]
lea eax, [r13 - 1]
movsxd rcx, eax
lea rax, [rdi + rcx*8]
cmp rdi, rdx
ja 0x1401d7fbb
cmp rax, rdx
jae 0x1401d7ff2
mov eax, r13d
and eax, 0x80000001
jge 0x1401d7fcc
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, r13d
sub ecx, eax
add r8d, 2
cmp r8d, ecx
jl 0x1401d7fd1
lea eax, [rcx + 1]
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
shl rcx, 4
shr rcx, 3
xor eax, eax
rep stosq qword [rdi], rax
movsxd rcx, r8d
cmp rcx, r13
jge 0x1401d8010
nop word [rax + rax]
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], rbp
inc rcx
cmp rcx, r13
jl 0x1401d8000
mov word [rbx + 0x1e], bp
mov edi, ebp
mov r10, qword [rsi + 8]
test r13d, r13d
jle 0x1401d8113
movzx r12d, word [rsp + 0xa8]
mov rdx, rbp
mov rax, qword [rsp + 0x88]
add r10, 5
nop dword [rax + rax]
movsxd r8, dword [rax + rdx*8]
lea ecx, [r8 - 1]
test ecx, ecx
js 0x1401d80fc
cmp ecx, r13d
jge 0x1401d8158
movsxd rax, dword [r10 + 3]
test eax, eax
js 0x1401d8158
mov r11, qword [rsp + 0x20]
cmp eax, dword [r11 + 0x14]
jge 0x1401d8158
mov r14, qword [rbx + 0x38]
mov r11, r8
cmp qword [r14 + r8*8 - 8], rbp
jne 0x1401d8158
cmp byte [r10], bpl
je 0x1401d8158
imul r8, rax, 0x38
mov rax, qword [rsp + 0x20]
add r8, qword [rax + 0x20]
mov rax, qword [r8 + 0x28]
or qword [rbx], rax
mov eax, ecx
cmp ecx, r9d
mov qword [r14 + r11*8 - 8], r8
cmovle eax, r9d
mov r9d, eax
mov rax, qword [rsp + 0x88]
cmp byte [rax + rdx*8 + 4], bpl
je 0x1401d80e4
cmp edi, 0x10
jge 0x1401d80e4
movzx eax, r12w
bt eax, edi
jb 0x1401d80dc
movzx eax, word [rbx + 0x1e]
bts eax, ecx
mov word [rbx + 0x1e], ax
mov rax, qword [rsp + 0x88]
test byte [r8 + 0x14], r15b
je 0x1401d80fc
mov rcx, qword [rsp + 0xb0]
and dword [rsi + 0x50], 0xfffffffe
mov dword [rsi + 0x3c], ebp
mov dword [rcx], r15d
inc edi
inc rdx
add r10, 0xc
cmp rdx, r13
jl 0x1401d8040
mov r12, qword [rsp + 0x30]
lea eax, [r9 + 1]
mov ecx, ebp
mov word [rbx + 0x2c], ax
test r9d, r9d
js 0x1401d8136
mov rax, qword [rbx + 0x38]
cmp qword [rax], rbp
je 0x1401d8183
inc ecx
add rax, 8
cmp ecx, r9d
jle 0x1401d8126
mov eax, dword [rsi + 0x28]
mov dword [rbx + 0x18], eax
movzx eax, byte [rsi + 0x38]
mov byte [rbx + 0x1c], al
mov rax, qword [rsi + 0x30]
mov dword [rsi + 0x38], ebp
mov qword [rbx + 0x20], rax
cmp dword [rsi + 0x3c], ebp
je 0x1401d81ac
mov eax, dword [rsi + 0x10]
jmp 0x1401d81ae
mov rcx, qword [rsp + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov r8, qword [rsp + 0x38]
mov r8, qword [r8 + rcx + 0x28]
mov rcx, qword [rsp + 0x30]
mov r8, qword [r8]
call fcn.140151b10
mov eax, r15d
jmp 0x1401d8361
mov rcx, qword [rsp + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov r8, qword [rsp + 0x38]
mov r8, qword [r8 + rcx + 0x28]
mov rcx, r12
mov r8, qword [r8]
call fcn.140151b10
mov eax, r15d
jmp 0x1401d8361
mov eax, ebp
movsd xmm0, qword [0x140247360]
mov byte [rbx + 0x1d], al
mov word [rbx + 0x12], bp
movsd xmm1, qword [rsi + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x1401d81d6
movzx ecx, bp
jmp 0x1401d823e
movsd xmm0, qword [0x1402473e8]
comisd xmm0, xmm1
jb 0x1401d821d
movsd xmm0, qword [0x140247410]
xor eax, eax
comisd xmm1, xmm0
jb 0x1401d820b
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1401d820b
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm1
add rcx, rax
call fcn.140152d30
movzx ecx, ax
jmp 0x1401d823e
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 [rsi + 0x48]
cmp rax, 8
jae 0x1401d826f
cmp rax, 2
jb 0x1401d82c2
nop word [rax + rax]
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1401d8260
jmp 0x1401d82ad
cmp rax, 0xff
jbe 0x1401d8290
nop word [rax + rax]
add cx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x1401d8280
cmp rax, 0xf
jbe 0x1401d82ad
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x1401d82a0
and eax, 7
lea rdx, [0x140214488]
movzx ebp, word [rdx + rax*2]
sub bp, 0xa
add bp, cx
mov edx, dword [rbx + 0x28]
mov eax, edx
bts edx, 0xc
mov word [rbx + 0x16], bp
mov ecx, dword [rsi + 0x50]
btr eax, 0xc
and cl, r15b
mov rcx, qword [rsp + 0x80]
cmove edx, eax
mov dword [rbx + 0x28], edx
mov rdx, rbx
call fcn.1401d6700
cmp byte [rbx + 0x1c], 0
mov esi, eax
je 0x1401d835f
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x1401d835b
cmp dword [0x1402b04d0], 0
je 0x1401d8352
mov rcx, qword [0x1406dd888]
test rcx, rcx
je 0x1401d831b
call qword [0x1402b0550]
mov rcx, rdi
call qword [0x1402b0508]
dec qword [0x1406dd608]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1406dd5c0], rdx
call qword [0x1402b04f8]
mov rcx, qword [0x1406dd888]
test rcx, rcx
je 0x1401d835b
call qword [0x1402b0560]
jmp 0x1401d835b
mov rcx, rdi
call qword [0x1402b04f8]
mov byte [rbx + 0x1c], 0
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