Function at 0x140176c40
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, 0xc8
mov rax, qword [rcx + 0x30]
mov rbp, qword [rcx + 0x3c]
mov rbx, rcx
mov qword [rsp + 0x128], r9
mov edi, edx
mov r13, r8
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x30], rax
call dbg.checkProgress
mov r10d, dword [rbx + 0x1c]
test r10d, r10d
je 0x140177050
test edi, edi
jne 0x140176cb0
xor r12d, r12d
mov eax, r12d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r14, qword [rbx]
mov edx, edi
mov rcx, rbx
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x48], eax
call sym.checkRef
test eax, eax
jne 0x140176c92
lea rax, str.Tree__u_page__u:
mov dword [rbx + 0x3c], edi
xor r9d, r9d
mov edx, edi
mov qword [rbx + 0x30], rax
lea r8, [rsp + 0x98]
mov rcx, r14
call sym.btreeGetPage
mov r12d, eax
test eax, eax
jne 0x140177030
mov rcx, qword [rsp + 0x98]
movzx eax, byte [rcx]
mov byte [rcx], 0
mov byte [rsp + 0x38], al
call dbg.btreeInitPage
test eax, eax
jne 0x140177100
mov rcx, qword [rsp + 0x98]
call dbg.btreeComputeFreeSpace
mov dword [rsp + 0x7c], eax
test eax, eax
jne 0x140177418
mov rax, qword [rsp + 0x98]
lea rcx, str.Tree__u_page__u_cell__u:
mov rsi, qword [rax + 0x50]
movzx r10d, byte [rax + 9]
mov qword [rbx + 0x30], rcx
movzx r15d, byte [rsi + r10 + 5]
movzx ecx, byte [rsi + r10 + 6]
mov qword [rsp + 0x40], rsi
movzx r8d, byte [rsi + r10 + 4]
mov qword [rsp + 0x70], r10
shl r15d, 8
or r15d, ecx
sub r15d, 1
movzx ecx, r15w
mov dword [rsp + 0x88], ecx
add ecx, 1
mov dword [rsp + 0x78], ecx
movzx ecx, byte [rsi + r10 + 3]
lea esi, [r10 + 0xc]
mov dword [rsp + 0x68], esi
shl ecx, 8
or ecx, r8d
movzx r8d, byte [rax + 8]
test r8b, r8b
jne 0x140177078
lea esi, [rcx - 1]
cmp byte [rax + 1], 0
mov dword [rsp + 0x6c], esi
lea edx, [rsi + rsi]
jne 0x140176dbd
movsxd rcx, ecx
add qword [rbx + 0x78], rcx
mov eax, dword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add eax, edx
cdqe
add rax, qword [rsp + 0x40]
cmp byte [r14 + 0x21], 0
mov r15, rax
mov rax, qword [rsp + 0x40]
mov r12d, dword [rax + rsi + 8]
bswap r12d
jne 0x140177437
mov r9, qword [rsp + 0x128]
mov edx, r12d
mov rcx, rbx
xor esi, esi
lea r8, [rsp + 0x128]
call dbg.checkTreePage
mov dword [rsp + 0x54], 0
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x50], 1
sub ecx, 4
mov r12d, eax
mov edx, ecx
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0x58], rcx
cmp eax, 0xffffffff
je 0x140177144
mov qword [rsp + 0x80], rbp
mov dword [rsp + 0x118], edi
mov qword [rsp + 0x120], r13
mov r13, rbx
mov rbx, r14
mov r14d, dword [rsp + 0x78]
mov qword [rsp + 0x60], rsi
mov esi, edx
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x140176fc9
movzx ebp, word [r15]
mov dword [r13 + 0x40], r12d
sub r15, 2
rol bp, 8
movzx edi, bp
cmp r14d, edi
ja 0x1401770d0
cmp edi, esi
ja 0x1401770d0
mov rax, qword [rsp + 0x98]
movzx ebp, bp
add rbp, qword [rsp + 0x40]
mov r8, qword [rsp + 0x58]
mov rdx, rbp
mov rcx, rax
call qword [rax + pe_nt_image_headers64]
movzx eax, word [rsp + 0xb6]
add eax, edi
cmp eax, dword [rsp + 0x48]
ja 0x140177388
mov rax, qword [rsp + 0x98]
cmp byte [rax + 1], 0
je 0x140176f1a
mov r9d, dword [rsp + 0x54]
mov r8, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x128]
test r9d, r9d
je 0x140177378
cmp r8, rax
setg al
test al, al
jne 0x1401773c3
mov qword [rsp + 0x128], r8
mov dword [rsp + 0x54], 0
mov eax, dword [rsp + 0xb0]
movzx edx, word [rsp + 0xb4]
cmp eax, edx
jbe 0x140176f63
mov ecx, dword [rsp + 0x48]
sub eax, edx
xor edx, edx
lea eax, [rax + rcx - 5]
div esi
movzx edx, word [rsp + 0xb6]
mov edx, dword [rbp + rdx - 4]
bswap edx
cmp byte [rbx + 0x21], 0
jne 0x1401773e0
mov r8d, edx
mov r9d, eax
xor edx, edx
mov rcx, r13
call dbg.checkList
mov rax, qword [rsp + 0x98]
cmp byte [rax + 8], 0
jne 0x140177120
mov edx, dword [rbp]
cmp byte [rbx + 0x21], 0
bswap edx
jne 0x1401773a0
mov r9, qword [rsp + 0x128]
lea r8, [rsp + 0x128]
mov rcx, r13
call dbg.checkTreePage
mov dword [rsp + 0x54], 0
mov ebp, eax
cmp eax, dword [rsp + 0x4c]
je 0x140176fbb
lea rdx, str.Child_page_depth_differs
mov rcx, r13
call dbg.checkAppendMsg
mov dword [rsp + 0x4c], ebp
sub r12d, 1
jae 0x140176e6a
mov edx, dword [rsp + 0x4c]
mov rax, qword [rsp + 0x128]
mov rbx, r13
mov ecx, dword [rsp + 0x50]
mov r13, qword [rsp + 0x120]
add edx, 1
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x80]
mov qword [r13], rax
mov edi, dword [rsp + 0x118]
mov r12d, edx
mov qword [rbx + 0x30], 0
mov rax, qword [rsp + 0x98]
test ecx, ecx
jne 0x140177167
movzx edi, byte [rsp + 0x38]
mov byte [rax], dil
mov rcx, qword [rax + 0x70]
call dbg.sqlite3PagerUnrefNotNull
jmp 0x140177060
mov r8d, eax
lea rdx, str.unable_to_get_the_page._error_code_d
mov rcx, rbx
call dbg.checkAppendMsg
cmp r12d, 0xc0a
je 0x1401770c0
nop dword [rax + rax]
mov rax, qword [rsp + 0x98]
xor r12d, r12d
test rax, rax
jne 0x140177022
mov rax, qword [rsp + 0x30]
mov qword [rbx + 0x3c], rbp
mov qword [rbx + 0x30], rax
jmp 0x140176c95
movsxd rax, ecx
shl r8d, 2
add qword [rbx + 0x78], rax
lea esi, [rcx - 1]
sub dword [rsp + 0x68], r8d
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x6c], esi
lea eax, [rax + rsi*2]
mov rsi, qword [rbx + 0x68]
mov dword [rsp + 0x54], 1
cdqe
add rax, qword [rsp + 0x40]
mov dword [rsp + 0x4c], 0xffffffff
mov dword [rsi], 0
mov r15, rax
jmp 0x140176e13
mov dword [rbx + 0x24], 7
jmp 0x140177050
mov dword [rsp + 0x20], esi
mov r9d, r14d
mov r8d, edi
mov rcx, r13
lea rdx, str.Offset__u_out_of_range__u.._u
call dbg.checkAppendMsg
mov dword [rsp + 0x50], 0
jmp 0x140176fbf
mov r8d, eax
lea rdx, str.btreeInitPage___returns_error_code__d
mov rcx, rbx
call dbg.checkAppendMsg
mov rax, qword [rsp + 0x98]
jmp 0x14017705b
movzx eax, word [rsp + 0xb6]
mov rcx, qword [rsp + 0x60]
lea edx, [rdi + rax - 1]
shl edi, 0x10
or edx, edi
call dbg.btreeHeapInsert
mov ebp, dword [rsp + 0x4c]
jmp 0x140176fbb
mov rax, qword [rsp + 0x128]
mov ecx, dword [rsp + 0x4c]
mov qword [r13], rax
mov rax, qword [rsp + 0x98]
lea edx, [rcx + 1]
mov qword [rbx + 0x30], 0
mov r12d, edx
mov edx, dword [rbx + 0x1c]
test edx, edx
jle 0x14017705b
cmp byte [rax + 8], 0
jne 0x1401771f7
mov rsi, qword [rbx + 0x68]
mov ecx, dword [rsp + 0x6c]
mov dword [rsi], 0
cmp ecx, 0xffffffff
je 0x1401771f7
movsxd r13, dword [rsp + 0x68]
mov r14, qword [rsp + 0x40]
mov qword [rsp + 0x110], rbx
movsxd r15, ecx
add r13, r14
jmp 0x1401771b8
mov rax, qword [rsp + 0x98]
movzx edx, word [r13 + r15*2]
mov rcx, rax
sub r15, 1
rol dx, 8
movzx ebx, dx
movzx edx, dx
add rdx, r14
call qword [rax + 0x78]
mov rcx, rsi
movzx eax, ax
lea edx, [rbx + rax - 1]
shl ebx, 0x10
or edx, ebx
call dbg.btreeHeapInsert
cmp r15d, 0xffffffff
jne 0x1401771b0
mov rbx, qword [rsp + 0x110]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov r13, qword [rsp + 0x40]
movzx r11d, byte [rax + rcx + 1]
movzx eax, byte [rax + rcx + 2]
shl r11d, 8
or r11d, eax
je 0x140177271
nop word [rax + rax]
lea eax, [r11 + 2]
lea edx, [r11 + 3]
mov rcx, rsi
cdqe
movsxd rdx, edx
movzx eax, byte [r13 + rax]
movzx edx, byte [r13 + rdx]
shl eax, 8
or eax, edx
lea edx, [r11 + rax - 1]
mov eax, r11d
shl eax, 0x10
or edx, eax
call dbg.btreeHeapInsert
movsxd rax, r11d
add r11d, 1
movzx eax, byte [r13 + rax]
movsxd r11, r11d
movzx r11d, byte [r13 + r11]
shl eax, 8
or r11d, eax
jne 0x140177220
mov eax, dword [rsi]
mov r15d, dword [rsp + 0x88]
test eax, eax
je 0x1401774a0
mov qword [rsp + 0x38], rbp
mov r14d, dword [rsp + 0x7c]
nop dword [rax]
lea rax, [rsi + rax*4]
mov r13d, r15d
mov r15d, dword [rsi + 4]
mov edx, dword [rax]
mov dword [rsi + 4], edx
mov dword [rax], 0xffffffff
mov eax, dword [rsi]
sub eax, 1
mov dword [rsi], eax
cmp eax, 1
jbe 0x140177302
mov ebp, dword [rsi + 4]
mov r8d, 1
mov eax, 2
jmp 0x1401772d7
mov dword [rax], edx
lea eax, [rcx + rcx]
mov dword [r9], ebp
cmp eax, dword [rsi]
ja 0x140177302
mov r8d, ecx
mov edx, eax
lea r10, [rsi + rdx*4]
lea edx, [rax + 1]
lea r9, [rsi + rdx*4]
mov rcx, rdx
mov r11d, dword [r10]
mov edx, dword [r9]
cmp r11d, edx
ja 0x1401772fa
mov edx, r11d
mov r9, r10
mov ecx, eax
lea rax, [rsi + r8*4]
cmp ebp, edx
jae 0x1401772c8
mov r8d, r15d
movzx r13d, r13w
shr r8d, 0x10
cmp r13d, r8d
jae 0x14017745b
lea edx, [r14 + r8 - 1]
mov eax, dword [rsi]
sub edx, r13d
mov r14d, edx
test eax, eax
jne 0x140177290
mov rbp, qword [rsp + 0x38]
movzx r15d, r15w
mov eax, dword [rsp + 0x48]
lea r8d, [rdx + rax - 1]
sub r8d, r15d
mov rax, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x70]
movzx r9d, byte [rax + rsi + 7]
cmp r9d, r8d
je 0x140177368
mov dword [rsp + 0x20], edi
lea rdx, str.Fragmentation_of__u_bytes_reported_as__u_on_page__u
mov rcx, rbx
call dbg.checkAppendMsg
mov rax, qword [rsp + 0x98]
jmp 0x14017705b
cmp r8, rax
setge al
jmp 0x140176f02
lea rdx, str.Extends_off_end_of_page
mov rcx, r13
call dbg.checkAppendMsg
jmp 0x1401770e9
mov r9d, dword [rsp + 0x118]
mov r8d, 5
mov rcx, r13
mov dword [rsp + 0x54], edx
call dbg.checkPtrmap
mov edx, dword [rsp + 0x54]
jmp 0x140176f84
lea rdx, str.Rowid__lld_out_of_order
mov rcx, r13
call dbg.checkAppendMsg
mov r8, qword [rsp + 0xa0]
jmp 0x140176f0a
mov r9d, dword [rsp + 0x118]
mov r8d, 3
mov rcx, r13
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x78], edx
call dbg.checkPtrmap
mov eax, dword [rsp + 0x8c]
mov edx, dword [rsp + 0x78]
jmp 0x140176f53
mov r8d, eax
lea rdx, str.free_space_corruption
mov rcx, rbx
call dbg.checkAppendMsg
mov rax, qword [rsp + 0x98]
jmp 0x14017705b
lea rax, str.Tree__u_page__u_right_child:
mov r9d, edi
mov edx, r12d
mov rcx, rbx
mov qword [rbx + 0x30], rax
mov r8d, 5
call dbg.checkPtrmap
jmp 0x140176dea
mov r9d, edi
mov rcx, rbx
mov dword [rsp + 0x7c], r14d
mov rbp, qword [rsp + 0x38]
lea rdx, str.Multiple_uses_for_byte__u_of_page__u
call dbg.checkAppendMsg
mov eax, dword [rsi]
test eax, eax
jne 0x140177368
mov eax, dword [rsp + 0x7c]
mov esi, dword [rsp + 0x48]
lea r8d, [rax + rsi - 1]
sub r8d, r13d
jmp 0x140177340
xor edx, edx
jmp 0x140177334