Function at 0x140074d78
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, 0x20
mov rsi, qword [rsp + 0x80]
xor ebp, ebp
mov r10, qword [rcx]
mov r11, r8
mov rbx, qword [rcx + 0x18]
mov rdi, qword [rcx + 8]
movsxd r15, dword [rsi]
mov r14, qword [rsi + 0x20]
movzx eax, byte [rbx + 0x10]
mov r12, qword [r10]
imul r13, rax, 0x70
mov rax, qword [rsp + 0x90]
add r13, qword [r10 + 8]
lea r10d, [rbp + 1]
mov qword [rbx], rdx
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x80], r14
mov dword [rax], ebp
test r15d, r15d
jle 0x140074e21
add rcx, 5
mov r8d, r15d
movsxd rdx, dword [rcx + 3]
shl rdx, 6
add rdx, qword [rdi + 0x20]
mov byte [rcx], bpl
mov rax, qword [rdx + 0x30]
and rax, r11
cmp rax, qword [rdx + 0x30]
jne 0x140074e18
test word [rdx + 0x14], r9w
movzx eax, bpl
cmove eax, r10d
mov byte [rcx], al
add rcx, 0xc
sub r8, r10
jne 0x140074ded
mov r8, r15
xor edx, edx
shl r8, 3
mov rcx, r14
call fcn.1400c5520
mov qword [rsi + 0x30], rbp
movabs rax, 0x546d42aea2879f2e
mov qword [rsi + 0x40], rax
mov dword [rsi + 0x28], ebp
mov dword [rsi + 0x3c], ebp
mov qword [rsi + 0x48], SQLFreeHandle
mov dword [rsi + 0x50], ebp
mov rax, qword [r13 + 0x60]
mov qword [rsi + 0x58], rax
mov rax, qword [r13 + 0x28]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x140074e7c
mov rax, qword [r12]
cmp qword [rcx], rax
je 0x140074e7c
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x140074e6e
mov r14, qword [rcx + 0x10]
mov rdx, rsi
mov rcx, r14
mov rax, qword [r14]
call qword [rax + reloc.ODBC32.dll_SQLAllocHandle]
mov edi, eax
test eax, eax
je 0x140074ec9
cmp eax, 0x13
je 0x140074ec9
cmp eax, 7
jne 0x140074ea7
mov rcx, qword [r12]
call fcn.140015574
jmp 0x140074ec9
mov r8, qword [r14 + 0x10]
test r8, r8
jne 0x140074eba
mov ecx, edi
call fcn.14008100c
mov r8, rax
lea rdx, [0x140104530]
mov rcx, r12
call fcn.140017964
mov rcx, qword [r14 + 0x10]
call fcn.140014fb8
xor r10d, r10d
mov qword [r14 + 0x10], r10
test edi, edi
je 0x140074eeb
cmp edi, 0x13
cmove edi, r10d
mov eax, edi
jmp 0x1400751e0
or ebp, 0xffffffff
mov edi, r10d
test r15d, r15d
jle 0x140074f5a
cmp r15d, 2
jb 0x140074f5a
lea rdx, [rbx + 0x38]
mov r9, qword [rdx]
lea eax, [r15 - 1]
movsxd rcx, eax
lea rax, [r9 + rcx*8]
cmp r9, rdx
ja 0x140074f18
cmp rax, rdx
jae 0x140074f5a
mov eax, r15d
and eax, 0x80000001
jge 0x140074f2e
mov ecx, 1
sub eax, ecx
or eax, 0xfffffffe
add eax, ecx
mov edx, r15d
sub edx, eax
add edi, 2
cmp edi, edx
jl 0x140074f33
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.1400c5520
xor r10d, r10d
movsxd rcx, edi
mov r11d, 1
cmp rcx, r15
jge 0x140074f75
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], r10
add rcx, r11
jmp 0x140074f63
mov word [rbx + 0x1e], r10w
mov r9, qword [rsi + 8]
test r15d, r15d
jle 0x140075060
mov r14, qword [rsp + 0x68]
mov rcx, r10
mov rax, qword [rsp + 0x80]
add r9, 5
movsxd r8, dword [rax + rcx*8]
lea edx, [r8 - 1]
test edx, edx
js 0x140075050
cmp edx, r15d
jge 0x1400750b5
movsxd rax, dword [r9 + 3]
test eax, eax
js 0x1400750b5
cmp eax, dword [r14 + 0x14]
jge 0x1400750b5
mov r11, qword [rbx + 0x38]
mov r10, r8
cmp qword [r11 + r8*8 - 8], 0
jne 0x1400750b5
cmp byte [r9], 0
je 0x1400750b5
mov r8, rax
shl r8, 6
add r8, qword [r14 + 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
xor r10d, r10d
mov ebp, eax
mov rax, qword [rsp + 0x80]
cmp edx, 0x10
jge 0x140075031
cmp byte [rax + rcx*8 + 4], r10b
je 0x140075031
movzx eax, word [rbx + 0x1e]
bts eax, edx
mov word [rbx + 0x1e], ax
mov rax, qword [rsp + 0x80]
mov r11d, 1
test byte [r8 + 0x14], r11b
je 0x140075050
mov rdx, qword [rsp + 0x90]
and dword [rsi + 0x50], 0xfffffffe
mov dword [rsi + 0x3c], r10d
mov dword [rdx], r11d
add rcx, r11
add r9, 0xc
cmp rcx, r15
jl 0x140074f9b
movzx eax, word [rsp + 0x88]
mov ecx, r10d
not ax
and word [rbx + 0x1e], ax
lea eax, [r11 + rbp]
mov word [rbx + 0x2c], ax
test ebp, ebp
js 0x140075092
mov rax, qword [rbx + 0x38]
cmp qword [rax], r10
je 0x1400750b5
add ecx, r11d
add rax, 8
cmp ecx, ebp
jle 0x140075082
mov eax, dword [rsi + 0x28]
mov dword [rbx + 0x18], eax
mov al, byte [rsi + 0x38]
mov byte [rbx + 0x1c], al
mov rax, qword [rsi + 0x30]
mov dword [rsi + 0x38], r10d
mov qword [rbx + 0x20], rax
cmp dword [rsi + 0x3c], r10d
je 0x1400750d5
mov eax, dword [rsi + 0x10]
jmp 0x1400750d8
mov r8, qword [r13 + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov rcx, r12
mov r8, qword [r8]
call fcn.140017964
mov eax, 1
jmp 0x1400751e0
mov eax, r10d
mov byte [rbx + 0x1d], al
mov word [rbx + 0x12], r10w
movsd xmm0, qword [rsi + 0x40]
comisd xmm0, xmmword [0x140122958]
movsd qword [rsp + 0x90], xmm0
ja 0x1400750fe
movzx ecx, r10w
jmp 0x140075162
comisd xmm0, xmmword [0x1401229c8]
ja 0x140075141
movsd xmm1, qword [0x1401229f8]
xor eax, eax
comisd xmm0, xmm1
jb 0x14007512f
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14007512f
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm0
add rcx, rax
call fcn.140018900
movzx ecx, ax
jmp 0x140075162
mov rcx, qword [rsp + 0x90]
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 rcx, qword [rsi + 0x48]
call fcn.140018900
mov edx, dword [rbx + 0x28]
mov word [rbx + 0x16], ax
mov eax, edx
mov ecx, dword [rsi + 0x50]
bts edx, 0xc
btr eax, 0xc
test r11b, cl
cmove edx, eax
mov dword [rbx + 0x28], edx
mov rdx, rbx
mov rcx, qword [rsp + 0x60]
call fcn.14007398c
xor ebp, ebp
mov esi, eax
cmp byte [rbx + 0x1c], bpl
je 0x1400751de
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x1400751da
cmp dword [0x140130b60], ebp
mov rcx, rdi
je 0x1400751d4
call qword [0x140130b98]
lea ecx, [rbp + 1]
movsxd rdx, eax
sub qword [0x1401384f0], rdx
sub qword [0x140138538], rcx
mov rcx, rdi
call qword [0x140130b88]
mov byte [rbx + 0x1c], bpl
mov eax, esi
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret