Function at 0x1400b47c0
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 r14d, r14d
mov rbx, qword [rcx + 0x18]
mov rdi, r8
mov rax, qword [rcx + 8]
movzx r11d, r9w
mov r10, qword [rcx]
movsxd r13, dword [rsi]
mov r15, qword [rsi + 0x20]
mov qword [rsp + 0x20], rax
mov rbp, qword [r10]
movzx eax, byte [rbx + 0x10]
imul rax, rax, 0x70
mov qword [rsp + 0x30], r15
add rax, qword [r10 + 8]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb0]
mov qword [rbx], rdx
mov r8, qword [rsi + 8]
mov qword [rsp + 0x28], rbp
mov dword [rax], r14d
test r13d, r13d
jle 0x1400b4889
mov rsi, qword [rsp + 0x20]
add r8, 5
mov r9d, r13d
nop word [rax + rax]
movsxd rdx, dword [r8 + 3]
shl rdx, 6
add rdx, qword [rsi + 0x20]
mov byte [r8], r14b
mov rax, qword [rdx + 0x30]
and rax, rdi
cmp rax, qword [rdx + 0x30]
jne 0x1400b4877
test word [rdx + 0x14], r11w
jne 0x1400b4877
mov byte [r8], 1
add r8, 0xc
sub r9, 1
jne 0x1400b4850
mov rsi, qword [rsp + 0xa0]
lea r8, [r13*8]
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x88]
movabs rax, 0x546d42aea2879f2e
mov qword [rsi + 0x30], r14
mov dword [rsi + 0x28], r14d
mov dword [rsi + 0x3c], r14d
mov qword [rsi + 0x40], rax
mov qword [rsi + 0x48], 0x19
mov dword [rsi + 0x50], r14d
mov rax, qword [rcx + 0x60]
mov qword [rsi + 0x58], rax
mov rax, qword [rcx + 0x28]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x1400b48f0
mov rax, qword [rbp]
cmp qword [rcx], rax
je 0x1400b48f0
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x1400b48e2
mov r15, qword [rcx + 0x10]
mov rdx, rsi
mov rcx, r15
mov rax, qword [r15]
call qword [rax + 0x18]
mov edx, eax
lea r9, [0x140000000]
test eax, eax
je 0x1400b49b3
cmp edx, 7
jne 0x1400b494d
mov rax, qword [rbp]
cmp byte [rax + 0x61], r14b
jne 0x1400b49b3
cmp byte [rax + 0x62], r14b
jne 0x1400b49b3
mov byte [rax + 0x61], 1
cmp dword [rax + 0xc8], r14d
jle 0x1400b4945
mov dword [rax + 0x160], 1
inc dword [rax + 0x168]
jmp 0x1400b49b3
mov r8, qword [r15 + 0x10]
test r8, r8
jne 0x1400b49a4
mov ecx, edx
lea r8, str.unknown_error
sub ecx, 0x64
je 0x1400b499d
sub ecx, 1
je 0x1400b4994
cmp ecx, 0x19f
je 0x1400b498b
movzx eax, dl
cmp eax, 0x1d
jae 0x1400b49a4
mov rcx, qword [r9 + rax*8 + 0xcb1b0]
test rcx, rcx
je 0x1400b49a4
mov r8, rcx
jmp 0x1400b49a4
lea r8, str.abort_due_to_ROLLBACK
jmp 0x1400b49a4
lea r8, str.no_more_rows_available
jmp 0x1400b49a4
lea r8, str.another_row_available
lea rdx, [0x1400d2870]
mov rcx, rbp
call fcn.140019ae0
mov rdi, qword [r15 + 0x10]
test rdi, rdi
je 0x1400b4a17
cmp dword [0x1400e60a0], r14d
je 0x1400b4a0e
mov rcx, qword [0x1400e8c28]
test rcx, rcx
je 0x1400b49d7
call qword [0x1400e6130]
mov rcx, rdi
call qword [0x1400e60e8]
dec qword [0x1400e89b8]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1400e8970], rdx
call qword [0x1400e60d8]
mov rcx, qword [0x1400e8c28]
test rcx, rcx
je 0x1400b4a17
call qword [0x1400e6140]
jmp 0x1400b4a17
mov rcx, rdi
call qword [0x1400e60d8]
mov qword [r15 + 0x10], r14
mov eax, dword [rbp + 0x30]
test eax, eax
jne 0x1400b4db1
lea ebp, [rax - 1]
mov edi, r14d
test r13d, r13d
jle 0x1400b4a94
cmp r13d, 2
jb 0x1400b4a94
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 0x1400b4a54
cmp rax, rdx
jae 0x1400b4a94
mov eax, r13d
and eax, 0x80000001
jge 0x1400b4a65
dec eax
or eax, 0xfffffffe
inc eax
mov edx, r13d
sub edx, eax
nop word [rax + rax]
add edi, 2
cmp edi, edx
jl 0x1400b4a70
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 0x1400b4ab0
nop dword [rax]
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], r14
inc rcx
cmp rcx, r13
jl 0x1400b4aa0
mov word [rbx + 0x1e], r14w
mov r9, qword [rsi + 8]
test r13d, r13d
jle 0x1400b4b82
mov r15, qword [rsp + 0x30]
mov rcx, r14
add r9, 5
nop
movsxd r8, dword [r15 + rcx*8]
lea edx, [r8 - 1]
test edx, edx
js 0x1400b4b72
cmp edx, r13d
jge 0x1400b4bd6
movsxd rax, dword [r9 + 3]
test eax, eax
js 0x1400b4bd6
mov rdi, qword [rsp + 0x20]
cmp eax, dword [rdi + 0x14]
jge 0x1400b4bd6
mov r11, qword [rbx + 0x38]
mov r10, r8
cmp qword [r11 + r8*8 - 8], r14
jne 0x1400b4bd6
cmp byte [r9], r14b
je 0x1400b4bd6
mov r8, rax
shl r8, 6
add r8, qword [rdi + 0x20]
mov rax, qword [r8 + 0x30]
or qword [rbx], rax
mov eax, edx
cmp edx, ebp
mov qword [r11 + r10*8 - 8], r8
cmovle eax, ebp
mov ebp, eax
cmp edx, 0x10
jge 0x1400b4b55
cmp byte [r15 + rcx*8 + 4], r14b
je 0x1400b4b55
movzx eax, word [rbx + 0x1e]
bts eax, edx
mov word [rbx + 0x1e], ax
test byte [r8 + 0x14], 1
je 0x1400b4b72
mov rax, qword [rsp + 0xb0]
and dword [rsi + 0x50], 0xfffffffe
mov dword [rsi + 0x3c], r14d
mov dword [rax], 1
inc rcx
add r9, 0xc
cmp rcx, r13
jl 0x1400b4ad0
movzx eax, word [rsp + 0xa8]
mov ecx, r14d
not ax
and word [rbx + 0x1e], ax
lea eax, [rbp + 1]
mov word [rbx + 0x2c], ax
test ebp, ebp
js 0x1400b4bb2
mov rax, qword [rbx + 0x38]
cmp qword [rax], r14
je 0x1400b4bd6
inc ecx
add rax, 8
cmp ecx, ebp
jle 0x1400b4ba3
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], r14d
mov qword [rbx + 0x20], rax
cmp dword [rsi + 0x3c], r14d
je 0x1400b4c00
mov eax, dword [rsi + 0x10]
jmp 0x1400b4c03
mov r8, qword [rsp + 0x88]
lea rdx, str._s.xBestIndex_malfunction
mov rcx, qword [rsp + 0x28]
mov r8, qword [r8 + 0x28]
mov r8, qword [r8]
call fcn.140019ae0
mov eax, 1
jmp 0x1400b4db1
mov eax, r14d
movsd xmm0, qword [0x1400d70b0]
mov byte [rbx + 0x1d], al
mov word [rbx + 0x12], r14w
movsd xmm1, qword [rsi + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x1400b4c2d
movzx ecx, r14w
jmp 0x1400b4c95
movsd xmm0, qword [0x1400d7130]
comisd xmm0, xmm1
jb 0x1400b4c74
movsd xmm0, qword [0x1400d7150]
xor eax, eax
comisd xmm1, xmm0
jb 0x1400b4c62
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1400b4c62
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm1
add rcx, rax
call fcn.14001acb0
movzx ecx, ax
jmp 0x1400b4c95
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 0x1400b4cbf
cmp rax, 2
jb 0x1400b4d13
nop
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1400b4cb0
jmp 0x1400b4cfd
cmp rax, 0xff
jbe 0x1400b4ce0
nop word [rax + rax]
add cx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x1400b4cd0
cmp rax, 0xf
jbe 0x1400b4cfd
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x1400b4cf0
and eax, 7
lea rdx, [0x140000000]
add cx, word [rdx + rax*2 + 0xcd590]
lea r14d, [rcx - 0xa]
mov edx, dword [rbx + 0x28]
mov eax, edx
bts edx, 0xc
mov word [rbx + 0x16], r14w
btr eax, 0xc
test byte [rsi + 0x50], 1
cmove edx, eax
mov dword [rbx + 0x28], edx
mov rdx, rbx
mov rcx, qword [rsp + 0x80]
call fcn.1400b2e30
cmp byte [rbx + 0x1c], 0
mov esi, eax
je 0x1400b4daf
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x1400b4dab
cmp dword [0x1400e60a0], 0
je 0x1400b4da2
mov rcx, qword [0x1400e8c28]
test rcx, rcx
je 0x1400b4d6b
call qword [0x1400e6130]
mov rcx, rdi
call qword [0x1400e60e8]
dec qword [0x1400e89b8]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1400e8970], rdx
call qword [0x1400e60d8]
mov rcx, qword [0x1400e8c28]
test rcx, rcx
je 0x1400b4dab
call qword [0x1400e6140]
jmp 0x1400b4dab
mov rcx, rdi
call qword [0x1400e60d8]
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