Function at 0x140198980
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 ebp, ebp
mov rsi, qword [rsp + 0xa0]
mov rdi, r8
mov rbx, qword [rcx + 0x18]
movzx r11d, r9w
mov rax, qword [rcx + 8]
mov r14, qword [r10]
movsxd r13, dword [rsi]
mov r15, qword [rsi + 0x20]
mov qword [rsp + 0x20], rax
movzx eax, byte [rbx + 0x10]
imul rax, rax, 0x70
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x28], rax
mov rax, qword [r10 + 8]
lea r10d, [rbp + 1]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xb0]
mov qword [rbx], rdx
mov r8, qword [rsi + 8]
mov qword [rsp + 0x38], r14
mov dword [rax], ebp
test r13d, r13d
jle 0x140198a4d
mov rsi, qword [rsp + 0x20]
add r8, 5
mov r9d, r13d
nop dword [rax]
movsxd rdx, dword [r8 + 3]
shl rdx, 6
add rdx, qword [rsi + 0x20]
mov byte [r8], bpl
mov rax, qword [rdx + 0x30]
and rax, rdi
cmp rax, qword [rdx + 0x30]
jne 0x140198a3c
test word [rdx + 0x14], r11w
movzx eax, bpl
cmove eax, r10d
mov byte [r8], al
add r8, 0xc
sub r9, r10
jne 0x140198a10
mov rsi, qword [rsp + 0xa0]
lea r8, [r13*8]
xor edx, edx
mov rcx, r15
call fcn.1401b2ee0
mov rcx, qword [rsp + 0x28]
movabs rax, 0x546d42aea2879f2e
mov rdx, qword [rsp + 0x30]
mov qword [rsi + 0x30], rbp
mov dword [rsi + 0x28], ebp
mov dword [rsi + 0x3c], ebp
mov qword [rsi + 0x40], rax
mov qword [rsi + 0x48], 0x19
mov dword [rsi + 0x50], ebp
mov rax, qword [rcx + rdx + 0x60]
mov qword [rsi + 0x58], rax
mov rax, qword [rcx + rdx + 0x28]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x140198ab4
mov rax, qword [r14]
cmp qword [rcx], rax
je 0x140198ab4
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x140198aa6
mov r15, qword [rcx + 0x10]
mov rdx, rsi
mov rcx, r15
mov rax, qword [r15]
call qword [rax + 0x18]
mov edi, eax
lea rdx, [0x140000000]
test eax, eax
je 0x140198b99
cmp edi, 0x13
je 0x140198b99
cmp edi, 7
jne 0x140198b32
mov rax, qword [r14]
cmp byte [rax + 0x61], bpl
jne 0x140198b99
cmp byte [rax + 0x62], bpl
jne 0x140198b99
mov byte [rax + 0x61], 1
cmp dword [rax + 0xd4], ebp
jle 0x140198b10
mov dword [rax + 0x170], 1
inc dword [rax + 0x178]
mov rcx, qword [rax + 0x138]
mov word [rax + 0x17c], bp
test rcx, rcx
je 0x140198b99
mov dword [rcx + 0x18], 7
jmp 0x140198b99
mov r8, qword [r15 + 0x10]
test r8, r8
jne 0x140198b8a
mov ecx, edi
lea r8, [0x140209080]
sub ecx, 0x64
je 0x140198b83
sub ecx, 1
je 0x140198b7a
cmp ecx, 0x19f
je 0x140198b71
movzx eax, dil
cmp eax, 0x1d
jae 0x140198b8a
mov rcx, qword [rdx + rax*8 + 0x1f03a0]
test rcx, rcx
je 0x140198b8a
mov r8, rcx
jmp 0x140198b8a
lea r8, str.abort_due_to_ROLLBACK
jmp 0x140198b8a
lea r8, str.no_more_rows_available
jmp 0x140198b8a
lea r8, str.another_row_available
lea rdx, [0x140203d4c]
mov rcx, r14
call fcn.140100f00
mov r14, qword [r15 + 0x10]
test r14, r14
je 0x140198bfc
cmp dword [0x14024ed50], ebp
je 0x140198bf3
mov rcx, qword [0x14025a3f8]
test rcx, rcx
je 0x140198bbc
call qword [0x14024edd0]
mov rcx, r14
call qword [0x14024ed88]
dec qword [0x14025a188]
mov rcx, r14
movsxd rdx, eax
sub qword [0x14025a140], rdx
call qword [0x14024ed78]
mov rcx, qword [0x14025a3f8]
test rcx, rcx
je 0x140198bfc
call qword [0x14024ede0]
jmp 0x140198bfc
mov rcx, r14
call qword [0x14024ed78]
mov qword [r15 + 0x10], rbp
test edi, edi
je 0x140198c11
cmp edi, 0x13
cmove edi, ebp
mov eax, edi
jmp 0x140198fd1
mov r14d, 0xffffffff
mov edi, ebp
test r13d, r13d
jle 0x140198c7b
cmp r13d, 2
jb 0x140198c7b
mov r9, qword [rbx + 0x38]
lea rdx, [rbx + 0x38]
lea eax, [r13 - 1]
movsxd rcx, eax
lea rax, [r9 + rcx*8]
cmp r9, rdx
ja 0x140198c41
cmp rax, rdx
jae 0x140198c7b
mov eax, r13d
and eax, 0x80000001
jge 0x140198c52
dec eax
or eax, 0xfffffffe
inc eax
mov edx, r13d
sub edx, eax
add edi, 2
cmp edi, edx
jl 0x140198c57
lea eax, [rdx + 1]
mov rcx, r9
cdq
sub eax, edx
xor edx, edx
sar eax, 1
movsxd r8, eax
shl r8, 4
and r8, 0xfffffffffffffff8
call fcn.1401b2ee0
movsxd rcx, edi
cmp rcx, r13
jge 0x140198ca0
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], rbp
inc rcx
cmp rcx, r13
jl 0x140198c90
mov word [rbx + 0x1e], bp
mov r9d, ebp
mov r10, qword [rsi + 8]
test r13d, r13d
jle 0x140198da6
movzx r15d, word [rsp + 0xa8]
mov rdx, rbp
mov rax, qword [rsp + 0x88]
add r10, 5
nop dword [rax]
movsxd r8, dword [rax + rdx*8]
lea ecx, [r8 - 1]
test ecx, ecx
js 0x140198d93
cmp ecx, r13d
jge 0x140198df2
movsxd rax, dword [r10 + 3]
test eax, eax
js 0x140198df2
mov r11, qword [rsp + 0x20]
cmp eax, dword [r11 + 0x14]
jge 0x140198df2
mov rdi, qword [rbx + 0x38]
mov r11, r8
cmp qword [rdi + r8*8 - 8], rbp
jne 0x140198df2
cmp byte [r10], bpl
je 0x140198df2
mov r8, rax
mov rax, qword [rsp + 0x20]
shl r8, 6
add r8, qword [rax + 0x20]
mov rax, qword [r8 + 0x30]
or qword [rbx], rax
mov eax, ecx
cmp ecx, r14d
mov qword [rdi + r11*8 - 8], r8
cmovle eax, r14d
mov r14d, eax
mov rax, qword [rsp + 0x88]
cmp byte [rax + rdx*8 + 4], bpl
je 0x140198d77
cmp r9d, 0x10
jge 0x140198d77
bt r15d, r9d
jb 0x140198d77
movzx eax, word [rbx + 0x1e]
bts eax, ecx
mov word [rbx + 0x1e], ax
mov rax, qword [rsp + 0x88]
jmp 0x140198d77
test byte [r8 + 0x14], 1
je 0x140198d93
mov rcx, qword [rsp + 0xb0]
and dword [rsi + 0x50], 0xfffffffe
mov dword [rsi + 0x3c], ebp
mov dword [rcx], 1
inc r9d
inc rdx
add r10, 0xc
cmp rdx, r13
jl 0x140198cd0
lea eax, [r14 + 1]
mov ecx, ebp
mov word [rbx + 0x2c], ax
test r14d, r14d
js 0x140198dd0
mov rax, qword [rbx + 0x38]
nop dword [rax]
cmp qword [rax], rbp
je 0x140198df2
inc ecx
add rax, 8
cmp ecx, r14d
jle 0x140198dc0
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 0x140198e1f
mov eax, dword [rsi + 0x10]
jmp 0x140198e21
mov rcx, qword [rsp + 0x30]
lea rdx, str._s.xBestIndex_malfunction
mov r8, qword [rsp + 0x28]
mov r8, qword [r8 + rcx + 0x28]
mov rcx, qword [rsp + 0x38]
mov r8, qword [r8]
call fcn.140100f00
mov eax, 1
jmp 0x140198fd1
mov eax, ebp
movsd xmm0, qword [0x1402092d8]
mov byte [rbx + 0x1d], al
mov word [rbx + 0x12], bp
movsd xmm1, qword [rsi + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x140198e49
movzx ecx, bp
jmp 0x140198eb1
movsd xmm0, qword [0x1402093a0]
comisd xmm0, xmm1
jb 0x140198e90
movsd xmm0, qword [0x1402093c8]
xor eax, eax
comisd xmm1, xmm0
jb 0x140198e7e
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x140198e7e
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm1
add rcx, rax
call fcn.140102300
movzx ecx, ax
jmp 0x140198eb1
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 0x140198edf
cmp rax, 2
jb 0x140198f32
nop word [rax + rax]
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x140198ed0
jmp 0x140198f1d
cmp rax, 0xff
jbe 0x140198f00
nop word [rax + rax]
add cx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x140198ef0
cmp rax, 0xf
jbe 0x140198f1d
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x140198f10
and eax, 7
lea rdx, [0x140000000]
add cx, word [rdx + rax*2 + 0x1f2728]
lea ebp, [rcx - 0xa]
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, 1
mov rcx, qword [rsp + 0x80]
cmove edx, eax
mov dword [rbx + 0x28], edx
mov rdx, rbx
call fcn.140197260
cmp byte [rbx + 0x1c], 0
mov esi, eax
je 0x140198fcf
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x140198fcb
cmp dword [0x14024ed50], 0
je 0x140198fc2
mov rcx, qword [0x14025a3f8]
test rcx, rcx
je 0x140198f8b
call qword [0x14024edd0]
mov rcx, rdi
call qword [0x14024ed88]
dec qword [0x14025a188]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x14025a140], rdx
call qword [0x14024ed78]
mov rcx, qword [0x14025a3f8]
test rcx, rcx
je 0x140198fcb
call qword [0x14024ede0]
jmp 0x140198fcb
mov rcx, rdi
call qword [0x14024ed78]
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