Function at 0x54c500
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 sym.checkProgress
mov r12d, dword [rbx + 0x1c]
test r12d, r12d
je 0x54cad0
test edi, edi
jne 0x54c570
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 + 0x40], eax
call sym.checkRef
mov r12d, eax
test eax, eax
jne 0x54c552
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 dbg.btreeGetPage
mov esi, eax
test eax, eax
jne 0x54caf8
mov rcx, qword [rsp + 0x98]
movzx eax, byte [rcx]
mov byte [rcx], 0
mov byte [rsp + 0x38], al
call dbg.btreeInitPage
mov r12d, eax
test eax, eax
jne 0x54cba0
mov rcx, qword [rsp + 0x98]
call dbg.btreeComputeFreeSpace
mov dword [rsp + 0x80], eax
test eax, eax
jne 0x54cc98
mov rdx, qword [rsp + 0x98]
lea rcx, str.Tree__u_page__u_cell__u:
mov rsi, qword [rdx + 0x50]
movzx r10d, byte [rdx + 9]
mov qword [rbx + 0x30], rcx
movzx r15d, byte [rsi + r10 + 5]
movzx ecx, byte [rsi + r10 + 6]
mov rax, r10
mov qword [rsp + 0x48], rsi
add eax, 0xc
mov qword [rsp + 0x78], r10
shl r15d, 8
or r15d, ecx
sub r15d, 1
movzx ecx, r15w
mov dword [rsp + 0x84], ecx
add ecx, 1
mov dword [rsp + 0x6c], ecx
movzx ecx, byte [rdx + 8]
mov edx, ecx
shl ecx, 2
sub eax, ecx
movzx ecx, byte [rsi + r10 + 4]
mov r15d, eax
mov dword [rsp + 0x88], eax
movzx eax, byte [rsi + r10 + 3]
shl eax, 8
or eax, ecx
sub eax, 1
mov dword [rsp + 0x68], eax
lea eax, [r15 + rax*2]
cdqe
add rax, rsi
mov r15, rax
test dl, dl
je 0x54cb28
mov rsi, qword [rbx + 0x68]
mov dword [rsp + 0x54], 1
mov dword [rsp + 0x44], 0xffffffff
mov dword [rsi], 0
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x68]
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 0x54c8bd
mov qword [rsp + 0x70], rbp
mov dword [rsp + 0x118], edi
mov qword [rsp + 0x120], r13
mov r13, rbx
mov rbx, r14
mov r14d, dword [rsp + 0x6c]
mov qword [rsp + 0x60], rsi
mov esi, edx
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x54c85e
movzx ebp, word [r15]
mov dword [r13 + 0x40], r12d
sub r15, 2
rol bp, 8
movzx edi, bp
cmp r14d, edi
ja 0x54cb70
cmp edi, esi
ja 0x54cb70
mov rax, qword [rsp + 0x98]
movzx ebp, bp
add rbp, qword [rsp + 0x48]
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 + 0x40]
ja 0x54cc00
mov rax, qword [rsp + 0x98]
cmp byte [rax + 1], 0
je 0x54c7ab
mov r9d, dword [rsp + 0x54]
mov r8, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x128]
test r9d, r9d
je 0x54cbf0
cmp r8, rax
setg al
test al, al
jne 0x54cc78
mov qword [rsp + 0x128], r8
mov dword [rsp + 0x54], 0
mov eax, dword [rsp + 0xb0]
movzx edx, word [rsp + 0xb4]
cmp eax, edx
jbe 0x54c7f4
mov ecx, dword [rsp + 0x40]
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 0x54cc40
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 0x54cbc8
mov edx, dword [rbp]
cmp byte [rbx + 0x21], 0
bswap edx
jne 0x54cc18
mov r9, qword [rsp + 0x128]
lea r8, [rsp + 0x128]
mov rcx, r13
call dbg.checkTreePage
mov dword [rsp + 0x54], 0
mov ebp, eax
cmp dword [rsp + 0x44], eax
je 0x54c84c
lea rdx, str.Child_page_depth_differs
mov rcx, r13
call dbg.checkAppendMsg
mov dword [rsp + 0x44], ebp
sub r12d, 1
cmp r12d, 0xffffffff
jne 0x54c6fb
mov rax, qword [rsp + 0x128]
mov rbx, r13
mov r12d, dword [rsp + 0x44]
mov r13, qword [rsp + 0x120]
mov ecx, dword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
add r12d, 1
mov qword [r13], rax
mov edi, dword [rsp + 0x118]
mov qword [rbx + 0x30], 0
mov rax, qword [rsp + 0x98]
test ecx, ecx
jne 0x54c8e2
movzx edi, byte [rsp + 0x38]
mov byte [rax], dil
mov rcx, qword [rax + 0x70]
call dbg.sqlite3PagerUnrefNotNull
jmp 0x54cae1
mov rax, qword [rsp + 0x128]
mov r12d, dword [rsp + 0x44]
mov qword [r13], rax
mov rax, qword [rsp + 0x98]
add r12d, 1
mov qword [rbx + 0x30], 0
mov edx, dword [rbx + 0x1c]
test edx, edx
jle 0x54cad8
cmp byte [rax + 8], 0
jne 0x54c96f
mov rsi, qword [rbx + 0x68]
mov ecx, dword [rsp + 0x68]
mov dword [rsi], 0
cmp ecx, 0xffffffff
je 0x54c96f
movsxd r13, dword [rsp + 0x88]
mov r14, qword [rsp + 0x48]
mov qword [rsp + 0x110], rbx
movsxd r15, ecx
add r13, r14
jmp 0x54c930
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 0x54c928
mov rbx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x78]
mov r13, qword [rsp + 0x48]
movzx eax, byte [rcx + rdx + 1]
movzx edx, byte [rcx + rdx + 2]
shl eax, 8
or eax, edx
je 0x54c9c8
nop
movsxd r11, eax
movzx edx, byte [r13 + r11 + 2]
movzx ecx, byte [r13 + r11 + 3]
shl edx, 8
or edx, ecx
mov rcx, rsi
lea edx, [rax + rdx - 1]
shl eax, 0x10
or edx, eax
call dbg.btreeHeapInsert
movzx eax, byte [r13 + r11]
movzx edx, byte [r13 + r11 + 1]
shl eax, 8
or eax, edx
jne 0x54c990
mov eax, dword [rsi]
mov r15d, dword [rsp + 0x84]
test eax, eax
je 0x54cd20
mov qword [rsp + 0x38], rbp
mov r14d, dword [rsp + 0x80]
nop word [rax + 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 0x54ca62
mov ebp, dword [rsi + 4]
mov r8d, 1
mov eax, 2
jmp 0x54ca37
mov dword [rax], edx
lea eax, [rcx + rcx]
mov dword [r9], ebp
cmp eax, dword [rsi]
ja 0x54ca62
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 0x54ca5a
mov edx, r11d
mov r9, r10
mov ecx, eax
lea rax, [rsi + r8*4]
cmp ebp, edx
jae 0x54ca28
mov r8d, r15d
movzx r13d, r13w
shr r8d, 0x10
cmp r13d, r8d
jae 0x54ccdb
lea edx, [r8 + r14 - 1]
mov eax, dword [rsi]
sub edx, r13d
mov r14d, edx
test eax, eax
jne 0x54c9f0
mov rbp, qword [rsp + 0x38]
movzx r15d, r15w
mov eax, dword [rsp + 0x40]
lea r8d, [rdx + rax - 1]
sub r8d, r15d
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x78]
movzx r9d, byte [rax + rsi + 7]
cmp r8d, r9d
je 0x54cad0
mov dword [rsp + 0x20], edi
lea rdx, str.Fragmentation_of__u_bytes_reported_as__u_on_page__u
mov rcx, rbx
call dbg.checkAppendMsg
nop dword [rax + rax]
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x54c8af
mov rax, qword [rsp + 0x30]
mov qword [rbx + 0x3c], rbp
mov qword [rbx + 0x30], rax
jmp 0x54c555
mov r8d, eax
lea rdx, str.unable_to_get_the_page._error_code_d
mov rcx, rbx
call dbg.checkAppendMsg
cmp esi, 0xc0a
jne 0x54cad0
mov dword [rbx + 0x24], 7
mov rax, qword [rsp + 0x98]
jmp 0x54cad8
mov r12d, dword [rsi + r10 + 8]
cmp byte [r14 + 0x21], 0
bswap r12d
jne 0x54ccb7
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 + 0x44], eax
jmp 0x54c6a7
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 0x54c850
mov r8d, eax
lea rdx, str.btreeInitPage___returns_error_code__d
mov rcx, rbx
xor r12d, r12d
call dbg.checkAppendMsg
mov rax, qword [rsp + 0x98]
jmp 0x54cad8
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 + 0x44]
jmp 0x54c84c
cmp r8, rax
setge al
jmp 0x54c793
lea rdx, str.Extends_off_end_of_page
mov rcx, r13
call dbg.checkAppendMsg
jmp 0x54cb89
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 0x54c815
mov r9d, dword [rsp + 0x118]
mov r8d, 3
mov rcx, r13
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x6c], edx
call dbg.checkPtrmap
mov eax, dword [rsp + 0x8c]
mov edx, dword [rsp + 0x6c]
jmp 0x54c7e4
lea rdx, str.Rowid__lld_out_of_order
mov rcx, r13
call dbg.checkAppendMsg
mov r8, qword [rsp + 0xa0]
jmp 0x54c79b
mov r8d, eax
lea rdx, str.free_space_corruption
mov rcx, rbx
call dbg.checkAppendMsg
mov rax, qword [rsp + 0x98]
jmp 0x54cad8
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 0x54cb3b
mov r9d, edi
mov rcx, rbx
lea rdx, str.Multiple_uses_for_byte__u_of_page__u
mov dword [rsp + 0x80], r14d
mov rbp, qword [rsp + 0x38]
call dbg.checkAppendMsg
mov eax, dword [rsi]
test eax, eax
jne 0x54cad0
mov eax, dword [rsp + 0x40]
mov esi, dword [rsp + 0x80]
lea r8d, [rax + rsi - 1]
sub r8d, r13d
jmp 0x54caa0
xor edx, edx
jmp 0x54ca94