Function at 0x140214990
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 rsi, qword [r15]
mov rdi, rcx
mov qword [rsp + 0xa0], r8
mov ebp, edx
call fcn.1402155f0
mov al, byte [rdi + 0x10]
cmp al, 2
je 0x1401c8710
test ebp, ebp
jne 0x1401c8240
dec al
je 0x1401c87cf
mov rax, qword [rdi]
test byte [rax + 0x33], 2
je 0x1401c8255
cmp byte [rsi + 0x12], 0
jne 0x1401c8255
and word [r15 + 0x28], 0xfffe
mov eax, dword [r15 + 0x28]
test al, 1
je 0x1401c826b
mov ebx, 8
test ebp, ebp
je 0x1401c8276
jmp 0x1401c8801
test ebp, ebp
je 0x1401c8276
cmp byte [r15 + 0x24], 2
je 0x1401c827a
test al, 0x80
je 0x1401c8286
mov rax, qword [r15 + 0x80]
mov rax, qword [rax]
jmp 0x1401c82a7
cmp ebp, 1
jle 0x1401c82b5
mov rax, qword [r15 + 0x78]
test rax, rax
je 0x1401c82b5
mov rdx, qword [rax]
cmp rdx, rdi
je 0x1401c82a1
mov rax, qword [rdx]
jmp 0x1401c82a7
mov rax, qword [rax + 0x10]
jmp 0x1401c828f
mov ebx, 0x106
test rax, rax
jne 0x1401c8801
mov r8d, 1
mov edx, 1
mov rcx, rdi
call fcn.140205190
mov ebx, eax
test eax, eax
jne 0x1401c8801
mov eax, dword [r15 + 0x28]
and eax, 0xffffffef
cmp dword [r15 + 0x40], 0
mov word [r15 + 0x28], ax
jne 0x1401c82ed
or eax, 0x10
mov word [r15 + 0x28], ax
cmp qword [r15 + 0x18], 0
jne 0x1401c857c
mov rcx, qword [r15]
call fcn.140234450
mov ebx, eax
test eax, eax
jne 0x1401c86df
xor r9d, r9d
lea r8, [rsp + 0x38]
mov edx, 1
mov rcx, r15
call fcn.1401c8da0
mov ebx, eax
test eax, eax
jne 0x1401c857c
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 0x1401c8372
lea rdx, [r12 + 0x5c]
lea rcx, [r12 + 0x18]
mov r8d, 4
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401c8372
mov r11d, dword [rsp + 0x2c]
bswap r11d
mov r13d, r11d
mov rax, qword [r15 + 8]
test byte [rax + 0x33], 2
jne 0x1401c84fc
test r13d, r13d
je 0x1401c84fc
mov r8d, 0x10
lea rdx, str.SQLite_format_3
mov rcx, r12
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401c855f
cmp byte [r12 + 0x12], 2
jbe 0x1401c83b4
or word [r15 + 0x28], 1
cmp byte [r12 + 0x13], 2
ja 0x1401c855f
jne 0x1401c83fb
test byte [r15 + 0x28], 0x20
jne 0x1401c83fb
xor ecx, ecx
lea rdx, [rsp + 0x34]
mov dword [rsp + 0x34], ecx
mov rcx, rbx
call fcn.140233d40
mov ebx, eax
test eax, eax
jne 0x1401c8564
cmp dword [rsp + 0x34], 0
jne 0x1401c83fb
mov rcx, qword [r14 + 0x70]
call fcn.140205dd0
jmp 0x1401c8558
lea rcx, [r12 + 0x15]
mov r8d, 3
lea rdx, [0x14035bd97]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401c855f
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 0x1401c855f
lea eax, [rbx - 0x101]
cmp eax, 0xfeff
ja 0x1401c855f
movzx r8d, byte [r12 + 0x14]
mov edx, ebx
sub edx, r8d
cmp ebx, dword [r15 + 0x34]
je 0x1401c849f
mov rcx, qword [r14 + 0x70]
mov dword [rsp + 0x2c], r8d
mov dword [rsp + 0x28], edx
call fcn.140205dd0
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.1401d4500
mov r8d, dword [rsp + 0x2c]
mov rcx, qword [r15]
lea rdx, [r15 + 0x34]
call fcn.140234300
mov ebx, eax
jmp 0x1401c8573
cmp dword [rsp + 0x28], r13d
jae 0x1401c84ce
mov rax, qword [r15 + 8]
mov r13d, dword [rsp + 0x28]
mov rax, qword [rax + 0x30]
and eax, 0x10000001
dec rax
je 0x1401c84ce
mov ecx, 0x11d7b
call fcn.140219db0
mov ebx, eax
jmp 0x1401c8564
cmp edx, 0x1df
jbe 0x1401c855f
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 0x1401c84ff
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 0x1401c82ed
mov ebx, 0x1a
mov rcx, qword [r14 + 0x70]
call fcn.140205dd0
xor edx, edx
mov qword [r15 + 0x18], rdx
test ebx, ebx
je 0x1401c8558
jmp 0x1401c86df
test ebx, ebx
jne 0x1401c86df
test ebp, ebp
je 0x1401c86db
test byte [r15 + 0x28], 1
je 0x1401c859d
mov ebx, 8
jmp 0x1401c86df
mov rax, qword [rdi]
mov ebx, dword [rsi + 0x30]
mov al, byte [rax + 0x66]
test ebx, ebx
jne 0x1401c86be
cmp al, 2
sete byte [rsi + 0x1a]
cmp byte [rsi + 0x15], 1
jne 0x1401c86b2
mov rax, qword [rsi + 0x128]
test rax, rax
je 0x1401c8685
cmp byte [rsi + 8], 0
je 0x1401c860b
cmp byte [rax + 0x3f], 0
jne 0x1401c860b
mov edx, 4
mov rcx, rsi
call fcn.1402002f0
mov ebx, eax
test eax, eax
jne 0x1401c86be
mov rbx, qword [rsi + 0x128]
movsx edx, word [rbx + 0x3c]
mov rcx, rbx
add edx, 3
call fcn.1402699b0
mov byte [rbx + 0x3f], 1
mov r13, qword [rsi + 0x128]
cmp byte [r13 + 0x42], 0
jne 0x1401c8593
mov r8d, 1
xor edx, edx
mov rcx, r13
call fcn.1402693c0
mov ebx, eax
test eax, eax
jne 0x1401c86be
mov rax, qword [r13 + 0x30]
mov byte [r13 + 0x40], 1
lea rcx, [r13 + 0x48]
mov r8d, 0x30
mov rdx, qword [rax]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401c866e
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 0x1401c86b2
mov r8d, 1
xor edx, edx
mov rcx, r13
call fcn.140269990
mov byte [r13 + 0x40], 0
jmp 0x1401c86c6
mov edx, 2
mov rcx, rsi
call fcn.1402002f0
mov ebx, eax
cmp ebp, 1
jle 0x1401c86ac
test eax, eax
jne 0x1401c86be
mov edx, 4
mov rcx, rsi
call fcn.140201cd0
mov ebx, eax
test ebx, ebx
je 0x1401c8656
jmp 0x1401c86be
mov rcx, r15
call fcn.1401fe930
mov ebx, eax
jmp 0x1401c86db
cmp ebx, 0x205
jne 0x1401c86df
cmp byte [r15 + 0x24], 1
sbb ebx, ebx
and ebx, 0xfffffe00
add ebx, 0x205
jmp 0x1401c86df
test ebx, ebx
je 0x1401c8741
mov rcx, r15
call fcn.140264770
cmp bl, 5
jne 0x1401c8801
cmp byte [r15 + 0x24], 0
jne 0x1401c8801
mov rcx, r15
call fcn.1401c8f50
test eax, eax
jne 0x1401c82ed
jmp 0x1401c8801
cmp qword [rsp + 0xa0], 0
je 0x1401c8732
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 0x1401c87ba
xor ebx, ebx
jmp 0x1401c8801
cmp byte [rdi + 0x10], 0
jne 0x1401c8765
inc dword [r15 + 0x3c]
cmp byte [rdi + 0x11], 0
je 0x1401c8765
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 0x1401c8779
mov byte [r15 + 0x24], al
test ebp, ebp
je 0x1401c87cf
mov eax, dword [r15 + 0x28]
mov r13, qword [r15 + 0x18]
mov qword [r15 + 0x80], rdi
and eax, 0xffffffbf
cmp ebp, 1
jle 0x1401c8797
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 0x1401c87e3
cmp qword [rsp + 0xa0], 0
jne 0x1401c871b
mov rax, qword [rdi]
mov rcx, rsi
mov edx, dword [rax + 0x2f0]
call fcn.140233d20
mov ebx, eax
jmp 0x1401c8801
cmp qword [rsp + 0xa0], 0
jne 0x1401c871b
jmp 0x1401c873a
mov rcx, qword [r13 + 0x70]
call fcn.140234990
mov ebx, eax
test eax, eax
jne 0x1401c8801
mov eax, dword [r15 + 0x40]
mov rdx, qword [r13 + 0x50]
bswap eax
mov dword [rdx + 0x1c], eax
jmp 0x1401c87ab
mov rcx, rdi
call fcn.140216a90
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 0x1402149a5
mov al, byte [rcx + 0x10]
test al, al
je 0x1402149a5
dec al
jne 0x1402149aa
test edx, edx
je 0x1402149aa
jmp 0x1401c8200
mov r9, qword [rcx + 8]
test r8, r8
je 0x1402149c3
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 0x1402149d8
mov rax, qword [rcx]
mov rcx, qword [r9]
mov edx, dword [rax + 0x2f0]
jmp fcn.140233d20
xor eax, eax
ret