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

Disassembly:
push rbp
push rsi
push r13
push r15
lea rbp, [rsp - 0xd8]
sub rsp, 0x1d8
mov rax, qword [0x1800bddb0]
xor rax, rsp
mov qword [rbp + 0xb8], rax
mov r10, qword [rcx + 0x48]
xor esi, esi
xor eax, eax
mov dword [rbp - 0x30], r9d
mov qword [rbp - 0x28], r8
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], r10
mov r9, rcx
mov r13d, esi
mov dword [rsp + 0x44], esi
mov r15d, esi
mov dword [rbp - 0x50], esi
mov dword [rbp + 0xb0], eax
mov byte [rbp + 0xb4], al
mov dword [rbp - 0x80], esi
mov qword [rbp - 0x58], rsi
test r8, r8
jne 0x180014cd1
lea eax, [rsi + 7]
jmp 0x1800161d8
movzx ecx, word [rcx + 0x12]
movzx r8d, byte [r9 + 1]
mov qword [rsp + 0x218], rbx
mov qword [rsp + 0x1d0], rdi
lea ebx, [r8 + rcx]
mov qword [rsp + 0x1c8], r12
mov qword [rsp + 0x1c0], r14
cmp ebx, 2
jge 0x180014d0c
mov r11d, esi
mov dword [rsp + 0x5c], esi
jmp 0x180014d47
test edx, edx
jne 0x180014d19
mov r11d, esi
mov dword [rsp + 0x5c], esi
jmp 0x180014d3a
cmp edx, ebx
jne 0x180014d31
mov eax, dword [rbp + 0x120]
lea r11d, [rax - 2]
add r11d, ebx
mov dword [rsp + 0x5c], r11d
jmp 0x180014d40
lea r11d, [rdx - 1]
mov dword [rsp + 0x5c], r11d
mov eax, dword [rbp + 0x120]
mov ebx, 2
sub ebx, eax
lea eax, [rbx + 1]
mov dword [rsp + 0x50], eax
mov eax, r11d
sub eax, r8d
add eax, ebx
cmp eax, ecx
jne 0x180014d67
movzx eax, byte [r9 + 5]
add eax, 8
movsxd rcx, eax
jmp 0x180014d8a
mov rax, qword [r9 + 0x60]
movsxd rcx, r11d
movsxd rdx, ebx
sub rdx, r8
add rdx, rcx
movzx ecx, word [rax + rdx*2]
movzx eax, word [r9 + 0x14]
ror cx, 8
movzx ecx, cx
and rcx, rax
add rcx, qword [r9 + 0x50]
movsxd rdi, ebx
movsxd r12, r11d
mov r14d, dword [rcx]
mov qword [rbp - 0x20], rcx
bswap r14d
mov dword [rsp + 0x78], r14d
mov dword [rsp + 0x58], r14d
lea rax, [0x1800a9d94]
cmp r14d, dword [r10 + 0x3c]
jbe 0x180014de8
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
mov r9d, 0xeae6
mov ecx, 0xb
mov qword [rsp + 0x20], rax
call sym.sqlite3.dll_sqlite3_log
mov r14d, 0xb
mov dword [rsp + 0x40], r14d
jmp 0x180014e91
mov rcx, qword [r10]
lea r8, [rbp + 0xa0]
xor r9d, r9d
mov edx, r14d
call fcn.180058cb0
mov r14d, eax
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x180014e91
mov rdx, qword [rbp + 0xa0]
mov rax, qword [rdx + 0x10]
mov qword [rbp + rdi*8 + 0x18], rax
cmp byte [rax], r15b
jne 0x180014e8a
mov rcx, qword [rdx + 0x10]
mov r8d, dword [rsp + 0x78]
cmp r8d, dword [rcx + 0x88]
je 0x180014e60
mov rax, qword [rdx + 8]
mov qword [rcx + 0x70], rdx
cmp r8d, 1
mov qword [rcx + 0x50], rax
mov rax, qword [rsp + 0x60]
mov edx, 0x64
mov qword [rcx + 0x48], rax
mov eax, esi
mov dword [rcx + 0x88], r8d
cmove eax, edx
mov byte [rcx + 5], al
mov rcx, qword [rbp + rdi*8 + 0x18]
call fcn.1800173f0
mov r14d, eax
mov dword [rsp + 0x40], eax
test eax, eax
je 0x180014e8a
mov rcx, qword [rbp + rdi*8 + 0x18]
test rcx, rcx
je 0x180014e91
mov rcx, qword [rcx + 0x70]
call fcn.18005a290
jmp 0x180014e91
mov r14d, esi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x48], r14d
test r14d, r14d
jne 0x18001500e
mov rax, qword [rbp + rdi*8 + 0x18]
dec rdi
movzx edx, word [rax + 0x12]
movzx ecx, byte [rax + 1]
mov eax, ebx
add ecx, r13d
lea r13d, [rdx + 1]
dec ebx
add r13d, ecx
test eax, eax
je 0x18001502e
mov r8, qword [rsp + 0x68]
mov eax, dword [rsp + 0x5c]
movzx ecx, word [r8 + 0x16]
add eax, ebx
cmp eax, ecx
jne 0x180014f19
cmp byte [r8 + 1], r15b
je 0x180014f19
mov rdx, qword [r8 + 0x20]
mov rcx, r8
mov r14d, dword [rdx]
mov qword [rbp + rdi*8 - 0x48], rdx
bswap r14d
mov dword [rsp + 0x78], r14d
mov dword [rsp + 0x58], r14d
call qword [r8 + 0x78]
mov rdx, qword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
movzx eax, ax
mov dword [rbp + rdi*4 - 0x18], eax
mov byte [rdx + 1], r15b
jmp 0x180014da8
movzx eax, byte [r8 + 1]
mov rcx, r12
sub rcx, rax
mov rax, qword [r8 + 0x60]
add rcx, rdi
movzx ecx, word [rax + rcx*2]
movzx eax, word [r8 + 0x14]
ror cx, 8
movzx r14d, cx
mov rcx, r8
and r14, rax
add r14, qword [r8 + 0x50]
mov rdx, r14
mov qword [rbp + rdi*8 - 0x48], r14
mov eax, dword [r14]
bswap eax
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x58], eax
call qword [r8 + 0x78]
mov r8, qword [rsp + 0x60]
movzx esi, ax
test byte [r8 + 0x26], 4
mov dword [rbp + rdi*4 - 0x18], esi
je 0x180014faf
mov rdx, qword [rsp + 0x68]
mov ecx, r14d
sub ecx, dword [rdx + 0x50]
lea eax, [rsi + rcx]
cmp eax, dword [r8 + 0x34]
jg 0x180014fde
movsxd rcx, ecx
mov r8d, esi
mov rdx, r14
add rcx, qword [rbp - 0x28]
call fcn.180091e20
mov rcx, qword [rsp + 0x68]
mov rax, qword [rbp - 0x28]
sub rax, qword [rcx + 0x50]
add rax, r14
mov qword [rbp + rdi*8 - 0x48], rax
jmp 0x180014fb4
mov rcx, qword [rsp + 0x68]
movzx eax, byte [rcx + 1]
mov edx, dword [rsp + 0x5c]
lea r9, [rsp + 0x48]
sub edx, eax
mov r8d, esi
add edx, ebx
call fcn.18001f680
mov r14d, dword [rsp + 0x78]
mov r10, qword [rsp + 0x60]
xor esi, esi
jmp 0x180014da8
lea rax, [0x1800a9d94]
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
mov r9d, 0xfed7
mov ecx, 0xb
mov qword [rsp + 0x20], rax
call sym.sqlite3.dll_sqlite3_log
mov r14d, 0xb
lea eax, [rbx + 1]
lea rcx, [rbp + 0x18]
xor edx, edx
movsxd r8, eax
shl r8, 3
call fcn.180092be0
xor r12d, r12d
mov esi, r12d
jmp 0x180015fc4
mov rax, qword [rsp + 0x60]
lea ebx, [r13 + 3]
mov eax, dword [rax + 0x30]
and ebx, 0xfffffffc
lea ecx, [rbx + rbx*4]
lea ecx, [rax + rcx*2]
call fcn.180062430
mov r14, rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x70], rax
test rax, rax
jne 0x180015067
xor r12d, r12d
lea r14d, [rax + 7]
mov esi, r12d
jmp 0x180015fc4
movsxd rax, ebx
mov r13d, esi
mov r12, rsi
lea rdx, [r14 + rax*8]
mov qword [rbp - 0x68], rdx
lea rax, [rdx + rax*2]
mov qword [rbp + 0xa0], rax
mov rax, qword [rbp + 0x18]
movzx r8d, byte [rax + 4]
mov qword [rbp - 0x78], rax
movzx eax, byte [rax + 3]
shl r8w, 2
mov dword [rbp - 0x60], eax
mov qword [rbp - 0x38], rax
mov eax, dword [rsp + 0x50]
mov word [rsp + 0x4c], r8w
test eax, eax
jg 0x180015214
mov rax, qword [rsp + 0x60]
xor r12d, r12d
movzx ecx, r8w
mov eax, dword [rax + 0x34]
mov r15d, r12d
add eax, 0xfffffff4
add ecx, eax
movsxd rax, dword [rsp + 0x50]
mov dword [rsp + 0x70], ecx
mov r13, rax
test eax, eax
jle 0x180015145
nop dword [rax]
mov rbx, qword [rbp + r15*8 + 0x18]
mov edi, ecx
movzx eax, word [rbx + 0x10]
sub edi, eax
mov dword [rbp + r15*4 - 0x18], edi
js 0x180015452
mov r14d, r12d
cmp byte [rbx + 1], r12b
jbe 0x18001512f
lea rsi, [rbx + 0x20]
mov rdx, qword [rsi]
mov rcx, rbx
call qword [rbx + 0x78]
inc r14d
lea rsi, [rsi + 8]
movzx eax, ax
add eax, 2
add edi, eax
movzx eax, byte [rbx + 1]
cmp r14d, eax
jl 0x180015105
mov ecx, dword [rsp + 0x70]
mov dword [rbp + r15*4 - 0x18], edi
mov eax, dword [rbp + r15*4 + 0x70]
inc r15
mov dword [rbp + r15*4 - 4], eax
cmp r15, r13
jl 0x1800150e0
mov eax, dword [rsp + 0x50]
mov r13d, eax
mov dword [rsp + 0x54], eax
mov r15d, r12d
test eax, eax
jle 0x1800155ab
mov r8d, dword [rbp - 0x80]
lea rdi, [rbp]
mov r14d, 1
sub rdi, 4
mov rsi, r12
mov qword [rbp + 0xa0], rdi
cmp dword [rbp + rsi - 0x18], ecx
jle 0x1800154ae
nop dword [rax]
cmp r14d, r13d
jl 0x1800151a2
lea r13d, [r14 + 1]
mov dword [rsp + 0x54], r13d
cmp rsi, 0xc
jg 0x180015595
mov dword [rbp + rsi - 0x14], r12d
mov dword [rbp + rsi + 4], r8d
movsxd rbx, dword [rbp + rsi]
mov rcx, qword [rbp - 0x68]
lea edi, [rbx - 1]
movsxd rax, edi
movzx eax, word [rcx + rax*2]
test ax, ax
jne 0x1800151c9
lea rcx, [rbp - 0x80]
mov edx, edi
call fcn.18001bb60
mov rcx, qword [rbp - 0x68]
movzx eax, ax
add eax, 2
sub dword [rbp + rsi - 0x18], eax
cmp qword [rbp - 0x38], r12
jne 0x18001548d
cmp ebx, dword [rbp - 0x80]
jge 0x18001548a
mov rax, rbx
movzx eax, word [rcx + rbx*2]
test ax, ax
jne 0x1800151fd
lea rcx, [rbp - 0x80]
mov edx, ebx
call fcn.18001bb60
movzx eax, ax
add eax, 2
jmp 0x18001548d
mov rdx, qword [rbp - 0x68]
mov r14, qword [rbp + r12*8 + 0x18]
mov rax, qword [rbp + 0x18]
mov rdi, qword [r14 + 0x50]
mov rcx, qword [rax + 0x50]
movzx ebx, word [r14 + 0xe]
movzx eax, byte [rcx]
movzx esi, word [r14 + 0x14]
add rbx, rdi
cmp byte [rdi], al
jne 0x180015417
movzx ecx, word [r14 + 0x12]
movzx eax, byte [r14 + 1]
add ecx, eax
movsxd rax, dword [rbp - 0x80]
movsxd r8, ecx
lea rcx, [rdx + rax*2]
xor edx, edx
add r8, r8
call fcn.180092be0
cmp byte [r14 + 1], 0
jbe 0x1800152e2
movzx eax, word [r14 + 0x16]
mov r9d, dword [rbp - 0x80]
mov r10, qword [rbp - 0x58]
test eax, eax
jle 0x1800152a7
movzx r8d, si
mov edx, eax
nop dword [rax]
movzx eax, word [rbx]
add rbx, 2
ror ax, 8
movzx ecx, ax
movsxd rax, r9d
inc r9d
and rcx, r8
add rcx, rdi
mov qword [r10 + rax*8], rcx
dec rdx
jne 0x180015280
mov dword [rbp - 0x80], r9d
xor r8d, r8d
cmp byte [r14 + 1], r8b
jbe 0x1800152e2
lea rdx, [r14 + 0x20]
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx]
movsxd rcx, r9d
inc r8d
mov qword [r10 + rcx*8], rax
movzx eax, byte [r14 + 1]
inc r9d
lea rdx, [rdx + 8]
cmp r8d, eax
jl 0x1800152c0
mov dword [rbp - 0x80], r9d
movzx eax, word [r14 + 0x12]
movzx edx, word [r14 + 0xe]
add eax, eax
cdqe
add rax, rdi
add rdx, rax
xor eax, eax
mov r9, rdx
mov r8d, eax
sub r9, rbx
inc r9
shr r9, 1
cmp rbx, rdx
cmova r9, rax
test r9, r9
je 0x18001534a
mov r10, qword [rbp - 0x58]
movzx edx, si
mov esi, dword [rbp - 0x80]
nop dword [rax]
movzx eax, word [rbx]
inc r8
lea rbx, [rbx + 2]
ror ax, 8
movzx ecx, ax
movsxd rax, esi
inc esi
and rcx, rdx
add rcx, rdi
mov qword [r10 + rax*8], rcx
cmp r8, r9
jb 0x180015320
mov dword [rbp - 0x80], esi
jmp 0x18001534d
mov esi, dword [rbp - 0x80]
mov eax, dword [rsp + 0x50]
mov dword [rbp + r12*4 + 0x70], esi
dec eax
cmp r13d, eax
jge 0x1800153f8
cmp qword [rbp - 0x38], 0
jne 0x1800153f8
movzx ecx, word [rbp + r12*4 - 0x18]
mov rax, qword [rbp - 0x68]
mov rdx, qword [rbp + r12*8 - 0x48]
movsxd rbx, r15d
mov r8d, ecx
add r15d, ecx
add rbx, qword [rbp + 0xa0]
movsxd rdi, esi
lea rsi, [rax + rdi*2]
mov word [rsi], cx
mov rcx, rbx
call fcn.180091e20
movzx r8d, word [rsp + 0x4c]
mov rcx, qword [rbp - 0x58]
lea rax, [rbx + r8]
mov qword [rcx + rdi*8], rax
sub word [rsi], r8w
cmp byte [r14 + 4], 0
jne 0x1800153cc
mov rax, qword [r14 + 0x50]
mov rcx, qword [rcx + rdi*8]
inc dword [rbp - 0x80]
mov eax, dword [rax + 8]
mov dword [rcx], eax
jmp 0x1800153fe
cmp word [rsi], 4
jae 0x1800153f3
mov rcx, qword [rbp + 0xa0]
movsxd rax, r15d
add rcx, rax
nop
mov byte [rcx], 0
inc word [rsi]
inc r15d
cmp word [rsi], 4
lea rcx, [rcx + 1]
jb 0x1800153e0
inc dword [rbp - 0x80]
jmp 0x1800153fe
movzx r8d, word [rsp + 0x4c]
movsxd rcx, dword [rsp + 0x50]
inc r12
inc r13d
cmp r12, rcx
jl 0x180015210
jmp 0x1800150b2
mov r9d, 0xff1a
lea rax, [0x1800a9d94]
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
mov ecx, 0xb
mov qword [rsp + 0x20], rax
call sym.sqlite3.dll_sqlite3_log
xor r12d, r12d
mov r14d, 0xb
mov esi, r12d
jmp 0x180015fc4
mov r9d, 0xff7c
lea rax, [0x1800a9d94]
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
mov ecx, 0xb
mov qword [rsp + 0x20], rax
call sym.sqlite3.dll_sqlite3_log
mov r14d, 0xb
mov esi, r12d
jmp 0x180015fc4
mov eax, r12d
mov ecx, dword [rsp + 0x70]
add dword [rbp + rsi - 0x14], eax
mov r8d, dword [rbp - 0x80]
mov dword [rbp + rsi], edi
cmp dword [rbp + rsi - 0x18], ecx
jg 0x180015180
mov rdi, qword [rbp + 0xa0]
cmp dword [rbp + rsi], r8d
jge 0x180015559
mov r9, qword [rbp - 0x68]
mov edi, dword [rsp + 0x70]
mov r13, qword [rbp - 0x38]
nop word [rax + rax]
movsxd rbx, dword [rbp + rsi]
mov rax, rbx
movzx eax, word [r9 + rbx*2]
test ax, ax
jne 0x1800154f5
lea rcx, [rbp - 0x80]
mov edx, ebx
call fcn.18001bb60
mov r8d, dword [rbp - 0x80]
mov r9, qword [rbp - 0x68]
mov edx, dword [rbp + rsi - 0x18]
movzx ecx, ax
add ecx, 2
add edx, ecx
cmp edx, edi
jg 0x18001554d
inc ebx
mov dword [rbp + rsi - 0x18], edx
mov dword [rbp + rsi], ebx
test r13, r13
jne 0x180015544
cmp ebx, r8d
jge 0x180015541
movsxd rax, ebx
movzx eax, word [r9 + rax*2]
test ax, ax
jne 0x180015539
lea rcx, [rbp - 0x80]
mov edx, ebx
call fcn.18001bb60
mov r8d, dword [rbp - 0x80]
mov r9, qword [rbp - 0x68]
movzx ecx, ax
add ecx, 2
jmp 0x180015544
mov ecx, r12d
sub dword [rbp + rsi - 0x14], ecx
cmp ebx, r8d
jl 0x1800154d0
mov r13d, dword [rsp + 0x54]
mov rdi, qword [rbp + 0xa0]
mov ecx, dword [rbp + rsi]
cmp ecx, r8d
jl 0x18001556c
mov r13d, r14d
mov dword [rsp + 0x54], r14d
jmp 0x18001557d
test r15d, r15d
jle 0x180015576
mov eax, dword [rdi + rsi]
jmp 0x180015579
mov eax, r12d
cmp ecx, eax
jle 0x1800155a0
inc r15d
inc r14d
add rsi, 4
cmp r15d, r13d
jge 0x1800155ab
mov ecx, dword [rsp + 0x70]
jmp 0x180015173
mov r9d, 0xff88
jmp 0x180015458
mov r9d, 0xffa9
jmp 0x180015458
lea eax, [r13 - 1]
movsxd r13, eax
mov r12, r13
test eax, eax
jle 0x1800156ce
lea rax, [rbp]
lea rcx, [rbp - 0x18]
sub rax, rcx
add rax, 0xfffffffffffffffc
mov qword [rbp + 0xa0], rax
nop dword [rax]
nop word [rax + rax]
mov ebx, dword [rbp + r12*4 - 4]
mov rdi, qword [rbp - 0x68]
mov r15d, dword [rbp + r12*4 - 0x1c]
mov esi, dword [rbp + r12*4 - 0x18]
dec ebx
lea rax, [rbp + r12*4 - 0x1c]
mov edx, ebx
sub edx, dword [rbp - 0x60]
inc edx
movsxd rax, edx
lea r14, [rdi + rax*2]
cmp word [r14], 0
jne 0x180015618
lea rcx, [rbp - 0x80]
call fcn.18001bb60
movsxd rax, ebx
lea rdi, [rdi + rax*2]
nop
cmp word [rdi], 0
jne 0x180015631
lea rcx, [rbp - 0x80]
mov edx, ebx
call fcn.18001bb60
test esi, esi
je 0x18001566b
cmp dword [rbp + 0x120], 0
jne 0x180015693
mov ecx, dword [rsp + 0x54]
mov eax, 2
mov edx, r15d
dec ecx
cmp r13d, ecx
mov ecx, 0
cmove eax, ecx
lea ecx, [rsi + 2]
sub edx, eax
movzx eax, word [rdi]
sub edx, eax
movzx eax, word [r14]
add ecx, eax
cmp ecx, edx
jg 0x180015693
movzx eax, word [r14]
mov ecx, 0xfffffffe
mov dword [rbp + r12*4 - 4], ebx
add eax, 2
sub rdi, 2
sub r14, 2
add esi, eax
movzx eax, word [rdi + 2]
sub ecx, eax
add r15d, ecx
dec ebx
jns 0x180015620
lea rax, [rbp + r12*4 - 0x1c]
mov dword [rbp + r12*4 - 0x18], esi
mov dword [rax], r15d
cmp r12, 1
jle 0x1800156b2
mov rcx, qword [rbp + 0xa0]
mov eax, dword [rax + rcx]
jmp 0x1800156b4
xor eax, eax
cmp dword [rbp + r12*4 - 4], eax
jle 0x180015767
dec r12
dec r13d
test r12, r12
jg 0x1800155e0
mov rax, qword [rbp + 0x18]
movsxd rsi, dword [rsp + 0x54]
xor r12d, r12d
mov rcx, qword [rax + 0x50]
mov edi, r12d
movzx r15d, byte [rcx]
mov dword [rbp - 0x48], r15d
test rsi, rsi
jle 0x18001586f
lea r13d, [r12 + 1]
nop word [rax + rax]
movsxd rcx, dword [rsp + 0x50]
cmp rdi, rcx
jge 0x1800157b7
mov rax, qword [rbp + rdi*8 + 0x18]
mov qword [rbp + rdi*8 + 0x18], r12
mov qword [rbp + rdi*8 + 0x30], rax
mov rbx, qword [rax + 0x70]
mov qword [rbp + 0xa0], rax
mov rcx, qword [rbx + 0x20]
mov r14d, dword [rcx + 0x30]
mov dword [rsp + 0x40], r14d
test r14d, r14d
jne 0x1800157a0
test byte [rbx + 0x2c], 4
je 0x18001577c
mov eax, dword [rbx + 0x28]
cmp dword [rcx + 0x20], eax
jb 0x18001577c
cmp dword [rcx + 0x80], r12d
je 0x180015772
mov rcx, rbx
call fcn.18007f580
test eax, eax
je 0x180015772
mov rcx, rbx
call fcn.18007f6c0
jmp 0x180015799
mov r9d, 0xffd3
jmp 0x18001541d
mov r14d, r12d
mov dword [rsp + 0x40], r12d
jmp 0x1800157a0
mov eax, dword [rcx + 0xbc]
cmp dword [rcx + 0xb8], eax
mov rcx, rbx
jbe 0x180015794
call fcn.180030be0
jmp 0x180015799
call fcn.180031f40
mov r14d, eax
mov dword [rsp + 0x40], eax
inc dword [rsp + 0x44]
mov dword [rsp + 0x48], r14d
test r14d, r14d
jne 0x180015fc0
jmp 0x180015863
mov r9d, dword [rsp + 0x78]
cmp dword [rbp + 0x120], r12d
mov rcx, qword [rsp + 0x60]
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0xa0]
cmovne r9d, r13d
mov byte [rsp + 0x20], r12b
call fcn.180012030
mov r14d, eax
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x180015fc0
mov rbx, qword [rbp + 0xa0]
mov edx, r15d
mov rcx, rbx
call fcn.1800917f0
mov rcx, qword [rsp + 0x60]
mov eax, dword [rbp - 0x80]
inc dword [rsp + 0x44]
mov qword [rbp + rdi*8 + 0x30], rbx
mov dword [rbp + rdi*4 + 0x70], eax
cmp byte [rcx + 0x21], r12b
je 0x180015859
mov edx, dword [rbx + 0x88]
lea rax, [rsp + 0x48]
mov r8b, 5
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x68]
mov r9d, dword [rax + 0x88]
call fcn.180033fa0
mov r14d, dword [rsp + 0x48]
mov dword [rsp + 0x40], r14d
test r14d, r14d
jne 0x180015fc0
mov r8d, dword [rsp + 0x58]
mov dword [rsp + 0x78], r8d
inc rdi
cmp rdi, rsi
jl 0x180015700
movsxd rsi, dword [rsp + 0x44]
mov rdx, r12
mov r14, rsi
test esi, esi
jle 0x1800158cf
nop
mov rax, qword [rbp + rdx*8 + 0x30]
mov r8d, dword [rax + 0x88]
mov rax, qword [rax + 0x70]
movzx ecx, word [rax + 0x2c]
mov dword [rbp + rdx*4 + 0x88], r8d
mov dword [rbp + rdx*4 + 0x58], r8d
mov rax, r12
mov word [rbp + rdx*2 + 0xa0], cx
test rdx, rdx
jle 0x1800158c7
cmp dword [rbp + rax*4 + 0x88], r8d
je 0x180015a58
inc rax
cmp rax, rdx
jl 0x1800158b1
inc rdx
cmp rdx, rsi
jl 0x180015880
mov rdi, r12
test esi, esi
jle 0x180015995
mov r15d, 1
mov r10d, r12d
mov rbx, r12
mov edx, r15d
mov rcx, r15
cmp r15, r14
jge 0x180015927
mov r9, r12
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rbp + r9 + 0x58]
lea r8, [rcx*4]
cmp dword [rbp + r8 + 0x58], eax
jae 0x18001591d
mov r10d, edx
mov rbx, rcx
mov r9, r8
inc rcx
inc edx
cmp rcx, r14
jl 0x180015900
mov esi, dword [rbp + rbx*4 + 0x58]
mov dword [rbp + rbx*4 + 0x58], 0xffffffff
cmp rbx, rdi
je 0x180015981
jle 0x18001595a
mov rax, qword [rsp + 0x60]
mov edx, dword [rax + 0x3c]
mov rax, qword [rbp + rbx*8 + 0x30]
mov rcx, qword [rax + 0x70]
inc edx
add edx, r10d
mov word [rcx + 0x2c], r12w
call fcn.18005b120
mov rax, qword [rbp + rdi*8 + 0x30]
mov edx, esi
mov rcx, qword [rax + 0x70]
movzx eax, word [rbp + rbx*2 + 0xa0]
mov word [rcx + 0x2c], ax
call fcn.18005b120
mov rax, qword [rbp + rdi*8 + 0x30]
mov dword [rax + 0x88], esi
inc rdi
cmp rdi, r14
jl 0x1800158e0
mov r15d, dword [rbp - 0x48]
mov esi, dword [rsp + 0x44]
mov rax, qword [rbp + r14*8 + 0x28]
mov ecx, dword [rax + 0x88]
mov rax, qword [rbp - 0x20]
bswap ecx
mov dword [rax], ecx
test r15b, 8
jne 0x1800159dd
movsxd rdx, dword [rsp + 0x50]
cmp edx, esi
je 0x1800159dd
lea rcx, [rbp + 0x18]
cmp esi, edx
lea rax, [rbp + 0x30]
cmovle rax, rcx
mov rax, qword [rax + rdx*8 - 8]
mov rdx, qword [rax + 0x50]
mov rax, qword [rbp + r14*8 + 0x28]
mov rcx, qword [rax + 0x50]
mov eax, dword [rdx + 8]
mov dword [rcx + 8], eax
mov r10, qword [rsp + 0x60]
cmp byte [r10 + 0x21], r12b
je 0x180015bf7
mov rbx, qword [rbp + 0x30]
mov r13d, dword [rbp - 0x80]
mov edx, dword [r10 + 0x34]
movzx r9d, word [rbx + 0x12]
movzx eax, byte [rbx + 1]
mov r12, qword [rbx + 0x50]
add r9d, eax
xor esi, esi
mov dword [rsp + 0x54], edx
mov dword [rsp + 0x58], r9d
test r13d, r13d
jle 0x180015bff
mov rax, qword [rbp - 0x68]
mov r13, qword [rbp - 0x58]
lea rcx, [rbp + 0x30]
lea r8, [rbp]
mov qword [rbp - 0x48], rax
xor edi, edi
mov qword [rbp + 0xa0], rcx
mov qword [rsp + 0x78], r8
nop
mov r15, qword [r13]
cmp esi, r9d
jne 0x180015ac2
inc rdi
cmp rdi, r14
jge 0x180015a8d
mov rdx, qword [rbp + rdi*8 + 0x30]
jmp 0x180015a92
lea rax, [0x1800a9d94]
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
mov r9d, 0x1001d
mov ecx, 0xb
mov qword [rsp + 0x20], rax
call sym.sqlite3.dll_sqlite3_log
mov r14d, 0xb
jmp 0x180015fc4
mov rdx, qword [rbp + rdi*8 + 0x18]
movzx eax, byte [rdx + 1]
movzx ecx, word [rdx + 0x12]
mov r12, qword [rdx + 0x50]
mov edx, dword [rsp + 0x54]
add ecx, eax
xor eax, eax
cmp dword [rbp - 0x60], eax
sete al
add r9d, eax
mov rax, qword [rbp - 0x48]
add r9d, ecx
mov rcx, qword [rbp + 0xa0]
mov dword [rsp + 0x58], r9d
cmp esi, dword [r8]
jne 0x180015aea
mov rbx, qword [rcx + 8]
add rcx, 8
add r8, 4
cmp qword [rbp - 0x38], 0
mov qword [rsp + 0x78], r8
mov qword [rbp + 0xa0], rcx
je 0x180015bd0
cmp rdi, r14
jge 0x180015b12
mov eax, dword [rbp + rdi*4 + 0x88]
cmp dword [rbx + 0x88], eax
jne 0x180015b12
cmp r15, r12
jb 0x180015b12
movsxd rax, edx
add rax, r12
cmp r15, rax
jb 0x180015bcc
cmp word [rsp + 0x4c], 0
jne 0x180015b43
mov edx, dword [r15]
mov r9d, dword [rbx + 0x88]
lea rax, [rsp + 0x48]
bswap edx
mov r8b, 5
mov rcx, r10
mov qword [rsp + 0x20], rax
call fcn.180033fa0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
mov rax, qword [rbp - 0x48]
movzx eax, word [rax]
test ax, ax
jne 0x180015b5a
lea rcx, [rbp - 0x80]
mov edx, esi
call fcn.18001bb60
cmp ax, word [rbx + 0xc]
jbe 0x180015bb6
cmp dword [rsp + 0x40], 0
jne 0x18001603a
lea r8, [rbp + 0x58]
mov rdx, r15
mov rcx, rbx
call qword [rbx + 0x80]
movzx eax, word [rbp + 0x6c]
cmp eax, dword [rbp + 0x68]
jae 0x180015bc2
movzx eax, word [rbp + 0x6e]
mov r9d, dword [rbx + 0x88]
mov rcx, qword [rbx + 0x48]
mov edx, dword [rax + r15 - 4]
lea rax, [rsp + 0x48]
mov r8b, 3
bswap edx
mov qword [rsp + 0x20], rax
call fcn.180033fa0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
jmp 0x180015bba
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x18001603a
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0x78]
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp + 0xa0]
mov r9d, dword [rsp + 0x58]
mov edx, dword [rsp + 0x54]
add rax, 2
inc esi
add r13, 8
mov qword [rbp - 0x48], rax
cmp esi, dword [rbp - 0x80]
jl 0x180015a40
mov rbx, qword [rbp + 0x30]
mov r13d, dword [rbp - 0x80]
mov eax, dword [rsp + 0x44]
xor r15d, r15d
dec eax
movsxd r12, eax
test eax, eax
jle 0x180015d49
nop dword [rax]
nop word [rax + rax]
movsxd rax, dword [rbp + r15*4]
mov rcx, qword [rbp - 0x58]
mov rsi, qword [rbp + r15*8 + 0x30]
movzx r9d, word [rsp + 0x4c]
movsxd rdi, dword [rbp - 0x50]
mov rbx, qword [rcx + rax*8]
add rdi, qword [rbp - 0x28]
lea rdx, [rcx + rax*8]
mov rcx, qword [rbp - 0x68]
movzx ecx, word [rcx + rax*2]
add r9d, ecx
cmp byte [rsi + 4], 0
jne 0x180015c63
mov rcx, qword [rsi + 0x50]
mov eax, dword [rbx]
mov dword [rcx + 8], eax
jmp 0x180015cf3
cmp qword [rbp - 0x38], 0
je 0x180015cd8
mov rdx, qword [rdx - 8]
lea r8, [rbp + 0x88]
mov rcx, rsi
call qword [rsi + 0x80]
mov rdx, qword [rbp + 0x88]
mov rbx, rdi
lea rcx, [rdi + 4]
cmp rdx, 0x7f
ja 0x180015ca4
and dl, 0x7f
mov eax, 1
xor edi, edi
lea r9d, [rax + 4]
mov byte [rcx], dl
jmp 0x180015cf3
cmp rdx, 0x3fff
ja 0x180015ccb
mov rax, rdx
and dl, 0x7f
shr rax, 7
mov byte [rcx + 1], dl
or al, 0x80
xor edi, edi
mov byte [rcx], al
mov eax, 2
lea r9d, [rax + 4]
jmp 0x180015cf3
call fcn.180034910
xor edi, edi
lea r9d, [rax + 4]
jmp 0x180015cf3
sub rbx, 4
cmp ecx, 4
jne 0x180015cf3
mov rax, qword [rsp + 0x68]
mov rdx, rbx
mov rcx, rax
call qword [rax + 0x78]
movzx r9d, ax
mov rcx, qword [rsp + 0x68]
add dword [rbp - 0x50], r9d
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov eax, dword [rsi + 0x88]
mov r8, rbx
mov ebx, dword [rsp + 0x5c]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov edx, ebx
call fcn.18002a240
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x18001603a
inc ebx
inc r15
mov dword [rsp + 0x5c], ebx
cmp r15, r12
jl 0x180015c20
mov rbx, qword [rbp + 0x30]
mov r15d, dword [rsp + 0x44]
mov esi, 1
sub esi, r15d
cmp esi, r15d
jge 0x180015e1b
mov edi, dword [rbp]
mov eax, esi
cdq
xor eax, edx
sub eax, edx
movsxd rbx, eax
cmp byte [rbp + rbx + 0xb0], 0
jne 0x180015e0c
test esi, esi
jns 0x180015d8c
mov ecx, dword [rbp + rbx*4 - 4]
cmp dword [rbp + rbx*4 + 0x6c], ecx
jl 0x180015e0c
xor r12d, r12d
test eax, eax
jne 0x180015d9e
mov edx, r12d
mov r8d, r12d
mov r9d, edi
jmp 0x180015dce
cmp eax, dword [rsp + 0x50]
mov eax, dword [rbp - 0x60]
jge 0x180015db5
test eax, eax
mov edx, r12d
sete dl
add edx, dword [rbp + rbx*4 + 0x6c]
jmp 0x180015db8
mov edx, r13d
mov r9d, dword [rbp + rbx*4]
test eax, eax
mov r8d, r12d
sete r8b
add r8d, dword [rbp + rbx*4 - 4]
sub r9d, r8d
mov rcx, qword [rbp + rbx*8 + 0x30]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
call fcn.18001f920
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x180016042
movzx ecx, word [rsp + 0x70]
mov rax, qword [rbp + rbx*8 + 0x30]
mov byte [rbp + rbx + 0xb0], 1
sub cx, word [rbp + rbx*4 - 0x18]
mov word [rax + 0x10], cx
inc esi
cmp esi, r15d
jl 0x180015d62
mov rbx, qword [rbp + 0x30]
cmp dword [rbp - 0x30], 0
je 0x180015f23
mov rdi, qword [rsp + 0x68]
cmp word [rdi + 0x12], 0
jne 0x180015f23
movzx eax, byte [rdi + 5]
cmp ax, word [rbx + 0x10]
ja 0x180015f23
mov rcx, rbx
call fcn.18001e750
mov r15, qword [rbp + 0x30]
xor r12d, r12d
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x180015f86
mov rsi, qword [rdi + 0x50]
mov r9, qword [r15 + 0x50]
mov rdx, qword [rsp + 0x68]
cmp dword [rdx + 0x88], 1
movzx ebx, byte [r15 + 5]
mov r13, qword [r15 + 0x48]
mov ecx, 0x64
mov edi, r12d
cmove edi, ecx
add rbx, r9
movzx r8d, byte [rbx + 5]
movzx eax, byte [rbx + 6]
shl r8d, 8
or r8d, eax
mov eax, dword [r13 + 0x34]
movsxd rcx, r8d
sub eax, r8d
lea rdx, [r9 + rcx]
mov r8d, eax
add rcx, rsi
call fcn.180091e20
movzx ecx, word [r15 + 0x12]
movzx eax, word [r15 + 0xe]
lea ecx, [rax + rcx*2]
mov rdx, rbx
movsxd r8, ecx
movsxd rcx, edi
add rcx, rsi
call fcn.180091e20
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
mov byte [rbx], r12b
call fcn.1800173f0
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x180015f86
cmp byte [r13 + 0x21], r12b
je 0x180015f06
mov rcx, rbx
call fcn.18003a530
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x180015f86
mov rcx, qword [rbp + 0x30]
mov rdx, rcx
mov r8d, dword [rcx + 0x88]
mov rcx, qword [rcx + 0x48]
call fcn.180026730
mov dword [rsp + 0x40], eax
jmp 0x180015f86
mov r10, qword [rsp + 0x60]
xor r12d, r12d
cmp byte [r10 + 0x21], r12b
je 0x180015f82
cmp word [rsp + 0x4c], r12w
jne 0x180015f82
mov ebx, r12d
test r14, r14
jle 0x180015f82
mov rcx, qword [rbp + rbx*8 + 0x30]
mov r8b, 5
mov rax, qword [rcx + 0x50]
mov r9d, dword [rcx + 0x88]
mov rcx, r10
mov edx, dword [rax + 8]
lea rax, [rsp + 0x48]
bswap edx
mov qword [rsp + 0x20], rax
call fcn.180033fa0
mov r10, qword [rsp + 0x60]
inc rbx
cmp rbx, r14
jl 0x180015f41
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
jmp 0x180015f86
mov eax, dword [rsp + 0x40]
movsxd rcx, dword [rsp + 0x50]
mov rdi, rcx
cmp r14, rcx
jge 0x180015fbb
mov rcx, qword [rbp + r14*8 + 0x18]
test eax, eax
jne 0x180015faf
mov r8d, dword [rcx + 0x88]
mov rdx, rcx
mov rcx, qword [rcx + 0x48]
call fcn.180026730
inc r14
cmp r14, rdi
jl 0x180015f93
mov dword [rsp + 0x40], eax
mov r14d, dword [rsp + 0x40]
mov esi, dword [rsp + 0x44]
mov rcx, qword [rbp - 0x58]
call fcn.180062350
movsxd rax, dword [rsp + 0x50]
mov rdi, r12
mov r15, rax
test eax, eax
jle 0x1800160ca
mov r8, qword [rbp + rdi*8 + 0x18]
test r8, r8
je 0x1800160be
mov r8, qword [r8 + 0x70]
test byte [r8 + 0x2c], 0x20
mov rbx, qword [r8 + 0x20]
je 0x18001604f
dec dword [rbx + 0x98]
mov rax, qword [rbx + 0xa8]
mov qword [r8 + 0x18], rax
mov rcx, qword [rbx + 0x48]
movsxd rax, dword [rbx + 0xbc]
mov qword [rbx + 0xa8], r8
mov edx, dword [r8 + 0x28]
mov r9, qword [rcx]
mov r8, qword [r8 + 8]
dec edx
imul rdx, rax
call qword [r9 + 0x90]
jmp 0x180016057
xor r12d, r12d
jmp 0x180015fbb
mov r14d, dword [rsp + 0x40]
mov esi, r15d
jmp 0x180015fc4
mov rcx, r8
call fcn.18005b1f0
cmp dword [rbx + 0x98], 0
jne 0x1800160be
mov rax, qword [rbx + 0x110]
cmp dword [rax + 0x18], 0
jne 0x1800160be
movzx eax, byte [rbx + 0x15]
cmp al, 6
je 0x1800160b6
test al, al
je 0x1800160b6
cmp al, 2
jb 0x1800160a3
mov rax, qword [0x1800bf4a8]
test rax, rax
je 0x18001608b
call rax
mov rcx, rbx
call fcn.180059940
mov rax, qword [0x1800bf4b0]
test rax, rax
je 0x1800160b6
call rax
jmp 0x1800160b6
cmp byte [rbx + 8], 0
jne 0x1800160b6
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800311a0
mov rcx, rbx
call fcn.180031df0
inc rdi
cmp rdi, r15
jl 0x180015fe0
movsxd rdi, esi
test esi, esi
jle 0x1800161b5
nop word [rax + rax]
mov r8, qword [rbp + r12*8 + 0x30]
test r8, r8
je 0x1800161a9
mov r8, qword [r8 + 0x70]
test byte [r8 + 0x2c], 0x20
mov rbx, qword [r8 + 0x20]
je 0x18001613a
dec dword [rbx + 0x98]
mov rax, qword [rbx + 0xa8]
mov qword [r8 + 0x18], rax
mov rcx, qword [rbx + 0x48]
movsxd rax, dword [rbx + 0xbc]
mov qword [rbx + 0xa8], r8
mov edx, dword [r8 + 0x28]
mov r9, qword [rcx]
mov r8, qword [r8 + 8]
dec edx
imul rdx, rax
call qword [r9 + 0x90]
jmp 0x180016142
mov rcx, r8
call fcn.18005b1f0
cmp dword [rbx + 0x98], 0
jne 0x1800161a9
mov rax, qword [rbx + 0x110]
cmp dword [rax + 0x18], 0
jne 0x1800161a9
movzx eax, byte [rbx + 0x15]
cmp al, 6
je 0x1800161a1
test al, al
je 0x1800161a1
cmp al, 2
jb 0x18001618e
mov rax, qword [0x1800bf4a8]
test rax, rax
je 0x180016176
call rax
mov rcx, rbx
call fcn.180059940
mov rax, qword [0x1800bf4b0]
test rax, rax
je 0x1800161a1
call rax
jmp 0x1800161a1
cmp byte [rbx + 8], 0
jne 0x1800161a1
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1800311a0
mov rcx, rbx
call fcn.180031df0
inc r12
cmp r12, rdi
jl 0x1800160e0
mov r12, qword [rsp + 0x1c8]
mov rdi, qword [rsp + 0x1d0]
mov rbx, qword [rsp + 0x218]
mov eax, r14d
mov r14, qword [rsp + 0x1c0]
mov rcx, qword [rbp + 0xb8]
xor rcx, rsp
call fcn.180092ad0
add rsp, 0x1d8
pop r15
pop r13
pop rsi
pop rbp
ret