Function at 0x1800af610
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 r13, qword [rcx + 8]
mov rbx, qword [rcx + 0x10]
mov rdi, qword [rsp + 0xa0]
mov rax, qword [rdi + 0x20]
movsxd r12, dword [rdi]
mov r15, qword [rsp + 0xb0]
mov qword [rsp + 0x88], rax
mov rax, qword [rcx]
xor ebp, ebp
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov r11, r8
mov qword [rsp + 0x30], rcx
movzx ecx, byte [rbx + 0x10]
mov qword [rbx], rdx
mov r8, qword [rdi + 8]
movzx r10d, r9w
mov qword [rsp + 0x28], rax
imul rcx, rcx, 0x68
mov qword [rsp + 0x20], rcx
mov dword [r15], ebp
test r12d, r12d
jle 0x1800af6e3
mov rsi, qword [rsp + 0xb8]
add r8, 5
mov r9d, r12d
nop dword [rax + rax]
movsxd rdx, dword [r8 + 3]
imul rdx, rdx, 0x38
add rdx, qword [r13 + 0x20]
mov byte [r8], bpl
mov rcx, qword [rdx + 0x28]
mov rax, rcx
and rax, r11
cmp rax, rcx
jne 0x1800af6da
test word [rdx + 0x14], r10w
jne 0x1800af6da
test rsi, rsi
jne 0x1800af6d6
movzx eax, byte [rdx + 0x17]
cmp al, 0x49
jb 0x1800af6d6
cmp al, 0x4a
jbe 0x1800af6da
mov byte [r8], 1
add r8, 0xc
dec r9
jne 0x1800af6a0
mov rcx, qword [rsp + 0x88]
lea rsi, [r12*8]
xor edx, edx
mov r8, rsi
mov r14, r12
call fcn.18012d640
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
mov qword [rdi + 0x30], rbp
mov dword [rdi + 0x28], ebp
mov dword [rdi + 0x3c], ebp
mov qword [rdi + 0x48], 0x19
mov dword [rdi + 0x50], ebp
movabs rax, 0x546d42aea2879f2e
mov qword [rdi + 0x40], rax
mov rax, qword [rcx + rdx + 0x58]
mov r8, rdi
mov qword [rdi + 0x58], rax
mov dword [rdi + 0x78], ebp
mov rdx, qword [rcx + rdx + 0x28]
mov rcx, qword [rsp + 0x30]
call fcn.1800ad070
test eax, eax
je 0x1800af75a
cmp eax, 0x13
cmove eax, ebp
jmp 0x1800afb78
mov rcx, qword [rbx + 0x48]
mov r8, rsi
xor edx, edx
or r12d, 0xffffffff
call fcn.18012d640
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, ebp
mov r11, rbp
test r14, r14
jle 0x1800af8a7
lea rsi, [rax + 5]
mov rax, qword [rsp + 0x88]
nop dword [rax]
mov edx, dword [rax + r11*8]
dec edx
js 0x1800af894
movsxd rax, dword [rsi + 3]
cmp edx, r14d
jge 0x1800af921
test eax, eax
js 0x1800af921
cmp eax, dword [r13 + 0x14]
jge 0x1800af921
mov r8, qword [rbx + 0x48]
movsxd rcx, edx
cmp qword [r8 + rcx*8], rbp
jne 0x1800af921
cmp byte [rsi], bpl
je 0x1800af921
mov r9, rax
imul r9, r9, 0x38
add r9, qword [r13 + 0x20]
mov rax, qword [r9 + 0x28]
or qword [rbx], rax
mov rax, qword [rsp + 0x88]
cmp edx, r12d
mov qword [r8 + rcx*8], r9
cmovg r12d, edx
cmp byte [rax + r11*8 + 4], bpl
je 0x1800af83e
cmp r10d, 0x10
jge 0x1800af833
movzx eax, word [rsp + 0xa8]
bt eax, r10d
jb 0x1800af833
mov eax, 1
mov ecx, edx
shl ax, cl
or word [rbx + 0x22], ax
cmp byte [r9 + 0x17], 0x4a
jne 0x1800af83e
or dword [rbx + 0x1c], 2
cmp r10d, 0x1f
jg 0x1800af850
mov ecx, r10d
mov eax, 1
shl eax, cl
jmp 0x1800af852
mov eax, ebp
test dword [rdi + 0x78], eax
je 0x1800af865
mov ecx, edx
mov eax, 1
shl eax, cl
or dword [rbx + 0x30], eax
jmp 0x1800af87a
test byte [r9 + 0x14], 1
je 0x1800af87a
and dword [rdi + 0x50], 0xfffffffe
mov dword [rdi + 0x3c], ebp
mov dword [r15], 1
movzx eax, byte [r9 + 0x17]
cmp al, 0x49
jb 0x1800af88c
cmp al, 0x4a
ja 0x1800af88c
cmp dword [r15], ebp
jne 0x1800af8f7
mov rax, qword [rsp + 0x88]
inc r11
inc r10d
add rsi, 0xc
cmp r11, r14
jl 0x1800af7a0
lea eax, [r12 + 1]
mov ecx, ebp
mov word [rbx + 0x3c], ax
test r12d, r12d
js 0x1800af8d0
mov rax, qword [rbx + 0x48]
nop dword [rax + rax]
cmp qword [rax], rbp
je 0x1800af921
inc ecx
add rax, 8
cmp ecx, r12d
jle 0x1800af8c0
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], ebp
mov qword [rbx + 0x28], rax
cmp dword [rdi + 0x3c], ebp
je 0x1800af94e
mov eax, dword [rdi + 0x10]
jmp 0x1800af950
cmp dword [rdi + 0x38], ebp
je 0x1800af90c
mov rcx, qword [rdi + 0x30]
call sym.sqlite.dll_sqlite3_free
mov qword [rdi + 0x30], rbp
mov dword [rdi + 0x38], ebp
mov rax, qword [rsp + 0xb8]
mov dword [rax], 1
xor eax, eax
jmp 0x1800afb78
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.18000ef10
mov eax, 1
jmp 0x1800afb78
mov eax, ebp
movsd xmm0, qword [0x180157e40]
mov byte [rbx + 0x20], al
mov word [rbx + 0x12], bp
movsd xmm1, qword [rdi + 0x40]
mov edx, 0x28
lea r8, [0x180172040]
comisd xmm0, xmm1
movsd qword [rsp + 0xa0], xmm1
jb 0x1800af987
movzx eax, bp
jmp 0x1800afa6f
movsd xmm0, qword [0x180157ea0]
comisd xmm0, xmm1
jb 0x1800afa4e
movsd xmm0, qword [0x180157e60]
xor ecx, ecx
comisd xmm1, xmm0
jbe 0x1800af9c0
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1800af9c0
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm1
add rax, rcx
movzx ecx, dx
cmp rax, 8
jae 0x1800af9fe
cmp rax, 2
jae 0x1800af9e0
mov eax, ebp
jmp 0x1800afa6f
add rax, rax
add cx, 0xfff6
cmp rax, 8
jb 0x1800af9e0
and eax, 7
movzx eax, word [r8 + rax*2]
add ax, cx
sub ax, 0xa
jmp 0x1800afa6f
cmp rax, 0xff
jbe 0x1800afa1f
nop word [rax + rax]
shr rax, 4
add cx, dx
cmp rax, 0xff
ja 0x1800afa10
cmp rax, 0xf
jbe 0x1800afa3d
nop word [rax + rax]
shr rax, 1
add cx, 0xa
cmp rax, 0xf
ja 0x1800afa30
and eax, 7
movzx eax, word [r8 + rax*2]
add ax, cx
sub ax, 0xa
jmp 0x1800afa6f
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 0x1800afa92
cmp rax, 2
jb 0x1800afadc
add rax, rax
add dx, 0xfff6
cmp rax, 8
jb 0x1800afa83
jmp 0x1800afacd
cmp rax, 0xff
jbe 0x1800afab0
nop word [rax + rax]
shr rax, 4
add dx, 0x28
cmp rax, 0xff
ja 0x1800afaa0
cmp rax, 0xf
jbe 0x1800afacd
nop word [rax + rax]
shr rax, 1
add dx, 0xa
cmp rax, 0xf
ja 0x1800afac0
and eax, 7
movzx ebp, word [r8 + rax*2]
add bp, dx
sub bp, 0xa
mov word [rbx + 0x16], bp
test byte [rdi + 0x50], 1
je 0x1800afaef
or dword [rbx + 0x38], 0x1000
jmp 0x1800afaf6
and dword [rbx + 0x38], 0xffffefff
mov rcx, qword [rsp + 0x80]
mov rdx, rbx
call fcn.1800ad990
test byte [rbx + 0x1c], 1
mov esi, eax
je 0x1800afb76
mov rdi, qword [rbx + 0x28]
test rdi, rdi
je 0x1800afb72
cmp dword [0x180171920], 0
je 0x1800afb69
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x1800afb32
call qword [0x1801719a0]
mov rcx, rdi
call qword [0x180171958]
dec qword [0x180181138]
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1801810f0], rdx
call qword [0x180171948]
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x1800afb72
call qword [0x1801719b0]
jmp 0x1800afb72
mov rcx, rdi
call qword [0x180171948]
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