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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
dec dword [rcx + 0x48]
mov rsi, rcx
mov r14d, dword [rcx + 0x48]
xor ebx, ebx
mov r13, qword [rcx + 0x10]
mov rbp, r8
mov ecx, dword [rdx + 0x30]
mov r12d, r9d
and ecx, 0x80
mov dword [rsp + 0x90], r14d
mov rdi, rdx
mov r15d, ebx
mov r8d, 0x1f
mov dword [rsp + 0x98], ecx
cmp byte [rsp + 0xd8], bl
jne 0x1400fa67d
movsx eax, word [rsp + 0xc0]
test ecx, ecx
mov dword [rsp + 0x28], eax
mov edx, 0x1c
mov eax, dword [rsp + 0xb8]
cmove edx, r8d
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov r9d, r14d
mov rcx, r13
call fcn.14011a7a0
mov rax, qword [rsi]
mov ecx, dword [rax + 0x30]
bt rcx, 0xe
jae 0x1400fa6ae
cmp byte [rdi + 0x3f], bl
jne 0x1400fa6ae
mov rcx, qword [rdi + 0x60]
xor r8d, r8d
mov rdx, qword [rdi]
add rcx, 0x50
call fcn.1400b3cd0
cmp qword [rax + 0x10], rbx
jne 0x1400fa6b7
cmp qword [rdi + 0x48], rbx
jne 0x1400fa6b7
test rbp, rbp
je 0x1400faa2a
cmp byte [rdi + 0x3f], 2
movzx r14d, byte [rsp + 0xd0]
jne 0x1400fa6d1
mov r15d, 0xffffffff
jmp 0x1400fa763
mov rbx, rbp
test rbp, rbp
je 0x1400fa758
nop dword [rax]
cmp byte [rbx + 0x10], 0x81
jne 0x1400fa74f
test byte [rbx + 0x11], 3
je 0x1400fa74f
cmp byte [rbx + 0x12], 0
je 0x1400fa6fa
mov r15d, 0xffffffff
jmp 0x1400fa74f
mov rax, qword [rsi + 0xb0]
mov rcx, rsi
test rax, rax
cmovne rcx, rax
mov rax, qword [rcx + 0xc0]
test rax, rax
je 0x1400fa72b
cmp qword [rax], rbx
jne 0x1400fa722
cmp dword [rax + 0x18], r14d
je 0x1400fa746
mov rax, qword [rax + 8]
test rax, rax
jne 0x1400fa717
mov r9d, r14d
mov r8, rdi
mov rdx, rbx
mov rcx, rsi
call fcn.1400a7ca0
mov rcx, qword [rsi]
mov dword [rcx + 0x54], 0xffffffff
test rax, rax
je 0x1400fa74f
or r15d, dword [rax + 0x1c]
mov rbx, qword [rbx + 0x40]
test rbx, rbx
jne 0x1400fa6e0
movzx r14d, byte [rsp + 0xd0]
xor ebx, ebx
mov rdx, rdi
mov rcx, rsi
call fcn.1400f6e30
mov edx, dword [rsi + 0x3c]
mov r12d, eax
movsx ecx, word [rdi + 0x36]
or r12d, r15d
inc ecx
lea r15d, [rdx + 1]
add edx, ecx
mov dword [rsi + 0x3c], edx
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jg 0x1400fa7b7
mov r8d, dword [rsp + 0xb8]
mov r9d, r15d
mov edx, 0x50
mov dword [rsp + 0x20], ebx
mov rcx, r13
call fcn.1400bb2e0
xor r8d, r8d
jmp 0x1400fa7f0
mov edx, dword [rsp + 0xb8]
lea eax, [rcx + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r13 + 0x88]
xor r8d, r8d
mov dword [rax + rcx*8], 0x50
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
mov ebx, r8d
cmp r8w, word [rdi + 0x36]
jge 0x1400fa8ce
mov ebp, dword [rsp + 0xa8]
cmp r12d, 0xffffffff
je 0x1400fa81e
cmp ebx, 0x1f
jg 0x1400fa8af
bt r12d, ebx
jae 0x1400fa8af
test byte [rdi + 0x30], 0x20
je 0x1400fa88c
test bx, bx
js 0x1400fa88c
movsx eax, bx
movzx edx, r8w
mov r10d, r8d
test eax, eax
jle 0x1400fa868
mov r8, qword [rdi + 8]
mov r10d, eax
add r8, 0x12
mov r9d, eax
nop word [rax + rax]
test byte [r8], 0x20
lea ecx, [rdx + 1]
lea r8, [r8 + 0x18]
cmovne cx, dx
movzx edx, cx
sub r9, 1
jne 0x1400fa850
movsxd rax, r10d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
test byte [rax + rcx*8 + 0x12], 0x20
je 0x1400fa887
movzx eax, word [rdi + 0x38]
sub ax, dx
add ax, r10w
jmp 0x1400fa88f
movzx eax, dx
jmp 0x1400fa88f
movzx eax, bx
movsx ecx, ax
mov r9d, ebx
inc ecx
mov r8d, ebp
add ecx, r15d
mov rdx, rdi
mov dword [rsp + 0x20], ecx
mov rcx, r13
call fcn.1400ee820
xor r8d, r8d
movsx eax, word [rdi + 0x36]
inc ebx
cmp ebx, eax
jl 0x1400fa805
movzx r14d, byte [rsp + 0xd0]
mov rbp, qword [rsp + 0xa0]
mov r12d, dword [r13 + 0x90]
mov rbx, rbp
test rbp, rbp
je 0x1400fa93e
mov ebp, dword [rsp + 0x90]
cmp byte [rbx + 0x10], 0x81
jne 0x1400fa92d
cmp byte [rbx + 0x11], 1
jne 0x1400fa92d
cmp byte [rbx + 0x12], 0
jne 0x1400fa912
mov dword [rsp + 0x28], ebp
mov r9d, r15d
mov r8, rdi
mov dword [rsp + 0x20], r14d
mov rdx, rbx
mov rcx, rsi
call fcn.1400e6270
jmp 0x1400fa92d
cmp qword [rsi + 0xb0], 0
jne 0x1400fa92d
mov r9d, r15d
mov r8, rdi
mov rdx, rbx
mov rcx, rsi
call fcn.1400a78d0
mov rbx, qword [rbx + 0x40]
test rbx, rbx
jne 0x1400fa8e4
mov rbp, qword [rsp + 0xa0]
movsxd rcx, dword [r13 + 0x90]
cmp r12d, ecx
jge 0x1400fa9f5
cmp dword [rsp + 0x98], 0
mov edx, 0x1c
movsx r8d, word [rsp + 0xc0]
mov eax, 0x1f
cmove edx, eax
cmp dword [r13 + 0x94], ecx
jg 0x1400fa9a4
mov eax, dword [rsp + 0xb8]
mov rcx, r13
mov r9d, dword [rsp + 0x90]
mov dword [rsp + 0x28], r8d
mov r8d, dword [rsp + 0xa8]
mov dword [rsp + 0x20], eax
call fcn.14009bbb0
mov ebx, 0xffffffff
jmp 0x1400fa9fc
lea eax, [rcx + 1]
mov ebx, 0xffffffff
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r13 + 0x88]
mov byte [rax + rcx*8], dl
xor edx, edx
mov word [rax + rcx*8 + 2], dx
mov edx, dword [rsp + 0xa8]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x90]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rsp + 0xb8]
mov dword [rax + rcx*8 + 0xc], edx
mov dword [rax + rcx*8 + 0x10], r8d
mov byte [rax + rcx*8 + 1], 0xfd
jmp 0x1400fa9fc
mov ebx, dword [rsp + 0xe0]
xor eax, eax
xor r9d, r9d
mov dword [rsp + 0x28], eax
mov r8d, r15d
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov rcx, rsi
call fcn.1400f5d70
mov r14d, dword [rsp + 0x90]
mov r12d, dword [rsp + 0xa8]
jmp 0x1400faa31
mov ebx, dword [rsp + 0xe0]
cmp byte [rdi + 0x3f], 2
je 0x1400fac08
mov r9d, dword [rsp + 0xb0]
xor edx, edx
mov dword [rsp + 0x28], ebx
mov r8d, r12d
mov qword [rsp + 0x20], rdx
mov rcx, rsi
mov rdx, rdi
call fcn.1400fad10
movsxd rcx, dword [r13 + 0x90]
xor r11d, r11d
cmp byte [rsp + 0xc8], r11b
mov edx, r11d
setne dl
cmp dword [r13 + 0x94], ecx
jg 0x1400faa9a
mov r9d, edx
mov dword [rsp + 0x20], r11d
mov edx, 0x82
mov r8d, r12d
mov rcx, r13
call fcn.1400bb2e0
xor r11d, r11d
jmp 0x1400faac9
lea eax, [rcx + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r13 + 0x88]
mov dword [rax + rcx*8], 0x82
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r11d
mov qword [rax + rcx*8 + 0x10], r11
cmp byte [rsi + 0x1e], 0
je 0x1400fab1d
mov r8, qword [rdi]
test r8, r8
je 0x1400fab43
lea r9, str.sqlite_stat1
sub r9, r8
lea r10, [0x140171c70]
nop dword [rax + rax]
movzx edx, byte [r8]
movzx eax, byte [r9 + r8]
cmp edx, eax
jne 0x1400fab06
test edx, edx
je 0x1400fab1d
inc r8
jmp 0x1400faaf0
movzx ecx, byte [rax + r10]
movzx edx, byte [rdx + r10]
sub edx, ecx
jne 0x1400fab19
inc r8
jmp 0x1400faaf0
test edx, edx
jne 0x1400fab43
mov rax, qword [r13]
cmp byte [rax + 0x67], 0
jne 0x1400fab43
movsxd rax, dword [r13 + 0x90]
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 0x88]
mov byte [rax + rcx*8 - 0x17], 0xfb
mov qword [rax + rcx*8 - 8], rdi
movzx r8d, byte [rsp + 0xd8]
test r8b, r8b
je 0x1400fab6e
movsxd rax, dword [r13 + 0x90]
test eax, eax
jle 0x1400fab6e
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 0x88]
mov word [rax + rcx*8 - 0x16], 4
test ebx, ebx
js 0x1400fabd8
cmp ebx, r12d
je 0x1400fabd8
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jg 0x1400fabaa
xor r9d, r9d
mov dword [rsp + 0x20], r11d
mov r8d, ebx
mov edx, 0x82
mov rcx, r13
call fcn.1400bb2e0
movzx r8d, byte [rsp + 0xd8]
jmp 0x1400fabd8
lea eax, [rcx + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r13 + 0x88]
mov dword [rax + rcx*8], 0x82
mov dword [rax + rcx*8 + 4], ebx
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r11
movsxd rax, dword [r13 + 0x90]
test eax, eax
jle 0x1400fac08
mov edx, 2
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 0x88]
cmp r8b, dl
mov r12d, 0
cmovne dx, r12w
mov word [rax + rcx*8 - 0x16], dx
jmp 0x1400fac0b
xor r12d, r12d
mov rax, qword [rsi]
mov ecx, dword [rax + 0x30]
bt rcx, 0xe
jae 0x1400fac71
mov rcx, qword [rdi + 0x60]
xor r8d, r8d
mov rdx, qword [rdi]
add rcx, 0x50
call fcn.1400b3cd0
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x1400fac71
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.1400b4240
test rax, rax
je 0x1400fac68
mov dword [rsp + 0x28], r12d
mov r9d, r15d
mov r8, rdi
mov dword [rsp + 0x20], 2
mov rdx, rax
mov rcx, rsi
call fcn.1400e6270
mov rbx, qword [rbx + 0x18]
test rbx, rbx
jne 0x1400fac34
test rbp, rbp
je 0x1400facd0
cmp byte [rbp + 0x10], 0x81
jne 0x1400facc7
cmp byte [rbp + 0x11], 2
jne 0x1400facc7
cmp byte [rbp + 0x12], 0
jne 0x1400facac
movzx eax, byte [rsp + 0xd0]
mov r9d, r15d
mov dword [rsp + 0x28], r14d
mov r8, rdi
mov rdx, rbp
mov dword [rsp + 0x20], eax
mov rcx, rsi
call fcn.1400e6270
jmp 0x1400facc7
cmp qword [rsi + 0xb0], 0
jne 0x1400facc7
mov r9d, r15d
mov r8, rdi
mov rdx, rbp
mov rcx, rsi
call fcn.1400a78d0
mov rbp, qword [rbp + 0x40]
test rbp, rbp
jne 0x1400fac76
mov rcx, qword [r13 + 0x18]
not r14d
mov eax, dword [rcx + 0x4c]
add eax, dword [rcx + 0x48]
jns 0x1400facec
mov r8d, r14d
mov rdx, r13
call fcn.1400d4fb0
jmp 0x1400facfd
mov rcx, qword [rcx + 0x50]
mov eax, dword [r13 + 0x90]
movsxd rdx, r14d
mov dword [rcx + rdx*4], eax
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret