Function at 0x140239c00
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 [rcx]
xor ebp, ebp
mov rax, qword [rcx + 8]
mov r10, r8
mov rbx, qword [rcx + 0x18]
mov rsi, qword [rsp + 0xa0]
mov r14, qword [rdi]
lea r12d, [rbp + 1]
mov qword [rsp + 0x20], rax
movzx eax, byte [rbx + 0x10]
mov r11, qword [rsi + 0x20]
movsxd r13, dword [rsi]
imul r15, rax, 0x70
mov rax, qword [rdi + 8]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], r14
mov dword [rax], ebp
mov qword [rbx], rdx
mov rdi, qword [rsi + 8]
test r13d, r13d
jle 0x140239ccc
mov rsi, qword [rsp + 0x20]
add rdi, 5
mov r8d, r13d
nop dword [rax]
movsxd rdx, dword [rdi + 3]
shl rdx, 6
add rdx, qword [rsi + 0x20]
mov byte [rdi], bpl
mov rax, qword [rdx + 0x30]
and rax, r10
cmp rax, qword [rdx + 0x30]
jne 0x140239cbb
test word [rdx + 0x14], r9w
movzx eax, bpl
cmove eax, r12d
mov byte [rdi], al
add rdi, 0xc
sub r8, r12
jne 0x140239c90
mov rsi, qword [rsp + 0xa0]
lea r8, [r13*8]
xor edx, edx
mov rcx, r11
call fcn.140289490
mov rcx, qword [rsp + 0x88]
movabs rax, 0x546d42aea2879f2e
mov qword [rsi + 0x30], rbp
mov dword [rsi + 0x28], ebp
mov dword [rsi + 0x3c], ebp
mov qword [rsi + 0x40], rax
mov qword [rsi + 0x48], SafeArrayCopy
mov dword [rsi + 0x50], ebp
mov rax, qword [r15 + rcx + 0x60]
mov qword [rsi + 0x58], rax
mov rax, qword [r15 + rcx + 0x28]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x140239d31
mov rax, qword [r14]
cmp qword [rcx], rax
je 0x140239d31
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x140239d23
mov r15, qword [rcx + 0x10]
mov rdx, rsi
mov rcx, r15
mov rax, qword [r15]
call qword [rax + SafeArrayCopy]
mov edi, eax
lea rdx, [0x140000000]
test eax, eax
je 0x140239e0c
cmp edi, 0x13
je 0x140239e0c
cmp edi, 7
jne 0x140239da5
mov rax, qword [r14]
cmp byte [rax + 0x61], bpl
jne 0x140239e0c
cmp byte [rax + 0x62], bpl
jne 0x140239e0c
mov byte [rax + 0x61], r12b
cmp dword [rax + 0xc8], ebp
jle 0x140239d8a
mov dword [rax + 0x168], r12d
inc dword [rax + 0x170]
mov rcx, qword [rax + 0x130]
test rcx, rcx
je 0x140239e0c
mov dword [rcx + 0x18], 7
jmp 0x140239e0c
mov r8, qword [r15 + 0x10]
test r8, r8
jne 0x140239dfd
mov ecx, edi
lea r8, str.unknown_error
sub ecx, 0x64
je 0x140239df6
sub ecx, r12d
je 0x140239ded
cmp ecx, 0x19f
je 0x140239de4
movzx eax, dil
cmp eax, 0x1d
jae 0x140239dfd
mov rcx, qword [rdx + rax*8 + 0x334000]
test rcx, rcx
je 0x140239dfd
mov r8, rcx
jmp 0x140239dfd
lea r8, str.abort_due_to_ROLLBACK
jmp 0x140239dfd
lea r8, str.no_more_rows_available
jmp 0x140239dfd
lea r8, str.another_row_available
lea rdx, [0x14032d664]
mov rcx, r14
call fcn.1401ee830
mov r14, qword [r15 + 0x10]
test r14, r14
je 0x140239e6f
cmp dword [reloc.WS2_32.dll_accept], ebp
je 0x140239e66
mov rcx, qword [0x1403db8a0]
test rcx, rcx
je 0x140239e2f
call qword [0x1403ba330]
mov rcx, r14
call qword [0x1403ba2e8]
dec qword [0x1403db798]
mov rcx, r14
movsxd rdx, eax
sub qword [0x1403db750], rdx
call qword [0x1403ba2d8]
mov rcx, qword [0x1403db8a0]
test rcx, rcx
je 0x140239e6f
call qword [0x1403ba340]
jmp 0x140239e6f
mov rcx, r14
call qword [0x1403ba2d8]
mov qword [r15 + 0x10], rbp
test edi, edi
je 0x140239e84
cmp edi, 0x13
cmove edi, ebp
mov eax, edi
jmp 0x14023a2ae
mov r9d, 0xffffffff
mov r8d, ebp
test r13d, r13d
jle 0x140239ef1
cmp r13d, 2
jb 0x140239ef1
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 0x140239eb5
cmp rax, rdx
jae 0x140239ef1
mov eax, r13d
and eax, 0x80000001
jge 0x140239ec6
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, r13d
sub ecx, eax
nop dword [rax + rax]
add r8d, 2
cmp r8d, ecx
jl 0x140239ed0
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 0x140239f10
nop dword [rax]
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], rbp
inc rcx
cmp rcx, r13
jl 0x140239f00
mov word [rbx + 0x1e], bp
movzx ecx, bp
mov r8, qword [rsi + 8]
test r13d, r13d
jle 0x140239fe4
mov r15, qword [rsp + 0x38]
mov rcx, rbp
add r8, 5
movsxd rdi, dword [r15 + rcx*8]
lea edx, [rdi - 1]
test edx, edx
js 0x140239fd0
cmp edx, r13d
jge 0x14023a042
movsxd rax, dword [r8 + 3]
test eax, eax
js 0x14023a042
mov r14, qword [rsp + 0x20]
cmp eax, dword [r14 + 0x14]
jge 0x14023a042
mov r11, qword [rbx + 0x38]
mov r10, rdi
cmp qword [r11 + rdi*8 - 8], rbp
jne 0x14023a042
cmp byte [r8], bpl
je 0x14023a042
mov rdi, rax
shl rdi, 6
add rdi, qword [r14 + 0x20]
mov rax, qword [rdi + 0x30]
or qword [rbx], rax
mov eax, edx
cmp edx, r9d
mov qword [r11 + r10*8 - 8], rdi
cmovle eax, r9d
mov r9d, eax
cmp edx, 0x10
jge 0x140239fb8
cmp byte [r15 + rcx*8 + 4], bpl
je 0x140239fb8
movzx eax, word [rbx + 0x1e]
bts eax, edx
mov word [rbx + 0x1e], ax
test byte [rdi + 0x14], r12b
je 0x140239fd0
mov rax, qword [rsp + 0xb0]
and dword [rsi + 0x50], 0xfffffffe
mov dword [rsi + 0x3c], ebp
mov dword [rax], r12d
inc rcx
add r8, 0xc
cmp rcx, r13
jl 0x140239f30
movzx ecx, word [rbx + 0x1e]
movzx eax, word [rsp + 0xa8]
not ax
and ax, cx
mov ecx, ebp
mov word [rbx + 0x1e], ax
lea eax, [r9 + 1]
mov word [rbx + 0x2c], ax
test r9d, r9d
js 0x14023a020
mov rax, qword [rbx + 0x38]
nop dword [rax]
cmp qword [rax], rbp
je 0x14023a042
inc ecx
add rax, 8
cmp ecx, r9d
jle 0x14023a010
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 0x14023a070
mov eax, dword [rsi + 0x10]
jmp 0x14023a072
mov rcx, qword [rsp + 0x88]
lea rdx, str._s.xBestIndex_malfunction
mov r8, qword [rsp + 0x28]
mov r8, qword [r8 + rcx + 0x28]
mov rcx, qword [rsp + 0x30]
mov r8, qword [r8]
call fcn.1401ee830
mov eax, r12d
jmp 0x14023a2ae
mov eax, ebp
movsd xmm0, qword [0x140352458]
mov edx, 0x28
mov byte [rbx + 0x1d], al
mov word [rbx + 0x12], bp
movsd xmm1, qword [rsi + 0x40]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x14023a0a2
movzx eax, bp
jmp 0x14023a189
movsd xmm0, qword [0x14033c970]
comisd xmm0, xmm1
jb 0x14023a168
movsd xmm0, qword [0x14033c988]
xor ecx, ecx
comisd xmm1, xmm0
jb 0x14023a0db
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x14023a0db
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm1
add rax, rcx
movzx ecx, dx
cmp rax, 8
jae 0x14023a10f
cmp rax, 2
jae 0x14023a100
mov eax, ebp
jmp 0x14023a189
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x14023a100
jmp 0x14023a14d
cmp rax, 0xff
jbe 0x14023a12f
nop word [rax + rax]
add cx, dx
shr rax, 4
cmp rax, 0xff
ja 0x14023a120
cmp rax, 0xf
jbe 0x14023a14d
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x14023a140
and eax, 7
lea rdi, [0x140000000]
movzx eax, word [rdi + rax*2 + 0x3bb078]
sub ax, 0xa
add ax, cx
jmp 0x14023a190
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 rdi, [0x140000000]
mov word [rbx + 0x14], ax
mov rax, qword [rsi + 0x48]
cmp rax, 8
jae 0x14023a1bf
cmp rax, 2
jb 0x14023a20f
nop dword [rax]
nop dword [rax + rax]
add dx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x14023a1b0
jmp 0x14023a1fd
cmp rax, 0xff
jbe 0x14023a1e0
nop word [rax + rax]
add dx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x14023a1d0
cmp rax, 0xf
jbe 0x14023a1fd
nop word [rax + rax]
add dx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x14023a1f0
and eax, 7
movzx ebp, word [rdi + rax*2 + 0x3bb078]
sub bp, 0xa
add bp, dx
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, r12b
mov rcx, qword [rsp + 0x80]
cmove edx, eax
mov dword [rbx + 0x28], edx
mov rdx, rbx
call fcn.14023a630
cmp byte [rbx + 0x1c], 0
mov esi, eax
je 0x14023a2ac
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x14023a2a8
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x14023a29f
mov rcx, qword [0x1403db8a0]
test rcx, rcx
je 0x14023a268
call qword [0x1403ba330]
mov rcx, rdi
call qword [0x1403ba2e8]
dec qword [0x1403db798]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1403db750], rdx
call qword [0x1403ba2d8]
mov rcx, qword [0x1403db8a0]
test rcx, rcx
je 0x14023a2a8
call qword [0x1403ba340]
jmp 0x14023a2a8
mov rcx, rdi
call qword [0x1403ba2d8]
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