Function at 0x14016c040
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, 0x58
xor r13d, r13d
mov r8d, dword [rdx + 0x30]
mov rbx, qword [rcx + 0x10]
mov r12, qword [rdx + 0x28]
mov qword [rsp + 0xa0], rcx
mov r14, rdx
test r8d, r8d
jg 0x14016c0a9
jmp 0x14016c152
movsxd rax, dword [rbx + 0x90]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
lea rax, [rax + rcx*8 - 0x18]
mov byte [rax + 1], 0xf9
mov qword [rax + 0x10], rdx
add r13d, 1
add r12, 0x20
cmp dword [r14 + 0x30], r13d
jle 0x14016c152
mov rax, qword [r12]
mov r8d, dword [r12 + 0x18]
mov edx, dword [rbx + 0x90]
mov rdi, qword [rax + 0x20]
test r8d, r8d
jns 0x14016c168
xor r9d, r9d
test rdi, rdi
je 0x14016c0d0
mov r9d, dword [rdi]
mov r8d, dword [r14 + 0x20]
add r8d, dword [r14 + 0xc]
add r8d, r13d
cmp dword [rbx + 0x94], edx
jle 0x14016c408
lea eax, [rdx + 1]
movsxd rdx, edx
mov dword [rbx + 0x90], eax
mov rax, qword [rbx + 0x88]
lea rdx, [rdx + rdx*2]
lea rax, [rax + rdx*8]
mov dword [rax + 4], r8d
mov dword [rax + 8], r9d
mov dword [rax + 0xc], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0xa5
mov rcx, qword [rbx]
mov rdx, qword [r12 + 8]
cmp byte [rcx + 0x67], 0
je 0x14016c078
test byte [rdx + 4], 0x10
je 0x14016c097
call sym.sqlite3DbNNFreeNN
add r13d, 1
add r12, 0x20
cmp dword [r14 + 0x30], r13d
jg 0x14016c0a9
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15d, dword [rdi]
cmp r15d, 1
je 0x14016c4a0
mov rsi, qword [rsp + 0xa0]
mov ecx, dword [rsi + 0x28]
cmp r15d, ecx
jg 0x14016c428
mov esi, dword [rsi + 0x2c]
sub ecx, r15d
lea r9d, [r15 + rsi]
mov dword [rsp + 0x3c], esi
mov rsi, qword [rsp + 0xa0]
mov dword [rsi + 0x2c], r9d
mov dword [rsi + 0x28], ecx
xor ebp, ebp
cmp byte [r12 + 0x1c], 0
je 0x14016c1c3
mov rax, qword [rax + 0x10]
cmp byte [r12 + 0x1d], 1
mov rax, qword [rax + 0x20]
mov ebp, dword [rax]
adc ebp, 0
mov ecx, dword [rbx + 0x94]
cmp ecx, edx
jle 0x14016c4d8
movsxd rax, edx
lea r9d, [rdx + 1]
mov dword [rsp + 0x4c], edx
lea r10, [rax + rax*2]
mov rax, qword [rbx + 0x88]
mov dword [rsp + 0x48], r9d
mov dword [rbx + 0x90], r9d
lea rax, [rax + r10*8]
mov dword [rax + 4], r8d
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x24
mov esi, r15d
sub esi, 1
js 0x14016c2c3
mov r10d, dword [rsp + 0x3c]
mov qword [rsp + 0x40], rdi
add esi, ebp
mov rdi, rbx
sub r10d, ebp
mov ebx, r10d
jmp 0x14016c284
lea edx, [r9 + 1]
movd xmm0, r8d
movd xmm1, esi
movsxd rax, r9d
lea r9, [rax + rax*2]
mov rax, qword [rdi + 0x88]
punpckldq xmm0, xmm1
mov dword [rdi + 0x90], edx
lea rax, [rax + r9*8]
mov r9d, edx
mov dword [rax + 0xc], r11d
mov qword [rax + 0x10], 0
mov dword [rax], 0x5e
movq qword [rax + 4], xmm0
lea eax, [rsi - 1]
cmp esi, ebp
je 0x14016c2bb
mov esi, eax
mov r8d, dword [r12 + 0x18]
lea r11d, [rbx + rsi]
cmp r9d, ecx
jl 0x14016c238
mov dword [rsp + 0x20], r11d
mov r9d, esi
mov rcx, rdi
mov edx, 0x5e
call sym.growOp3
mov r9d, dword [rdi + 0x90]
mov ecx, dword [rdi + 0x94]
lea eax, [rsi - 1]
cmp esi, ebp
jne 0x14016c282
mov rbx, rdi
mov rdi, qword [rsp + 0x40]
mov eax, dword [r14 + 0x20]
add eax, dword [r14 + 0xc]
add eax, r13d
cmp r9d, ecx
jge 0x14016c538
lea edx, [r9 + 1]
movsxd r9, r9d
mov esi, dword [rsp + 0x3c]
mov dword [rbx + 0x90], edx
mov rdx, qword [rbx + 0x88]
lea rcx, [r9 + r9*2]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 8], esi
mov dword [rdx + 0xc], eax
mov qword [rdx + 0x10], 0
mov qword [rdx], 0xa2
mov rcx, qword [rbx]
mov rdx, qword [r12 + 8]
cmp byte [rcx + 0x67], 0
jne 0x14016c448
movsxd rcx, dword [rbx + 0x90]
lea r8, [rcx + rcx*2]
mov rax, rcx
mov rcx, qword [rbx + 0x88]
lea rcx, [rcx + r8*8 - 0x18]
mov byte [rcx + 1], 0xf9
mov qword [rcx + 0x10], rdx
test eax, eax
jle 0x14016c35e
mov rcx, qword [rbx + 0x88]
movsxd rdx, eax
lea rdx, [rdx + rdx*2]
lea rdx, [rcx + rdx*8]
movzx ecx, r15b
mov word [rdx - 0x16], cx
mov r8d, dword [r12 + 0x18]
cmp dword [rbx + 0x94], eax
jle 0x14016c510
lea edx, [rax + 1]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
mov esi, dword [rsp + 0x48]
mov dword [rbx + 0x90], edx
lea rax, [rax + rcx*8]
mov dword [rax + 4], r8d
mov dword [rax + 8], esi
mov dword [rax + 0xc], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x27
mov rcx, qword [rbx]
lea rax, [0x1402ba140]
cmp byte [rcx + 0x67], 0
jne 0x14016c3cb
movsxd rax, dword [rsp + 0x4c]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
cmp r15d, 1
je 0x14016c460
mov rax, qword [rsp + 0xa0]
cmp r15d, dword [rax + 0x28]
jle 0x14016c0cd
movd xmm2, dword [rsp + 0x3c]
movd xmm0, r15d
punpckldq xmm0, xmm2
movq qword [rax + 0x28], xmm0
jmp 0x14016c0cd
mov dword [rsp + 0x20], 0
mov edx, 0xa5
mov rcx, rbx
call sym.growOp3
jmp 0x14016c11f
mov ecx, dword [rsi + 0x38]
lea esi, [rcx + 1]
add ecx, r15d
mov dword [rsp + 0x3c], esi
mov rsi, qword [rsp + 0xa0]
mov dword [rsi + 0x38], ecx
jmp 0x14016c1a6
test byte [rdx + 4], 0x10
jne 0x14016c560
movsxd rax, dword [rbx + 0x90]
jmp 0x14016c340
mov esi, dword [rsp + 0x3c]
test esi, esi
je 0x14016c0cd
mov rax, qword [rsp + 0xa0]
movzx eax, byte [rax + 0x1f]
cmp al, 7
ja 0x14016c0cd
mov r10, qword [rsp + 0xa0]
lea ecx, [rax + 1]
mov byte [r10 + 0x1f], cl
mov dword [r10 + rax*4 + 0xe8], esi
jmp 0x14016c0cd
mov rcx, qword [rsp + 0xa0]
movzx ecx, byte [rcx + 0x1f]
test cl, cl
je 0x14016c571
mov rsi, qword [rsp + 0xa0]
sub ecx, 1
mov byte [rsi + 0x1f], cl
movzx ecx, cl
mov ecx, dword [rsi + rcx*4 + 0xe8]
mov dword [rsp + 0x3c], ecx
jmp 0x14016c1a6
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov rcx, rbx
mov edx, 0x24
call sym.growOp3
mov r9d, dword [rbx + 0x90]
mov ecx, dword [rbx + 0x94]
mov dword [rsp + 0x4c], eax
add eax, 1
mov dword [rsp + 0x48], eax
jmp 0x14016c211
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x48]
mov edx, 0x27
mov rcx, rbx
call sym.growOp3
mov edx, dword [rbx + 0x90]
jmp 0x14016c3a7
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0x3c]
xor r8d, r8d
mov rcx, rbx
mov edx, 0xa2
call sym.growOp3
jmp 0x14016c30c
call sym.sqlite3DbNNFreeNN
movsxd rax, dword [rbx + 0x90]
jmp 0x14016c340
mov rcx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa0]
mov ecx, dword [rcx + 0x38]
add ecx, 1
mov dword [rsp + 0x3c], ecx
mov dword [rsi + 0x38], ecx
jmp 0x14016c1a6