Function at 0x140196840
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, 0xd8
mov r12, qword [rcx + 0x30]
mov rbp, qword [rcx + 0x3c]
mov rbx, rcx
mov qword [rsp + 0x138], r9
mov edi, edx
mov r15, r8
mov qword [rsp + 0xa8], 0
call fcn.14014f500
mov r9d, dword [rbx + 0x1c]
test r9d, r9d
je 0x140196c53
mov r14, qword [rbx]
test edi, edi
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x50], eax
jne 0x1401968b8
xor r9d, r9d
mov eax, r9d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, edi
mov rcx, rbx
call fcn.140196490
test eax, eax
mov esi, eax
jne 0x140196898
lea rax, str.Tree__u_page__u:
xor r9d, r9d
mov dword [rbx + 0x3c], edi
mov edx, edi
mov qword [rbx + 0x30], rax
lea r8, [rsp + 0xa8]
mov rcx, r14
call fcn.14014a200
test eax, eax
jne 0x140196c00
mov r13, qword [rsp + 0xa8]
mov dword [rsp + 0x30], eax
movzx eax, byte [r13]
mov rcx, r13
mov byte [r13], 0
mov byte [rsp + 0x38], al
call fcn.140192630
mov r9d, dword [rsp + 0x30]
test eax, eax
mov esi, eax
jne 0x140196cf8
mov rcx, r13
call fcn.14018f040
test eax, eax
mov r11d, eax
jne 0x140197050
movzx esi, byte [r13 + 9]
lea rax, str.Tree__u_page__u_cell__u:
mov r10, qword [r13 + 0x50]
mov qword [rbx + 0x30], rax
mov rdx, rsi
mov qword [rsp + 0x88], rsi
movzx eax, byte [r10 + rsi + 5]
add edx, 0xc
movzx ecx, byte [r10 + rsi + 6]
shl eax, 8
or eax, ecx
sub eax, 1
movzx eax, ax
mov dword [rsp + 0x94], eax
add eax, 1
mov dword [rsp + 0x30], eax
movzx eax, byte [r13 + 8]
mov ecx, eax
shl eax, 2
sub edx, eax
movzx eax, byte [r10 + rsi + 3]
mov r9d, edx
mov dword [rsp + 0x98], edx
movzx edx, byte [r10 + rsi + 4]
shl eax, 8
or eax, edx
sub eax, 1
mov dword [rsp + 0x6c], eax
lea eax, [r9 + rax*2]
cdqe
add rax, r10
test cl, cl
mov qword [rsp + 0x70], rax
je 0x140196c60
mov rsi, qword [rbx + 0x68]
mov dword [rsp + 0x54], 1
mov dword [rsp + 0x68], 0xffffffff
mov dword [rsi], 0
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x40], 1
mov edx, dword [rsp + 0x50]
mov r9, qword [rsp + 0x138]
cmp eax, 0xffffffff
lea ecx, [rdx - 4]
je 0x140196d78
mov qword [rsp + 0x78], rbp
mov rbp, qword [rsp + 0x70]
mov qword [rsp + 0x80], r12
mov r12d, ecx
mov qword [rsp + 0x58], r14
mov r14, r9
mov dword [rsp + 0x128], edi
mov edi, eax
mov dword [rsp + 0x90], r11d
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x130], r15
mov r8d, dword [rbx + 0x1c]
test r8d, r8d
je 0x140196b99
movzx esi, word [rbp]
sub rbp, 2
mov dword [rbx + 0x40], edi
mov eax, dword [rsp + 0x30]
rol si, 8
movzx r15d, si
cmp r15d, eax
jb 0x140196cc8
cmp r12d, r15d
jb 0x140196cc8
mov rax, qword [rsp + 0x48]
movzx esi, si
mov rcx, r13
lea r8, [rsp + 0xb0]
add rsi, rax
mov rdx, rsi
call qword [r13 + pe_nt_image_headers64]
movzx eax, word [rsp + 0xc6]
add eax, r15d
cmp dword [rsp + 0x50], eax
jb 0x140196fc0
cmp byte [r13 + 1], 0
je 0x140196ae9
mov r9d, dword [rsp + 0x54]
mov r8, qword [rsp + 0xb0]
test r9d, r9d
je 0x140196fb0
cmp r14, r8
setl al
test al, al
jne 0x140196ff5
mov qword [rsp + 0x138], r8
mov r14, r8
mov dword [rsp + 0x54], 0
mov eax, dword [rsp + 0xc0]
movzx edx, word [rsp + 0xc4]
cmp edx, eax
jae 0x140196b38
sub eax, edx
mov edx, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
lea eax, [rax + rdx - 5]
xor edx, edx
div r12d
movzx edx, word [rsp + 0xc6]
cmp byte [rcx + 0x21], 0
mov edx, dword [rsi + rdx - 4]
bswap edx
jne 0x140197018
mov r8d, edx
mov r9d, eax
xor edx, edx
mov rcx, rbx
call fcn.1401965d0
cmp byte [r13 + 8], 0
jne 0x140196d20
mov rax, qword [rsp + 0x58]
mov esi, dword [rsi]
cmp byte [rax + 0x21], 0
bswap esi
jne 0x140196fd8
mov edx, esi
mov r9, r14
mov rcx, rbx
lea r8, [rsp + 0x138]
call fcn.140196840
cmp dword [rsp + 0x68], eax
mov esi, eax
jne 0x140196d50
mov r14, qword [rsp + 0x138]
mov dword [rsp + 0x54], 0
nop word [rax + rax]
sub edi, 1
jae 0x140196a40
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x40]
mov r15, qword [rsp + 0x130]
mov r10, qword [rsp + 0x48]
add eax, 1
mov r11d, dword [rsp + 0x90]
test ecx, ecx
mov rbp, qword [rsp + 0x78]
mov dword [rsp + 0x48], eax
mov r9d, eax
mov qword [r15], r14
mov rsi, qword [rsp + 0x60]
mov r12, qword [rsp + 0x80]
mov qword [rbx + 0x30], 0
mov edi, dword [rsp + 0x128]
jne 0x140196d8e
movzx eax, byte [rsp + 0x38]
mov byte [r13], al
jmp 0x140196c40
mov r8d, eax
mov rcx, rbx
mov dword [rsp + 0x50], eax
lea rdx, str.unable_to_get_the_page._error_code_d
call fcn.140196390
mov r9d, dword [rsp + 0x50]
mov r13, qword [rsp + 0xa8]
cmp r9d, 0xc0a
je 0x140196cb8
test r13, r13
mov r9d, esi
je 0x140196c53
nop dword [rax + rax]
mov rcx, qword [r13 + 0x70]
mov dword [rsp + 0x50], r9d
call fcn.140153770
mov r9d, dword [rsp + 0x50]
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x3c], rbp
jmp 0x14019689b
mov esi, dword [r10 + rsi + 8]
cmp byte [r14 + 0x21], 0
bswap esi
jne 0x140197067
mov r9, qword [rsp + 0x138]
mov edx, esi
mov rcx, rbx
mov qword [rsp + 0x48], r10
lea r8, [rsp + 0x138]
mov dword [rsp + 0x40], r11d
xor esi, esi
call fcn.140196840
mov r11d, dword [rsp + 0x40]
mov dword [rsp + 0x54], 0
mov r10, qword [rsp + 0x48]
mov dword [rsp + 0x68], eax
jmp 0x1401969dc
mov dword [rbx + 0x24], 7
jmp 0x140196c30
mov r9d, dword [rsp + 0x30]
mov dword [rsp + 0x20], r12d
mov r8d, r15d
mov rcx, rbx
lea rdx, str.Offset__u_out_of_range__u.._u
call fcn.140196390
mov dword [rsp + 0x40], 0
jmp 0x140196b90
mov r8d, eax
mov rcx, rbx
mov dword [rsp + 0x50], r9d
lea rdx, str.btreeInitPage___returns_error_code__d
call fcn.140196390
mov r9d, dword [rsp + 0x50]
jmp 0x140196c40
movzx eax, word [rsp + 0xc6]
mov r10d, r15d
mov rcx, qword [rsp + 0x60]
shl r10d, 0x10
lea edx, [r15 + rax - 1]
or edx, r10d
call fcn.14014a320
jmp 0x140196b90
lea rdx, str.Child_page_depth_differs
mov rcx, rbx
call fcn.140196390
mov r14, qword [rsp + 0x138]
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x54], 0
jmp 0x140196b90
mov eax, dword [rsp + 0x68]
mov qword [r15], r9
mov qword [rbx + 0x30], 0
add eax, 1
mov dword [rsp + 0x48], eax
mov edx, dword [rbx + 0x1c]
test edx, edx
jle 0x140196fa0
cmp byte [r13 + 8], 0
jne 0x140196e35
mov eax, dword [rsp + 0x6c]
mov rsi, qword [rbx + 0x68]
cmp eax, 0xffffffff
mov dword [rsi], 0
je 0x140196e35
movsxd r14, eax
movsxd rax, dword [rsp + 0x98]
mov dword [rsp + 0x30], r11d
mov r15, r10
mov qword [rsp + 0x120], rbx
mov rbx, r14
mov dword [rsp + 0x128], edi
add rax, r10
mov r14, rax
nop word [rax + rax]
movzx edx, word [r14 + rbx*2]
mov rcx, r13
sub rbx, 1
rol dx, 8
movzx edi, dx
movzx edx, dx
add rdx, r15
call qword [r13 + 0x78]
mov rcx, rsi
movzx eax, ax
lea edx, [rdi + rax - 1]
shl edi, 0x10
or edx, edi
call fcn.14014a320
cmp ebx, 0xffffffff
jne 0x140196de8
mov r11d, dword [rsp + 0x30]
mov r10, r15
mov rbx, qword [rsp + 0x120]
mov edi, dword [rsp + 0x128]
mov rdx, qword [rsp + 0x88]
mov r15, r10
movzx eax, byte [r10 + rdx + 1]
movzx edx, byte [r10 + rdx + 2]
shl eax, 8
or eax, edx
je 0x140196e92
nop dword [rax + rax]
movsxd r14, eax
movzx edx, byte [r15 + r14 + 2]
movzx ecx, byte [r15 + r14 + 3]
shl edx, 8
or edx, ecx
mov rcx, rsi
lea edx, [rax + rdx - 1]
shl eax, 0x10
or edx, eax
call fcn.14014a320
movzx eax, byte [r15 + r14]
movzx edx, byte [r15 + r14 + 1]
shl eax, 8
or eax, edx
jne 0x140196e58
mov r10, r15
mov eax, dword [rsi]
mov r9d, dword [rsp + 0x94]
test eax, eax
je 0x1401970d6
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], rbp
nop
lea rax, [rsi + rax*4]
mov edx, r9d
mov r9d, dword [rsi + 4]
mov ecx, dword [rax]
mov dword [rsi + 4], ecx
mov dword [rax], 0xffffffff
mov eax, dword [rsi]
sub eax, 1
cmp eax, 1
mov dword [rsi], eax
jbe 0x140196f34
mov r14d, dword [rsi + 4]
mov r8d, 1
mov eax, 2
mov dword [rsp + 0x30], r11d
jmp 0x140196f01
mov dword [rax], ecx
lea eax, [r11 + r11]
mov dword [rbp], r14d
cmp dword [rsi], eax
jb 0x140196f2f
mov r8d, r11d
mov ecx, eax
lea r13, [rsi + rcx*4]
lea ecx, [rax + 1]
mov r15d, dword [r13]
lea rbp, [rsi + rcx*4]
mov r11, rcx
mov ecx, dword [rbp]
cmp ecx, r15d
jb 0x140196f26
mov ecx, r15d
mov rbp, r13
mov r11d, eax
lea rax, [rsi + r8*4]
cmp r14d, ecx
jae 0x140196ef0
mov r11d, dword [rsp + 0x30]
mov r8d, r9d
movzx edx, dx
mov r14d, r11d
shr r8d, 0x10
cmp edx, r8d
jae 0x14019709e
mov eax, dword [rsi]
lea r14d, [r8 + r14 - 1]
sub r14d, edx
mov r11d, r14d
test eax, eax
jne 0x140196eb0
mov r13, qword [rsp + 0x38]
movzx r15d, r9w
mov rbp, qword [rsp + 0x40]
mov eax, dword [rsp + 0x50]
lea r8d, [r14 + rax - 1]
sub r8d, r15d
mov rax, qword [rsp + 0x88]
movzx r9d, byte [r10 + rax + 7]
cmp r9d, r8d
je 0x140196fa0
mov dword [rsp + 0x20], edi
lea rdx, str.Fragmentation_of__u_bytes_reported_as__u_on_page__u
mov rcx, rbx
call fcn.140196390
nop
mov esi, dword [rsp + 0x48]
jmp 0x140196c30
cmp r14, r8
setle al
jmp 0x140196ace
lea rdx, str.Extends_off_end_of_page
mov rcx, rbx
call fcn.140196390
jmp 0x140196ce4
mov r9d, dword [rsp + 0x128]
mov r8d, 5
mov edx, esi
mov rcx, rbx
call fcn.140196510
jmp 0x140196b56
lea rdx, str.Rowid__lld_out_of_order
mov rcx, rbx
call fcn.140196390
mov r8, qword [rsp + 0xb0]
jmp 0x140196ad6
mov r9d, dword [rsp + 0x128]
mov r8d, 3
mov rcx, rbx
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0x70], edx
call fcn.140196510
mov eax, dword [rsp + 0x9c]
mov edx, dword [rsp + 0x70]
jmp 0x140196b28
lea rdx, str.free_space_corruption
mov r8d, eax
mov rcx, rbx
call fcn.140196390
jmp 0x140196c30
mov r9d, edi
mov r8d, 5
mov edx, esi
mov qword [rsp + 0x48], r10
lea rax, str.Tree__u_page__u_right_child:
mov rcx, rbx
mov dword [rsp + 0x40], r11d
mov qword [rbx + 0x30], rax
call fcn.140196510
mov r10, qword [rsp + 0x48]
mov r11d, dword [rsp + 0x40]
jmp 0x140196c72
mov r15d, edx
mov r9d, edi
mov rcx, rbx
mov qword [rsp + 0x30], r10
lea rdx, str.Multiple_uses_for_byte__u_of_page__u
mov r13, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
call fcn.140196390
mov eax, dword [rsi]
mov r10, qword [rsp + 0x30]
test eax, eax
jne 0x140196fa0
jmp 0x140196f6d
mov r8d, dword [rsp + 0x50]
mov eax, dword [rsp + 0x94]
sub r8d, 1
sub r8d, eax
jmp 0x140196f79