Function at 0x1402e2be0
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 r14d, r14d
mov r10, qword [rcx]
mov rsi, r8
mov rbx, qword [rcx + 0x10]
movzx r11d, r9w
mov r13, qword [rcx + 8]
mov rax, qword [rdi + 0x20]
movsxd r15, dword [rdi]
mov rbp, qword [r10]
mov qword [rsp + 0x88], rax
movzx eax, byte [rbx + 0x10]
imul rax, rax, 0x68
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x20], rax
mov rax, qword [r10 + 8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xb0]
mov dword [rsp + 0xa0], r15d
mov dword [rax], r14d
mov qword [rbx], rdx
mov r8, qword [rdi + 8]
test r15d, r15d
jle 0x1402e2cb1
mov r10, qword [rsp + 0xb8]
add r8, 5
mov r9d, r15d
movsxd rax, dword [r8 + 3]
imul rdx, rax, 0x38
add rdx, qword [r13 + 0x20]
mov byte [r8], r14b
mov rax, qword [rdx + 0x28]
and rax, rsi
cmp rax, qword [rdx + 0x28]
jne 0x1402e2ca7
test word [rdx + 0x14], r11w
jne 0x1402e2ca7
test r10, r10
jne 0x1402e2ca3
movzx eax, byte [rdx + 0x17]
sub al, 0x49
cmp al, 1
jbe 0x1402e2ca7
mov byte [r8], 1
add r8, 0xc
sub r9, 1
jne 0x1402e2c71
mov rcx, qword [rsp + 0x88]
lea r12, [r15*8]
mov r8, r12
xor edx, edx
call fcn.1402f5120
mov rcx, qword [rsp + 0x20]
movabs rax, 0x546d42aea2879f2e
mov rdx, qword [rsp + 0x28]
mov qword [rdi + 0x30], r14
mov dword [rdi + 0x28], r14d
mov dword [rdi + 0x3c], r14d
mov qword [rdi + 0x40], rax
mov qword [rdi + 0x48], 0x19
mov dword [rdi + 0x50], r14d
mov rax, qword [rcx + rdx + 0x58]
mov qword [rdi + 0x58], rax
mov dword [rdi + 0x78], r14d
mov rax, qword [rcx + rdx + 0x28]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x1402e2d2e
mov rax, qword [rbp]
nop word [rax + rax]
cmp qword [rcx], rax
je 0x1402e2d2e
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x1402e2d20
mov r15, qword [rcx + 0x10]
mov rdx, rdi
mov rax, qword [rbp]
mov rcx, r15
inc dword [rax + 0x48]
mov rax, qword [r15]
call qword [rax + 0x18]
mov rcx, qword [rbp]
lea rdx, [0x140000000]
mov esi, eax
dec dword [rcx + 0x48]
test eax, eax
je 0x1402e2dd5
cmp esi, 0x13
je 0x1402e2dd5
cmp esi, 7
jne 0x1402e2d6e
mov rcx, qword [rbp]
call fcn.14029e340
jmp 0x1402e2dd5
mov r8, qword [r15 + 0x10]
test r8, r8
jne 0x1402e2dc6
mov ecx, esi
lea r8, str.unknown_error
sub ecx, 0x64
je 0x1402e2dbf
sub ecx, 1
je 0x1402e2db6
cmp ecx, 0x19f
je 0x1402e2dad
movzx eax, sil
cmp eax, 0x1d
jae 0x1402e2dc6
mov rcx, qword [rdx + rax*8 + 0x3d7c00]
test rcx, rcx
je 0x1402e2dc6
mov r8, rcx
jmp 0x1402e2dc6
lea r8, str.abort_due_to_ROLLBACK
jmp 0x1402e2dc6
lea r8, str.no_more_rows_available
jmp 0x1402e2dc6
lea r8, str.another_row_available
lea rdx, [0x14035a7b4]
mov rcx, rbp
call fcn.140283150
mov rbp, qword [r15 + 0x10]
test rbp, rbp
je 0x1402e2e39
cmp dword [0x14042c570], r14d
je 0x1402e2e30
mov rcx, qword [0x140433850]
test rcx, rcx
je 0x1402e2df9
call qword [0x14042c5f0]
mov rcx, rbp
call qword [0x14042c5a8]
dec qword [0x1404337e8]
mov rcx, rbp
movsxd rdx, eax
sub qword [0x1404337a0], rdx
call qword [0x14042c598]
mov rcx, qword [0x140433850]
test rcx, rcx
je 0x1402e2e39
call qword [0x14042c600]
jmp 0x1402e2e39
mov rcx, rbp
call qword [0x14042c598]
mov qword [r15 + 0x10], r14
test esi, esi
je 0x1402e2e4d
cmp esi, 0x13
cmove esi, r14d
jmp 0x1402e3281
mov rcx, qword [rbx + 0x48]
mov r8, r12
xor edx, edx
mov esi, 0xffffffff
call fcn.1402f5120
movsxd rdx, dword [rsp + 0xa0]
xorps xmm0, xmm0
mov r10d, r14d
mov r12, rdx
movups xmmword [rbx + 0x18], xmm0
movups xmmword [rbx + 0x28], xmm0
mov rax, qword [rdi + 8]
test edx, edx
jle 0x1402e2f9e
movzx r15d, word [rsp + 0xa8]
lea rbp, [rax + 5]
mov rax, qword [rsp + 0x88]
mov r11, r14
nop dword [rax]
movsxd rcx, dword [rax + r11*8]
lea r8d, [rcx - 1]
test r8d, r8d
js 0x1402e2f8b
cmp r8d, edx
jge 0x1402e309f
movsxd rax, dword [rbp + 3]
test eax, eax
js 0x1402e309f
cmp eax, dword [r13 + 0x14]
jge 0x1402e309f
mov r9, rcx
mov rcx, qword [rbx + 0x48]
cmp qword [rcx + r9*8 - 8], r14
jne 0x1402e309f
cmp byte [rbp], r14b
je 0x1402e309f
imul rdx, rax, 0x38
add rdx, qword [r13 + 0x20]
mov rax, qword [rdx + 0x28]
or qword [rbx], rax
mov eax, r8d
cmp r8d, esi
mov qword [rcx + r9*8 - 8], rdx
cmovle eax, esi
mov esi, eax
mov rax, qword [rsp + 0x88]
cmp byte [rax + r11*8 + 4], r14b
je 0x1402e2f3c
cmp r10d, 0x10
jge 0x1402e2f32
bt r15d, r10d
jb 0x1402e2f32
movzx eax, word [rbx + 0x22]
bts eax, r8d
mov word [rbx + 0x22], ax
cmp byte [rdx + 0x17], 0x4a
jne 0x1402e2f3c
or dword [rbx + 0x1c], 2
mov ecx, r10d
mov eax, 1
shl eax, cl
cmp r10d, 0x1f
cmovg eax, r14d
test dword [rdi + 0x78], eax
je 0x1402e2ff3
mov eax, dword [rbx + 0x30]
bts eax, r8d
mov dword [rbx + 0x30], eax
mov rcx, qword [rsp + 0xb0]
movzx eax, byte [rdx + 0x17]
sub al, 0x49
cmp al, 1
ja 0x1402e2f7c
cmp dword [rcx], r14d
jne 0x1402e3018
mov rax, qword [rsp + 0x88]
mov edx, dword [rsp + 0xa0]
inc r10d
inc r11
add rbp, 0xc
cmp r11, r12
jl 0x1402e2ea0
lea eax, [rsi + 1]
mov ecx, r14d
mov word [rbx + 0x3c], ax
test esi, esi
js 0x1402e2fc3
mov rax, qword [rbx + 0x48]
cmp qword [rax], r14
je 0x1402e309f
inc ecx
add rax, 8
cmp ecx, esi
jle 0x1402e2fb0
mov eax, dword [rdi + 0x28]
mov dword [rbx + 0x18], eax
mov eax, dword [rdi + 0x38]
xor eax, dword [rbx + 0x1c]
and eax, 1
xor dword [rbx + 0x1c], eax
mov rax, qword [rdi + 0x30]
mov dword [rdi + 0x38], r14d
mov qword [rbx + 0x28], rax
cmp dword [rdi + 0x3c], r14d
je 0x1402e30cc
mov eax, dword [rdi + 0x10]
jmp 0x1402e30cf
test byte [rdx + 0x14], 1
je 0x1402e2f61
mov rcx, qword [rsp + 0xb0]
and dword [rdi + 0x50], 0xfffffffe
mov dword [rdi + 0x3c], r14d
mov dword [rcx], 1
jmp 0x1402e2f69
cmp dword [rdi + 0x38], r14d
je 0x1402e308a
mov rbx, qword [rdi + 0x30]
test rbx, rbx
je 0x1402e3082
cmp dword [0x14042c570], r14d
je 0x1402e3079
mov rcx, qword [0x140433850]
test rcx, rcx
je 0x1402e3042
call qword [0x14042c5f0]
mov rcx, rbx
call qword [0x14042c5a8]
dec qword [0x1404337e8]
mov rcx, rbx
movsxd rdx, eax
sub qword [0x1404337a0], rdx
call qword [0x14042c598]
mov rcx, qword [0x140433850]
test rcx, rcx
je 0x1402e3082
call qword [0x14042c600]
jmp 0x1402e3082
mov rcx, rbx
call qword [0x14042c598]
mov qword [rdi + 0x30], r14
mov dword [rdi + 0x38], r14d
mov rax, qword [rsp + 0xb8]
mov dword [rax], 1
xor eax, eax
jmp 0x1402e3283
mov rcx, qword [rsp + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov r8, qword [rsp + 0x20]
mov r8, qword [r8 + rcx + 0x28]
mov rcx, qword [rsp + 0x30]
mov r8, qword [r8]
call fcn.140283150
mov eax, 1
jmp 0x1402e3283
mov eax, r14d
movsd xmm0, qword [0x14035c6f0]
mov byte [rbx + 0x20], al
mov word [rbx + 0x12], r14w
movsd xmm1, qword [rdi + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xb0], xmm1
jb 0x1402e30f9
movzx ecx, r14w
jmp 0x1402e3161
movsd xmm0, qword [0x1403e6e98]
comisd xmm0, xmm1
jb 0x1402e3140
movsd xmm0, qword [0x14035aaf0]
xor eax, eax
comisd xmm1, xmm0
jb 0x1402e312e
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1402e312e
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm1
add rcx, rax
call fcn.14029d440
movzx ecx, ax
jmp 0x1402e3161
mov rcx, qword [rsp + 0xb0]
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 0x1402e318f
cmp rax, 2
jb 0x1402e31e3
nop word [rax + rax]
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1402e3180
jmp 0x1402e31cd
cmp rax, 0xff
jbe 0x1402e31b0
nop word [rax + rax]
add cx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x1402e31a0
cmp rax, 0xf
jbe 0x1402e31cd
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x1402e31c0
and eax, 7
lea rdx, [0x140000000]
add cx, word [rdx + rax*2 + 0x42cc90]
lea r14d, [rcx - 0xa]
mov edx, dword [rbx + 0x38]
mov eax, edx
bts edx, 0xc
mov word [rbx + 0x16], r14w
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.1402e34f0
test byte [rbx + 0x1c], 1
mov esi, eax
je 0x1402e3281
mov rdi, qword [rbx + 0x28]
test rdi, rdi
je 0x1402e327d
cmp dword [0x14042c570], 0
je 0x1402e3274
mov rcx, qword [0x140433850]
test rcx, rcx
je 0x1402e323d
call qword [0x14042c5f0]
mov rcx, rdi
call qword [0x14042c5a8]
dec qword [0x1404337e8]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1404337a0], rdx
call qword [0x14042c598]
mov rcx, qword [0x140433850]
test rcx, rcx
je 0x1402e327d
call qword [0x14042c600]
jmp 0x1402e327d
mov rcx, rdi
call qword [0x14042c598]
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