Function at 0x1800b1c90
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 r14, qword [rsp + 0xa0]
movzx r11d, r9w
mov rbx, qword [rcx + 0x18]
mov rdi, r8
mov rax, qword [rcx + 8]
mov rbp, qword [r10]
movsxd r13, dword [r14]
mov r15, qword [r14 + 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, [rsi + 1]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xb0]
mov qword [rbx], rdx
mov rdx, qword [r14 + 8]
mov qword [rsp + 0x38], rbp
mov dword [rax], esi
test r13d, r13d
jle 0x1800b1d5c
mov r14, qword [rsp + 0x20]
add rdx, 5
mov r9d, r13d
nop dword [rax]
movsxd rax, dword [rdx + 3]
imul r8, rax, 0x38
add r8, qword [r14 + 0x20]
mov byte [rdx], sil
mov rax, qword [r8 + 0x28]
and rax, rdi
cmp rax, qword [r8 + 0x28]
jne 0x1800b1d4b
test word [r8 + 0x14], r11w
movzx eax, sil
cmove eax, r10d
mov byte [rdx], al
add rdx, 0xc
sub r9, r10
jne 0x1800b1d20
mov r14, qword [rsp + 0xa0]
lea r8, [r13*8]
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x28]
movabs rax, 0x546d42aea2879f2e
mov rdx, qword [rsp + 0x30]
mov qword [r14 + 0x30], rsi
mov dword [r14 + 0x28], esi
mov dword [r14 + 0x3c], esi
mov qword [r14 + 0x40], rax
mov qword [r14 + 0x48], 0x19
mov dword [r14 + 0x50], esi
mov rax, qword [rcx + rdx + 0x60]
mov qword [r14 + 0x58], rax
mov rax, qword [rcx + rdx + 0x28]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x1800b1dce
mov rax, qword [rbp]
nop dword [rax]
cmp qword [rcx], rax
je 0x1800b1dce
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x1800b1dc0
mov r15, qword [rcx + 0x10]
mov rdx, r14
mov rcx, r15
mov rax, qword [r15]
call qword [rax + 0x18]
mov edi, eax
lea rdx, [0x180000000]
test eax, eax
je 0x1800b1eb4
cmp edi, 0x13
je 0x1800b1eb4
cmp edi, 7
jne 0x1800b1e4d
mov rax, qword [rbp]
cmp byte [rax + 0x61], sil
jne 0x1800b1eb4
cmp byte [rax + 0x62], sil
jne 0x1800b1eb4
mov byte [rax + 0x61], 1
cmp dword [rax + 0xd4], esi
jle 0x1800b1e2b
mov dword [rax + 0x170], 1
inc dword [rax + 0x178]
mov rcx, qword [rax + 0x138]
mov word [rax + 0x17c], si
test rcx, rcx
je 0x1800b1eb4
mov dword [rcx + 0x18], 7
jmp 0x1800b1eb4
mov r8, qword [r15 + 0x10]
test r8, r8
jne 0x1800b1ea5
mov ecx, edi
lea r8, str.unknown_error
sub ecx, 0x64
je 0x1800b1e9e
sub ecx, 1
je 0x1800b1e95
cmp ecx, 0x19f
je 0x1800b1e8c
movzx eax, dil
cmp eax, 0x1d
jae 0x1800b1ea5
mov rcx, qword [rdx + rax*8 + 0x131a90]
test rcx, rcx
je 0x1800b1ea5
mov r8, rcx
jmp 0x1800b1ea5
lea r8, str.abort_due_to_ROLLBACK
jmp 0x1800b1ea5
lea r8, str.no_more_rows_available
jmp 0x1800b1ea5
lea r8, str.another_row_available
lea rdx, [0x180138810]
mov rcx, rbp
call fcn.18000a300
mov rbp, qword [r15 + 0x10]
test rbp, rbp
je 0x1800b1f17
cmp dword [0x18015a080], esi
je 0x1800b1f0e
mov rcx, qword [0x18015d358]
test rcx, rcx
je 0x1800b1ed7
call qword [0x18015a100]
mov rcx, rbp
call qword [0x18015a0b8]
dec qword [0x18015d0e8]
mov rcx, rbp
movsxd rdx, eax
sub qword [0x18015d0a0], rdx
call qword [0x18015a0a8]
mov rcx, qword [0x18015d358]
test rcx, rcx
je 0x1800b1f17
call qword [0x18015a110]
jmp 0x1800b1f17
mov rcx, rbp
call qword [0x18015a0a8]
mov qword [r15 + 0x10], rsi
test edi, edi
je 0x1800b1f2c
cmp edi, 0x13
cmove edi, esi
mov eax, edi
jmp 0x1800b234c
mov ebp, 0xffffffff
mov edi, esi
test r13d, r13d
jle 0x1800b1f95
cmp r13d, 2
jb 0x1800b1f95
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 0x1800b1f5b
cmp rax, rdx
jae 0x1800b1f95
mov eax, r13d
and eax, 0x80000001
jge 0x1800b1f6c
dec eax
or eax, 0xfffffffe
inc eax
mov edx, r13d
sub edx, eax
add edi, 2
cmp edi, edx
jl 0x1800b1f71
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 sub.VCRUNTIME140.dll_memset
movsxd rcx, edi
cmp rcx, r13
jge 0x1800b1fb0
nop dword [rax]
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], rsi
inc rcx
cmp rcx, r13
jl 0x1800b1fa0
mov word [rbx + 0x1e], si
mov r8d, esi
mov r10, qword [r14 + 8]
test r13d, r13d
jle 0x1800b20b2
movzx r15d, word [rsp + 0xa8]
mov rdx, rsi
mov rax, qword [rsp + 0x88]
add r10, 5
nop dword [rax]
movsxd r9, dword [rax + rdx*8]
lea ecx, [r9 - 1]
test ecx, ecx
js 0x1800b209f
cmp ecx, r13d
jge 0x1800b20f9
movsxd rax, dword [r10 + 3]
test eax, eax
js 0x1800b20f9
mov r11, qword [rsp + 0x20]
cmp eax, dword [r11 + 0x14]
jge 0x1800b20f9
mov rdi, qword [rbx + 0x38]
mov r11, r9
cmp qword [rdi + r9*8 - 8], rsi
jne 0x1800b20f9
cmp byte [r10], sil
je 0x1800b20f9
imul r9, rax, 0x38
mov rax, qword [rsp + 0x20]
add r9, qword [rax + 0x20]
mov rax, qword [r9 + 0x28]
or qword [rbx], rax
mov eax, ecx
cmp ecx, ebp
mov qword [rdi + r11*8 - 8], r9
cmovle eax, ebp
mov ebp, eax
mov rax, qword [rsp + 0x88]
cmp byte [rax + rdx*8 + 4], sil
je 0x1800b2081
cmp r8d, 0x10
jae 0x1800b2081
bt r15d, r8d
jb 0x1800b2081
movzx eax, word [rbx + 0x1e]
bts eax, ecx
mov word [rbx + 0x1e], ax
mov rax, qword [rsp + 0x88]
jmp 0x1800b2081
test byte [r9 + 0x14], 1
je 0x1800b209f
mov rcx, qword [rsp + 0xb0]
and dword [r14 + 0x50], 0xfffffffe
mov dword [r14 + 0x3c], esi
mov dword [rcx], 1
inc r8d
inc rdx
add r10, 0xc
cmp rdx, r13
jl 0x1800b1fe0
lea eax, [rbp + 1]
mov ecx, esi
mov word [rbx + 0x2c], ax
test ebp, ebp
js 0x1800b20d2
mov rax, qword [rbx + 0x38]
cmp qword [rax], rsi
je 0x1800b20f9
inc ecx
add rax, 8
cmp ecx, ebp
jle 0x1800b20c3
mov eax, dword [r14 + 0x28]
mov dword [rbx + 0x18], eax
movzx eax, byte [r14 + 0x38]
mov byte [rbx + 0x1c], al
mov rax, qword [r14 + 0x30]
mov dword [r14 + 0x38], esi
mov qword [rbx + 0x20], rax
cmp dword [r14 + 0x3c], esi
je 0x1800b2126
mov eax, dword [r14 + 0x10]
jmp 0x1800b2128
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.18000a300
mov eax, 1
jmp 0x1800b234c
mov eax, esi
movsd xmm0, qword [0x180140798]
mov edx, 0x28
mov byte [rbx + 0x1d], al
mov word [rbx + 0x12], si
movsd xmm1, qword [r14 + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x1800b2159
movzx eax, si
jmp 0x1800b2236
movsd xmm0, qword [0x180140850]
comisd xmm0, xmm1
jb 0x1800b2215
movsd xmm0, qword [0x180140878]
xor ecx, ecx
comisd xmm1, xmm0
jb 0x1800b2192
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1800b2192
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm1
add rax, rcx
movzx ecx, dx
cmp rax, 8
jae 0x1800b21bf
cmp rax, 2
jae 0x1800b21b0
mov eax, esi
jmp 0x1800b2236
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1800b21b0
jmp 0x1800b21fd
cmp rax, 0xff
jbe 0x1800b21df
nop word [rax + rax]
add cx, dx
shr rax, 4
cmp rax, 0xff
ja 0x1800b21d0
cmp rax, 0xf
jbe 0x1800b21fd
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x1800b21f0
and eax, 7
lea r8, [0x180000000]
add cx, word [r8 + rax*2 + 0x136ba0]
lea eax, [rcx - 0xa]
jmp 0x1800b223d
mov rcx, qword [rsp + 0xa0]
mov eax, 0x3fe
shr rcx, 0x34
sub cx, ax
movzx eax, cx
shl ax, 2
add cx, ax
lea eax, [rcx + rcx]
lea r8, [0x180000000]
mov word [rbx + 0x14], ax
mov rax, qword [r14 + 0x48]
cmp rax, 8
jae 0x1800b2260
cmp rax, 2
jb 0x1800b22ac
add dx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1800b2251
jmp 0x1800b229d
cmp rax, 0xff
jbe 0x1800b2280
nop dword [rax + rax]
add dx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x1800b2270
cmp rax, 0xf
jbe 0x1800b229d
nop word [rax + rax]
add dx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x1800b2290
and eax, 7
add dx, word [r8 + rax*2 + 0x136ba0]
lea esi, [rdx - 0xa]
mov edx, dword [rbx + 0x28]
mov eax, edx
bts edx, 0xc
mov word [rbx + 0x16], si
mov ecx, dword [r14 + 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.1800b0490
cmp byte [rbx + 0x1c], 0
mov esi, eax
je 0x1800b234a
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x1800b2346
cmp dword [0x18015a080], 0
je 0x1800b233d
mov rcx, qword [0x18015d358]
test rcx, rcx
je 0x1800b2306
call qword [0x18015a100]
mov rcx, rdi
call qword [0x18015a0b8]
dec qword [0x18015d0e8]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x18015d0a0], rdx
call qword [0x18015a0a8]
mov rcx, qword [0x18015d358]
test rcx, rcx
je 0x1800b2346
call qword [0x18015a110]
jmp 0x1800b2346
mov rcx, rdi
call qword [0x18015a0a8]
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