Function at 0x140109290
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov r15, qword [rcx + 8]
mov rdi, rcx
mov rsi, qword [r15]
mov ebp, edx
mov qword [rsp + 0xa0], r8
call fcn.140109ef0
mov al, byte [rdi + 0x10]
cmp al, 2
je 0x1400bb740
test ebp, ebp
jne 0x1400bb270
dec al
je 0x1400bb7ff
mov rax, qword [rdi]
test byte [rax + 0x33], 2
je 0x1400bb285
cmp byte [rsi + 0x12], 0
jne 0x1400bb285
and word [r15 + 0x28], 0xfffe
mov eax, dword [r15 + 0x28]
test al, 1
je 0x1400bb29b
test ebp, ebp
mov ebx, 8
je 0x1400bb2a6
jmp 0x1400bb831
test ebp, ebp
je 0x1400bb2a6
cmp byte [r15 + 0x24], 2
je 0x1400bb2aa
test al, 0x80
je 0x1400bb2b6
mov rax, qword [r15 + 0x80]
mov rax, qword [rax]
jmp 0x1400bb2d7
cmp ebp, 1
jle 0x1400bb2e5
mov rax, qword [r15 + 0x78]
test rax, rax
je 0x1400bb2e5
mov rdx, qword [rax]
cmp rdx, rdi
je 0x1400bb2d1
mov rax, qword [rdx]
jmp 0x1400bb2d7
mov rax, qword [rax + 0x10]
jmp 0x1400bb2bf
test rax, rax
mov ebx, 0x106
jne 0x1400bb831
mov r8d, 1
mov edx, 1
mov rcx, rdi
call fcn.1400f9850
test eax, eax
mov ebx, eax
jne 0x1400bb831
mov eax, dword [r15 + 0x28]
and eax, 0xffffffef
cmp dword [r15 + 0x40], 0
mov word [r15 + 0x28], ax
jne 0x1400bb31d
or eax, 0x10
mov word [r15 + 0x28], ax
cmp qword [r15 + 0x18], 0
jne 0x1400bb5ac
mov rcx, qword [r15]
call fcn.14012acc0
test eax, eax
mov ebx, eax
jne 0x1400bb70f
xor r9d, r9d
mov edx, 1
mov rcx, r15
lea r8, [rsp + 0x38]
call fcn.1400bbdd0
test eax, eax
mov ebx, eax
jne 0x1400bb5ac
mov r14, qword [rsp + 0x38]
mov rbx, qword [r15]
mov r12, qword [r14 + 0x50]
mov eax, dword [rbx + 0x20]
mov r11d, dword [r12 + 0x1c]
mov dword [rsp + 0x28], eax
mov r13d, eax
test r11d, r11d
mov dword [rsp + 0x2c], r11d
je 0x1400bb3a2
lea rdx, [r12 + 0x5c]
mov r8d, 4
lea rcx, [r12 + 0x18]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x1400bb3a2
mov r11d, dword [rsp + 0x2c]
bswap r11d
mov r13d, r11d
mov rax, qword [r15 + 8]
test byte [rax + 0x33], 2
jne 0x1400bb52c
test r13d, r13d
je 0x1400bb52c
lea rdx, str.SQLite_format_3
mov r8d, 0x10
mov rcx, r12
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x1400bb58f
cmp byte [r12 + 0x12], 2
jbe 0x1400bb3e4
or word [r15 + 0x28], 1
cmp byte [r12 + 0x13], 2
ja 0x1400bb58f
jne 0x1400bb42b
test byte [r15 + 0x28], 0x20
jne 0x1400bb42b
lea rdx, [rsp + 0x34]
xor ecx, ecx
mov dword [rsp + 0x34], ecx
mov rcx, rbx
call fcn.14012a5b0
test eax, eax
mov ebx, eax
jne 0x1400bb594
cmp dword [rsp + 0x34], 0
jne 0x1400bb42b
mov rcx, qword [r14 + 0x70]
call fcn.1400fa4a0
jmp 0x1400bb588
lea rcx, [r12 + 0x15]
mov r8d, 3
lea rdx, [0x1401985a3]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x1400bb58f
movzx ebx, byte [r12 + 0x10]
movzx eax, byte [r12 + 0x11]
shl ebx, 8
shl eax, 0x10
or ebx, eax
lea eax, [rbx - 1]
test eax, ebx
jne 0x1400bb58f
lea eax, [rbx - 0x101]
cmp eax, 0xfeff
ja 0x1400bb58f
movzx r8d, byte [r12 + 0x14]
mov edx, ebx
sub edx, r8d
cmp ebx, dword [r15 + 0x34]
je 0x1400bb4cf
mov rcx, qword [r14 + 0x70]
mov dword [rsp + 0x2c], r8d
mov dword [rsp + 0x28], edx
call fcn.1400fa4a0
mov edx, dword [rsp + 0x28]
mov dword [r15 + 0x34], ebx
mov rcx, r15
or word [r15 + 0x28], 2
mov dword [r15 + 0x38], edx
call fcn.1400c78f0
mov r8d, dword [rsp + 0x2c]
lea rdx, [r15 + 0x34]
mov rcx, qword [r15]
call fcn.14012ab70
mov ebx, eax
jmp 0x1400bb5a3
cmp dword [rsp + 0x28], r13d
jae 0x1400bb4fe
mov rax, qword [r15 + 8]
mov r13d, dword [rsp + 0x28]
mov rax, qword [rax + 0x30]
and eax, 0x10000001
dec rax
je 0x1400bb4fe
mov ecx, 0x120cf
call fcn.14010e7b0
mov ebx, eax
jmp 0x1400bb594
cmp edx, 0x1df
jbe 0x1400bb58f
or word [r15 + 0x28], 2
mov dword [r15 + 0x38], edx
cmp dword [r12 + 0x34], 0
setne byte [r15 + 0x21]
cmp dword [r12 + 0x40], 0
setne byte [r15 + 0x22]
jmp 0x1400bb52f
xor r13d, r13d
mov r9d, dword [r15 + 0x38]
mov r11d, 0xff
xor edx, edx
mov qword [r15 + 0x18], r14
mov dword [r15 + 0x40], r13d
lea r8d, [r9 - 0xc]
sub r9d, 0x23
mov eax, r8d
mov word [r15 + 0x2e], r9w
shl eax, 6
div r11d
xor edx, edx
lea ecx, [rax - 0x17]
mov eax, r8d
shl eax, 5
mov word [r15 + 0x2a], cx
div r11d
sub eax, 0x17
mov word [r15 + 0x2c], ax
mov word [r15 + 0x30], ax
mov eax, 0x7f
cmp cx, ax
cmova ecx, eax
mov byte [r15 + 0x25], cl
xor ebx, ebx
jmp 0x1400bb31d
mov ebx, 0x1a
mov rcx, qword [r14 + 0x70]
call fcn.1400fa4a0
xor edx, edx
mov qword [r15 + 0x18], rdx
test ebx, ebx
je 0x1400bb588
jmp 0x1400bb70f
test ebx, ebx
jne 0x1400bb70f
test ebp, ebp
je 0x1400bb70b
test byte [r15 + 0x28], 1
je 0x1400bb5cd
mov ebx, 8
jmp 0x1400bb70f
mov ebx, dword [rsi + 0x30]
mov rax, qword [rdi]
test ebx, ebx
mov al, byte [rax + 0x66]
jne 0x1400bb6ee
cmp al, 2
sete byte [rsi + 0x1a]
cmp byte [rsi + 0x15], 1
jne 0x1400bb6e2
mov rax, qword [rsi + 0x128]
test rax, rax
je 0x1400bb6b5
cmp byte [rsi + 8], 0
je 0x1400bb63b
cmp byte [rax + 0x3f], 0
jne 0x1400bb63b
mov edx, 4
mov rcx, rsi
call fcn.1400f4990
test eax, eax
mov ebx, eax
jne 0x1400bb6ee
mov rbx, qword [rsi + 0x128]
movsx edx, word [rbx + 0x3c]
mov rcx, rbx
add edx, 3
call fcn.140160a60
mov byte [rbx + 0x3f], 1
mov r13, qword [rsi + 0x128]
cmp byte [r13 + 0x42], 0
jne 0x1400bb5c3
xor edx, edx
mov r8d, 1
mov rcx, r13
call fcn.140160470
test eax, eax
mov ebx, eax
jne 0x1400bb6ee
mov rax, qword [r13 + 0x30]
mov byte [r13 + 0x40], 1
lea rcx, [r13 + 0x48]
mov r8d, 0x30
mov rdx, qword [rax]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x1400bb69e
mov eax, dword [rsi + 0x20]
mov byte [rsi + 0x15], 2
mov dword [rsi + 0x2c], eax
mov dword [rsi + 0x28], eax
mov dword [rsi + 0x24], eax
xor eax, eax
mov qword [rsi + 0x60], rax
jmp 0x1400bb6e2
mov r8d, 1
xor edx, edx
mov rcx, r13
call fcn.140160a40
mov byte [r13 + 0x40], 0
jmp 0x1400bb6f6
mov edx, 2
mov rcx, rsi
call fcn.1400f4990
cmp ebp, 1
mov ebx, eax
jle 0x1400bb6dc
test eax, eax
jne 0x1400bb6ee
mov edx, 4
mov rcx, rsi
call fcn.1400f6380
mov ebx, eax
test ebx, ebx
je 0x1400bb686
jmp 0x1400bb6ee
mov rcx, r15
call fcn.1400f2fe0
mov ebx, eax
jmp 0x1400bb70b
cmp ebx, 0x205
jne 0x1400bb70f
cmp byte [r15 + 0x24], 1
sbb ebx, ebx
and ebx, 0xfffffe00
add ebx, 0x205
jmp 0x1400bb70f
test ebx, ebx
je 0x1400bb771
mov rcx, r15
call fcn.14015b710
cmp bl, 5
jne 0x1400bb831
cmp byte [r15 + 0x24], 0
jne 0x1400bb831
mov rcx, r15
call fcn.1400bbf80
test eax, eax
jne 0x1400bb31d
jmp 0x1400bb831
cmp qword [rsp + 0xa0], 0
je 0x1400bb762
mov rax, qword [r15 + 0x18]
mov rdx, qword [rsp + 0xa0]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [rdx], eax
test ebp, ebp
jne 0x1400bb7ea
xor ebx, ebx
jmp 0x1400bb831
cmp byte [rdi + 0x10], 0
jne 0x1400bb795
inc dword [r15 + 0x3c]
cmp byte [rdi + 0x11], 0
je 0x1400bb795
mov byte [rdi + 0x3c], 1
mov rax, qword [r15 + 0x78]
mov qword [rdi + 0x40], rax
lea rax, [rdi + 0x30]
mov qword [r15 + 0x78], rax
cmp ebp, 1
mov al, 1
sbb al, 0xff
mov byte [rdi + 0x10], al
cmp byte [r15 + 0x24], al
jae 0x1400bb7a9
mov byte [r15 + 0x24], al
test ebp, ebp
je 0x1400bb7ff
mov eax, dword [r15 + 0x28]
mov qword [r15 + 0x80], rdi
mov r13, qword [r15 + 0x18]
and eax, 0xffffffbf
cmp ebp, 1
jle 0x1400bb7c7
or eax, 0x40
mov word [r15 + 0x28], ax
mov rax, qword [r13 + 0x50]
mov eax, dword [rax + 0x1c]
bswap eax
cmp dword [r15 + 0x40], eax
jne 0x1400bb813
cmp qword [rsp + 0xa0], 0
jne 0x1400bb74b
mov rax, qword [rdi]
mov rcx, rsi
mov edx, dword [rax + 0x2f0]
call fcn.14012a590
mov ebx, eax
jmp 0x1400bb831
cmp qword [rsp + 0xa0], 0
jne 0x1400bb74b
jmp 0x1400bb76a
mov rcx, qword [r13 + 0x70]
call fcn.14012b210
test eax, eax
mov ebx, eax
jne 0x1400bb831
mov eax, dword [r15 + 0x40]
mov rdx, qword [r13 + 0x50]
bswap eax
mov dword [rdx + 0x1c], eax
jmp 0x1400bb7db
mov rcx, rdi
call fcn.14010b3f0
mov eax, ebx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rcx + 0x11], 0
jne 0x1401092a5
mov al, byte [rcx + 0x10]
test al, al
je 0x1401092a5
dec al
jne 0x1401092aa
test edx, edx
je 0x1401092aa
jmp 0x1400bb230
test r8, r8
mov r9, qword [rcx + 8]
je 0x1401092c3
mov rax, qword [r9 + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [r8], eax
test edx, edx
je 0x1401092d8
mov rax, qword [rcx]
mov rcx, qword [r9]
mov edx, dword [rax + 0x2f0]
jmp fcn.14012a590
xor eax, eax
ret