Function at 0x140183eb0
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]
mov rdi, qword [rsp + 0xa0]
mov rbx, qword [rcx + 0x10]
mov rax, qword [rdi + 0x20]
movsxd r14, dword [rdi]
mov r15, qword [rcx + 8]
mov r12, qword [rsp + 0xb0]
mov qword [rsp + 0x88], rax
mov rax, qword [r10]
mov qword [rsp + 0x30], rax
movzx eax, byte [rbx + 0x10]
xor esi, esi
mov rbp, r8
movzx r11d, r9w
imul rax, rax, 0x70
mov qword [rsp + 0x20], rax
mov rax, qword [r10 + 8]
mov dword [r12], esi
mov qword [rbx], rdx
mov r8, qword [rdi + 8]
mov qword [rsp + 0x28], rax
test r14d, r14d
jle 0x140183f7f
mov r10, qword [rsp + 0xb8]
add r8, 5
mov r9d, r14d
nop dword [rax]
movsxd rax, dword [r8 + 3]
imul rdx, rax, 0x38
add rdx, qword [r15 + 0x20]
mov byte [r8], sil
mov rax, qword [rdx + 0x28]
and rax, rbp
cmp rax, qword [rdx + 0x28]
jne 0x140183f76
test word [rdx + 0x14], r11w
jne 0x140183f76
test r10, r10
jne 0x140183f72
movzx eax, byte [rdx + 0x17]
sub al, 0x49
cmp al, 1
jbe 0x140183f76
mov byte [r8], 1
add r8, 0xc
dec r9
jne 0x140183f40
mov rcx, qword [rsp + 0x88]
lea rbp, [r14*8]
xor edx, edx
mov r8, rbp
mov r13, r14
call sub.msvcrt.dll_memset
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
mov qword [rdi + 0x30], rsi
mov dword [rdi + 0x28], esi
mov dword [rdi + 0x3c], esi
mov qword [rdi + 0x48], reloc.OLEAUT32.dll_SafeArrayPutElement
mov dword [rdi + 0x50], esi
movabs rax, 0x546d42aea2879f2e
mov qword [rdi + 0x40], rax
mov rax, qword [rcx + rdx + 0x60]
mov r8, rdi
mov qword [rdi + 0x58], rax
mov dword [rdi + 0x78], esi
mov rdx, qword [rcx + rdx + 0x28]
mov rcx, qword [rsp + 0x30]
call fcn.14017e120
test eax, eax
je 0x140183ff6
cmp eax, 0x13
cmove eax, esi
jmp 0x140184418
mov rcx, qword [rbx + 0x48]
mov r8, rbp
xor edx, edx
or r14d, 0xffffffff
call sub.msvcrt.dll_memset
xor eax, eax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov rax, qword [rdi + 8]
mov r10d, esi
mov r11, rsi
test r13, r13
jle 0x140184145
lea rbp, [rax + 5]
mov rax, qword [rsp + 0x88]
nop dword [rax]
mov edx, dword [rax + r11*8]
dec edx
js 0x140184132
movsxd rax, dword [rbp + 3]
cmp edx, r13d
jge 0x1401841b9
test eax, eax
js 0x1401841b9
cmp eax, dword [r15 + 0x14]
jge 0x1401841b9
mov r9, qword [rbx + 0x48]
movsxd rcx, edx
cmp qword [r9 + rcx*8], rsi
jne 0x1401841b9
cmp byte [rbp], sil
je 0x1401841b9
imul r8, rax, 0x38
add r8, qword [r15 + 0x20]
mov rax, qword [r8 + 0x28]
or qword [rbx], rax
mov rax, qword [rsp + 0x88]
cmp edx, r14d
mov qword [r9 + rcx*8], r8
cmovg r14d, edx
cmp byte [rax + r11*8 + 4], sil
je 0x1401840dc
cmp r10d, 0x10
jge 0x1401840d1
movzx eax, word [rsp + 0xa8]
bt eax, r10d
jb 0x1401840d1
mov eax, 1
mov ecx, edx
shl ax, cl
or word [rbx + 0x22], ax
cmp byte [r8 + 0x17], 0x4a
jne 0x1401840dc
or dword [rbx + 0x1c], 2
cmp r10d, 0x1f
jg 0x1401840ee
mov ecx, r10d
mov eax, 1
shl eax, cl
jmp 0x1401840f0
mov eax, esi
test dword [rdi + 0x78], eax
je 0x140184103
mov ecx, edx
mov eax, 1
shl eax, cl
or dword [rbx + 0x30], eax
jmp 0x140184119
test byte [r8 + 0x14], 1
je 0x140184119
and dword [rdi + 0x50], 0xfffffffe
mov dword [rdi + 0x3c], esi
mov dword [r12], 1
movzx eax, byte [r8 + 0x17]
sub al, 0x49
cmp al, 1
ja 0x14018412a
cmp dword [r12], esi
jne 0x14018418f
mov rax, qword [rsp + 0x88]
inc r11
inc r10d
add rbp, 0xc
cmp r11, r13
jl 0x140184040
lea eax, [r14 + 1]
mov ecx, esi
mov word [rbx + 0x3c], ax
test r14d, r14d
js 0x140184168
mov rax, qword [rbx + 0x48]
cmp qword [rax], rsi
je 0x1401841b9
inc ecx
add rax, 8
cmp ecx, r14d
jle 0x140184158
mov eax, dword [rdi + 0x28]
mov dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x1c]
xor eax, dword [rdi + 0x38]
and eax, 1
xor dword [rbx + 0x1c], eax
mov rax, qword [rdi + 0x30]
mov dword [rdi + 0x38], esi
mov qword [rbx + 0x28], rax
cmp dword [rdi + 0x3c], esi
je 0x1401841e6
mov eax, dword [rdi + 0x10]
jmp 0x1401841e8
cmp dword [rdi + 0x38], esi
je 0x1401841a4
mov rcx, qword [rdi + 0x30]
call fcn.1400be700
mov qword [rdi + 0x30], rsi
mov dword [rdi + 0x38], esi
mov rax, qword [rsp + 0xb8]
mov dword [rax], 1
xor eax, eax
jmp 0x140184418
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
mov r8, qword [r8 + rdx + 0x28]
lea rdx, str._s.xBestIndex_malfunction
mov r8, qword [r8]
call fcn.140127e60
mov eax, 1
jmp 0x140184418
mov eax, esi
movsd xmm0, qword [0x1401d07a8]
mov byte [rbx + 0x20], al
mov word [rbx + 0x12], si
movsd xmm1, qword [rdi + 0x40]
mov edx, SQLGetData
lea r8, [0x140288b00]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x14018421f
movzx eax, si
jmp 0x14018430f
movsd xmm0, qword [0x1401e9f10]
comisd xmm0, xmm1
jb 0x1401842ee
movsd xmm0, qword [0x1401e9f38]
xor ecx, ecx
comisd xmm1, xmm0
jb 0x140184258
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x140184258
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm1
add rax, rcx
movzx ecx, dx
cmp rax, 8
jae 0x14018429e
cmp rax, 2
jae 0x140184280
mov eax, esi
jmp 0x14018430f
add rax, rax
add cx, 0xfff6
cmp rax, 8
jb 0x140184280
and eax, 7
movzx eax, word [r8 + rax*2]
sub ax, 0xa
add ax, cx
jmp 0x14018430f
cmp rax, 0xff
jbe 0x1401842bf
nop word [rax + rax]
shr rax, 4
add cx, dx
cmp rax, 0xff
ja 0x1401842b0
cmp rax, 0xf
jbe 0x1401842dd
nop word [rax + rax]
shr rax, 1
add cx, 0xa
cmp rax, 0xf
ja 0x1401842d0
and eax, 7
movzx eax, word [r8 + rax*2]
sub ax, 0xa
add ax, cx
jmp 0x14018430f
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]
mov word [rbx + 0x14], ax
mov rax, qword [rdi + 0x48]
cmp rax, 8
jae 0x140184332
cmp rax, 2
jb 0x14018437c
add rax, rax
add dx, 0xfff6
cmp rax, 8
jb 0x140184323
jmp 0x14018436d
cmp rax, 0xff
jbe 0x140184350
nop word [rax + rax]
shr rax, 4
add dx, 0x28
cmp rax, 0xff
ja 0x140184340
cmp rax, 0xf
jbe 0x14018436d
nop word [rax + rax]
shr rax, 1
add dx, 0xa
cmp rax, 0xf
ja 0x140184360
and eax, 7
movzx esi, word [r8 + rax*2]
sub si, 0xa
add si, dx
mov word [rbx + 0x16], si
test byte [rdi + 0x50], 1
je 0x14018438f
or dword [rbx + 0x38], 0x1000
jmp 0x140184396
and dword [rbx + 0x38], 0xffffefff
mov rcx, qword [rsp + 0x80]
mov rdx, rbx
call fcn.140184890
test byte [rbx + 0x1c], 1
mov esi, eax
je 0x140184416
mov rdi, qword [rbx + 0x28]
test rdi, rdi
je 0x140184412
cmp dword [0x140288b50], 0
je 0x140184409
mov rcx, qword [0x1402978a8]
test rcx, rcx
je 0x1401843d2
call qword [0x140288bd0]
mov rcx, rdi
call qword [0x140288b88]
dec qword [0x1402977e8]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1402977a0], rdx
call qword [0x140288b78]
mov rcx, qword [0x1402978a8]
test rcx, rcx
je 0x140184412
call qword [0x140288be0]
jmp 0x140184412
mov rcx, rdi
call qword [0x140288b78]
and dword [rbx + 0x1c], 0xfffffffe
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