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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x158]
sub rsp, 0x258
mov rax, qword [0x1402c57e8]
xor rax, rsp
mov qword [rbp + 0x140], rax
mov rax, qword [rbp + 0x1d0]
xor r12d, r12d
cmp dword [rbp + 0x1c8], r12d
mov r13, rcx
mov qword [rbp - 0x80], rax
mov r15, r8
mov qword [rsp + 0x50], r9
mov rbx, rdx
mov qword [rax], r12
mov r14d, r12d
mov rcx, qword [rcx + 0x18]
mov eax, r12d
setne al
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x30], eax
mov esi, r12d
mov qword [rsp + 0x78], rdx
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0x40], r12
test rcx, rcx
je 0x1400ca71b
call qword [0x1402c8de0]
mov edx, 0x38
mov rcx, r13
call fcn.140159ad0
mov qword [rsp + 0x60], rax
mov rdi, rax
test rax, rax
je 0x1400ca750
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
mov qword [rdi + 0x30], rax
nop dword [rax]
xor edx, edx
lea rcx, [rbp - 0x68]
mov r8d, 0xe0
call fcn.140021160
xorps xmm0, xmm0
mov qword [rbp - 0x70], r13
xor eax, eax
mov qword [rbp + 0x130], rax
mov rax, qword [r13 + 0x160]
mov qword [rbp + 0x98], rax
lea rax, [rbp - 0x70]
mov qword [r13 + 0x160], rax
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
movups xmmword [rbp + 0x120], xmm0
cmp byte [r13 + 0x67], r12b
je 0x1400ca7d8
lea rdx, str.out_of_memory
lea rcx, [rbp - 0x70]
call fcn.14015cc50
test rdi, rdi
je 0x1400cad25
test rsi, rsi
je 0x1400ca7f1
mov rdx, rsi
mov rcx, r13
call fcn.140159920
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r12
cmp byte [r13 + 0x6f], r12b
jne 0x1400ca809
mov rcx, r13
call fcn.1400ed980
mov r9, rbx
lea rcx, [rbp - 0x70]
mov r8, r15
xor edx, edx
call fcn.140179040
mov qword [rsp + 0x58], rax
mov rbx, rax
test rax, rax
je 0x1400cacf8
movzx eax, byte [rax + 0x3f]
cmp al, 1
je 0x1400cace5
test byte [rbx + 0x30], 0x80
jne 0x1400cacdc
cmp al, 2
je 0x1400cacd3
mov qword [rdi + 0x30], rbx
mov rcx, 0xffffffffffff8000
mov rdx, qword [rbx + 0x60]
test rdx, rdx
je 0x1400ca87c
mov rax, qword [r13 + 0x20]
mov rcx, r12
add rax, 0x18
cmp qword [rax], rdx
je 0x1400ca87c
nop dword [rax]
inc rcx
lea rax, [rax + 0x20]
cmp qword [rax], rdx
jne 0x1400ca870
mov rax, qword [r13 + 0x20]
mov r15d, r12d
mov rsi, qword [rsp + 0x50]
shl rcx, 5
mov rcx, qword [rcx + rax]
mov qword [rdi + 0x28], rcx
movsx r10d, word [rbx + 0x36]
test r10d, r10d
jle 0x1400ca8f3
mov r11, qword [rbx + 8]
movsxd rax, r15d
mov r9, rsi
lea rcx, [rax + rax*2]
mov r8, qword [r11 + rcx*8]
sub r9, r8
movzx eax, byte [r8]
movzx ecx, byte [r9 + r8]
cmp eax, ecx
jne 0x1400ca8c9
test eax, eax
je 0x1400ca8f3
inc r8
jmp 0x1400ca8b3
lea rdx, [0x140282a10]
movzx edx, byte [rcx + rdx]
mov rcx, rax
lea rax, [0x140282a10]
movzx eax, byte [rcx + rax]
cmp eax, edx
jne 0x1400ca8eb
inc r8
jmp 0x1400ca8b3
inc r15d
cmp r15d, r10d
jl 0x1400ca8a2
cmp r15d, r10d
je 0x1400cacbc
cmp dword [rbp + 0x1c8], r12d
je 0x1400ca9a3
mov eax, dword [r13 + 0x30]
mov r9, r12
bt rax, 0xe
jae 0x1400ca954
mov r8, qword [rbx + 0x48]
test r8, r8
je 0x1400ca954
movsxd rdx, dword [r8 + 0x28]
test rdx, rdx
jle 0x1400ca94b
lea rcx, [r8 + 0x40]
nop dword [rax]
cmp dword [rcx], r15d
lea rax, str.foreign_key
lea rcx, [rcx + 0x10]
cmovne rax, r9
mov r9, rax
sub rdx, 1
jne 0x1400ca930
mov r8, qword [r8 + 8]
test r8, r8
jne 0x1400ca920
mov r10, qword [rbx + 0x10]
test r10, r10
je 0x1400ca99a
nop dword [rax]
movzx eax, word [r10 + 0x5e]
cmp r12w, ax
jae 0x1400ca991
mov rdx, qword [r10 + 8]
mov r8d, eax
movsx ecx, word [rdx]
cmp ecx, r15d
je 0x1400ca980
cmp cx, 0xfffe
jne 0x1400ca987
lea r9, str.indexed
add rdx, 2
sub r8, 1
jne 0x1400ca972
mov r10, qword [r10 + 0x28]
test r10, r10
jne 0x1400ca960
test r9, r9
jne 0x1400cac9e
lea rcx, [rbp - 0x70]
call fcn.140196ef0
mov rdi, rax
mov rax, qword [rsp + 0x60]
mov qword [rax + 0x18], rdi
test rdi, rdi
je 0x1400cac27
mov rcx, qword [rbx + 0x60]
mov esi, 0xffff8000
mov r14, 0xffffffffffff8000
test rcx, rcx
je 0x1400ca9fe
mov rax, qword [r13 + 0x20]
mov esi, r12d
add rax, 0x18
mov r14, r12
cmp qword [rax], rcx
je 0x1400ca9fe
nop dword [rax]
inc esi
lea rax, [rax + 0x20]
inc r14
cmp qword [rax], rcx
jne 0x1400ca9f0
mov edx, dword [rcx + 4]
mov r8d, dword [rcx]
movsxd rcx, dword [rdi + 0x90]
mov r9d, dword [rsp + 0x30]
cmp dword [rdi + 0x94], ecx
jg 0x1400caa33
mov dword [rsp + 0x28], edx
mov rcx, rdi
mov dword [rsp + 0x20], r8d
mov edx, 2
mov r8d, esi
call fcn.1400e63d0
jmp 0x1400caa60
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0xfd02
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r8d
mov dword [rax + rcx*8 + 0x10], edx
movsxd rax, dword [rdi + 0x90]
test eax, eax
jle 0x1400caa80
lea rcx, [rax + rax*2]
mov edx, 1
mov rax, qword [rdi + 0x88]
mov word [rax + rcx*8 - 0x16], dx
mov eax, dword [rdi + 0x90]
add eax, 6
cmp eax, dword [rdi + 0x94]
jle 0x1400caaaa
mov edx, 6
mov rcx, rdi
call fcn.140125470
test eax, eax
je 0x1400caaaa
mov rbx, r12
jmp 0x1400cab55
movsxd rax, dword [rdi + 0x90]
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov qword [rax + rcx*8], 0xa9
mov qword [rax + rcx*8 + 8], r12
mov qword [rax + rcx*8 + 0x10], r12
lea rbx, [rax + rcx*8]
mov qword [rbx + 0x18], WSACleanup
mov qword [rbx + 0x20], r12
mov qword [rbx + 0x28], r12
mov byte [rbx + 0x30], 0x1f
mov dword [rbx + 0x34], r12d
mov dword [rbx + 0x38], 5
mov eax, dword [rdi + 0x90]
add eax, 5
mov dword [rbx + 0x38], eax
mov eax, 1
mov dword [rbx + 0x3c], eax
mov byte [rbx + 0x31], r12b
mov qword [rbx + 0x40], r12
mov word [rbx + 0x32], r12w
mov qword [rbx + 0x48], 0x5e
mov dword [rbx + 0x50], r12d
mov dword [rbx + 0x54], eax
mov qword [rbx + 0x58], r12
mov dword [rbx + 0x60], 0x54
mov qword [rbx + 0x64], rax
mov dword [rbx + 0x6c], r12d
mov qword [rbx + 0x70], r12
mov qword [rbx + 0x78], 0x46
mov qword [rbx + 0x80], r12
mov qword [rbx + 0x88], r12
add dword [rdi + 0x90], 6
mov eax, dword [rdi + 0xcc]
bts eax, esi
mov dword [rdi + 0xcc], eax
cmp esi, 1
je 0x1400cab8e
mov rax, qword [rdi]
shl r14, 5
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + r14 + 8]
cmp byte [rcx + 0x11], r12b
je 0x1400cab8e
mov eax, dword [rdi + 0xd0]
bts eax, esi
mov dword [rdi + 0xd0], eax
mov r14, qword [rsp + 0x58]
cmp byte [r13 + 0x67], r12b
jne 0x1400cac22
mov dword [rbx + 4], esi
mov eax, dword [r14 + 0x28]
mov dword [rbx + 8], eax
mov eax, dword [rsp + 0x30]
mov dword [rbx + 0xc], eax
mov rax, qword [rdi]
cmp byte [rax + 0x67], r12b
jne 0x1400cabd0
mov rdx, qword [rdi + 0x88]
xor r9d, r9d
mov r8, qword [r14]
add rdx, 0x30
mov rcx, rdi
call fcn.1401b9a80
cmp byte [r13 + 0x67], r12b
jne 0x1400cac22
cmp dword [rbp + 0x1c8], r12d
je 0x1400cabe3
mov byte [rbx + 0x18], WSACleanup
mov eax, dword [r14 + 0x28]
lea rdx, [rbp - 0x70]
mov dword [rbx + 0x20], eax
mov rcx, rdi
mov dword [rbx + 0x24], esi
mov byte [rbx + 0x19], 0xfd
movsx eax, word [r14 + 0x36]
inc eax
mov dword [rbx + 0x28], eax
movsx eax, word [r14 + 0x36]
mov dword [rbx + 0x50], eax
mov eax, 1
mov dword [rbp - 0x38], eax
mov dword [rbp - 0x3c], eax
mov word [rbp + 0xc0], r12w
call fcn.1401a2180
mov r14d, dword [rsp + 0x34]
mov rdi, qword [rsp + 0x60]
mov word [rdi + 8], r15w
mov qword [rdi + 0x20], r13
cmp byte [r13 + 0x6f], r12b
jne 0x1400cac43
mov rcx, r13
call fcn.1400ede20
cmp byte [r13 + 0x67], r12b
jne 0x1400cad25
mov rdx, qword [rbp + 0x1c0]
lea r8, [rsp + 0x48]
mov rcx, rdi
call fcn.1400ec750
mov ebx, dword [rsp + 0x38]
mov r14d, eax
inc ebx
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x38], ebx
cmp ebx, 0x32
jge 0x1400cacb5
cmp eax, 0x11
jne 0x1400cacb5
lea rcx, [rbp - 0x70]
call fcn.14017e130
mov rsi, qword [rsp + 0x48]
mov r15, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0x40], rsi
jmp 0x1400ca750
mov r8, r9
lea rdx, str.cannot_open__s_column_for_writing
mov rcx, r13
call fcn.1401797e0
mov rsi, rax
jmp 0x1400cad0f
mov rsi, qword [rsp + 0x48]
jmp 0x1400cad2a
mov r8, rsi
lea rdx, str.no_such_column:___s_
mov rcx, r13
call fcn.1401797e0
mov rsi, rax
jmp 0x1400cad0f
lea rdx, str.cannot_open_view:__s
jmp 0x1400cacec
lea rdx, str.cannot_open_table_without_rowid:__s
jmp 0x1400cacec
lea rdx, str.cannot_open_virtual_table:__s
mov r8, r15
lea rcx, [rbp - 0x70]
call fcn.14015cc50
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x1400cad0a
mov rsi, rax
mov qword [rbp - 0x68], r12
jmp 0x1400cad0f
mov rsi, qword [rsp + 0x40]
mov r14d, 1
cmp byte [r13 + 0x6f], r12b
jne 0x1400cad43
mov rcx, r13
call fcn.1400ede20
jmp 0x1400cad43
mov rsi, qword [rsp + 0x40]
test r14d, r14d
jne 0x1400cad3e
cmp byte [r13 + 0x67], r12b
jne 0x1400cad3e
mov rax, qword [rbp - 0x80]
mov qword [rax], rdi
jmp 0x1400cad70
test rdi, rdi
je 0x1400cad70
mov rbx, qword [rdi + 0x18]
test rbx, rbx
je 0x1400cad65
cmp byte [rbx + 0xc7], 1
jb 0x1400cad5d
mov rcx, rbx
call fcn.1401a4ba0
mov rcx, rbx
call fcn.140197080
mov rdx, rdi
mov rcx, r13
call fcn.140159920
lea rax, [0x140266404]
test rsi, rsi
mov r8, r12
mov r9, rsi
cmovne r8, rax
mov edx, r14d
mov rcx, r13
call fcn.14015cd20
test rsi, rsi
je 0x1400cad9f
mov rdx, rsi
mov rcx, r13
call fcn.140159920
lea rcx, [rbp - 0x70]
call fcn.14017e130
cmp byte [r13 + 0x67], r12b
jne 0x1400cadb3
test r14d, r14d
je 0x1400cadc1
mov edx, r14d
mov rcx, r13
call fcn.1400e9750
mov r12d, eax
mov rcx, qword [r13 + 0x18]
test rcx, rcx
je 0x1400cadd0
call qword [0x1402c8df0]
mov eax, r12d
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.1401d56b0
add rsp, 0x258
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret