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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov rsi, rcx
mov rax, qword [0x14040b018]
xor rax, rsp
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xe0], r9
mov r14, qword [rcx + 0x30]
mov r13d, dword [rcx + 0x38]
mov r15d, dword [rcx + 0x3c]
mov rax, qword [rcx + 0x68]
mov eax, dword [rax + 0x188]
test eax, eax
je 0x140285be6
mov dword [rsi + 0x24], 9
inc dword [rsi + 0x20]
mov dword [rsi + 0x1c], 0
mov ebx, 0xffffffff
mov qword [rsi + 0x30], r14
mov dword [rsi + 0x38], r13d
mov dword [rsi + 0x3c], r15d
inc ebx
mov ebp, ebx
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.140334bf0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, 0xffffffff
cmp dword [rsi + 0x1c], 0
je 0x140285ba8
mov edi, edx
xor ebp, ebp
test edx, edx
je 0x140285bb8
lea eax, [rdi - 1]
cmp eax, dword [rsi + 0x18]
jae 0x140285c36
mov r12, r9
mov rax, qword [rsi + 0x10]
mov edx, edi
shr rdx, 3
mov ecx, edi
and cl, 7
mov r10d, 1
shl r10d, cl
movzx ecx, byte [rax + rdx]
mov r9d, edi
and r9d, 7
bt ecx, r9d
jae 0x140285c4d
lea rdx, str.2nd_reference_to_page__d
jmp 0x140285c3d
lea rdx, str.invalid_page_number__d
mov rcx, rsi
mov r8d, edi
call fcn.140285960
jmp 0x140285bb8
mov qword [rsp + 0x80], r8
mov rbp, qword [rsi]
mov r8d, dword [rbp + 0x38]
mov qword [rsp + 0xa0], r8
or r10b, cl
mov byte [rax + rdx], r10b
lea rax, str.Page__u:
mov qword [rsi + 0x30], rax
mov dword [rsi + 0x38], edi
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r8, [rsp + 0xc0]
mov qword [r8], rax
mov rcx, qword [rbp]
mov rax, qword [rcx + 0x110]
mov edx, edi
xor r9d, r9d
call qword [case.0x1403339d6.0]
test eax, eax
je 0x140285cbf
lea rdx, str.unable_to_get_the_page._error_code_d
mov rcx, rsi
mov r8d, eax
call fcn.140285960
jmp 0x140285ba8
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rax + 0x10]
cmp dword [rcx + 4], edi
je 0x140285cf3
mov rdx, qword [rax + 8]
mov qword [rcx + 0x50], rdx
mov qword [rcx + 0x70], rax
mov qword [rcx + 0x48], rbp
mov dword [rcx + 4], edi
xor eax, eax
cmp edi, 1
mov edx, 0x64
cmovne edx, eax
mov byte [rcx + 9], dl
mov qword [rsp + 0x90], rbp
mov bl, byte [rcx]
mov byte [rcx], 0
mov rbp, rcx
call fcn.14025c000
test eax, eax
je 0x140285d15
lea rdx, str.btreeInitPage___returns_error_code__d
jmp 0x140285d28
mov rcx, rbp
call fcn.14027e3c0
test eax, eax
je 0x140285d9e
lea rdx, str.free_space_corruption
mov rcx, rsi
mov r8d, eax
call fcn.140285960
mov ebx, 0xffffffff
mov r9, rbp
test r9, r9
je 0x140285ba8
mov rcx, qword [r9 + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x140285d58
call fcn.140252fb0
jmp 0x140285ba8
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x1403339d6.0]
jmp 0x140285ba8
mov byte [rsp + 0x37], bl
mov r9, qword [rbp + 0x50]
movzx r10d, byte [rbp + 9]
lea rax, str.On_tree_page__u_cell__d:
mov qword [rsi + 0x30], rax
movzx eax, byte [r10 + r9 + 5]
shl eax, 8
movzx ecx, byte [r10 + r9 + 6]
movzx edx, word [r10 + r9 + 3]
rol dx, 8
mov r8, rbp
lea ebp, [rax + rcx]
dec ebp
movzx eax, dx
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x40], r8
movzx eax, byte [r8 + 8]
test eax, eax
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x70], r10
je 0x140285e14
mov r12, qword [rsi + 0x60]
mov dword [r12], 0
mov ecx, 1
mov qword [rsp + 0x60], rcx
mov ebx, 0xffffffff
jmp 0x140285e75
mov qword [rsp + 0x88], rax
mov ebx, dword [r10 + r9 + 8]
bswap ebx
mov rax, qword [rsp + 0x90]
cmp byte [rax + 0x21], 0
je 0x140285e4c
lea rax, str.On_page__u_at_right_child:
mov qword [rsi + 0x30], rax
mov rcx, rsi
mov edx, ebx
mov r8b, 5
mov r9d, edi
call fcn.140285a70
lea r8, [rsp + 0xe0]
mov rcx, rsi
mov edx, ebx
mov r9, r12
call fcn.140285b40
mov ebx, eax
xor eax, eax
mov qword [rsp + 0x60], rax
xor r12d, r12d
mov rax, qword [rsp + 0x88]
shl eax, 2
movzx r10d, bp
mov rcx, qword [rsp + 0x78]
test ecx, ecx
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x88], rax
je 0x14028621b
mov rdx, rax
mov rax, qword [rsp + 0x70]
sub eax, edx
lea eax, [rax + rcx*2]
add eax, 0xa
movsxd rdx, eax
lea eax, [r10 + 1]
mov dword [rsp + 0xb4], eax
dec ecx
add rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0xa0]
lea r8d, [rax - 4]
mov dword [rsp + 0x5c], r8d
add eax, 0xfffffffb
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0x58], 1
movaps xmm6, xmmword [0x1403df810]
mov r9, qword [rsp + 0x40]
movabs rbp, 0xaaaaaaaaaaaaaaaa
cmp dword [rsi + 0x1c], 0
je 0x1402861ed
mov qword [rsp + 0xd0], rbp
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0x50], rcx
mov dword [rsi + 0x3c], ecx
mov qword [rsp + 0x48], rdx
movzx eax, word [rdx]
rol ax, 8
movzx r9d, ax
cmp r10d, r9d
jae 0x140285fa1
cmp dword [rsp + 0x5c], r9d
jb 0x140285fa1
mov edx, r9d
add rdx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x40]
mov rax, qword [rbp + 0x80]
mov rcx, rbp
mov qword [rsp + 0xb8], rdx
lea r8, [rsp + 0xc0]
mov qword [rsp + 0x98], r9
call qword [case.0x1403339d6.0]
mov rdx, qword [rsp + 0x98]
movzx eax, word [rsp + 0xd6]
add eax, edx
cmp eax, dword [rsp + 0xa0]
jbe 0x140285fda
mov rcx, rsi
lea rdx, str.Extends_off_end_of_page
call fcn.140285960
mov dword [rsp + 0x58], 0
mov r9, rbp
jmp 0x1402861c3
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x20], eax
mov rcx, rsi
lea rdx, str.Offset__d_out_of_range__d.._d
mov r8d, r9d
mov r9d, dword [rsp + 0xb4]
call fcn.140285960
mov dword [rsp + 0x58], 0
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0x38]
jmp 0x1402861d2
cmp byte [rbp + 1], 0
je 0x14028603f
mov r8, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xe0]
cmp dword [rsp + 0x60], 0
movabs rbp, 0xaaaaaaaaaaaaaaaa
je 0x140286196
cmp r8, rax
jle 0x140286029
mov rcx, rsi
lea rdx, str.Rowid__lld_out_of_order
call fcn.140285960
mov rdx, qword [rsp + 0x98]
mov r8, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0xe0], r8
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x14028604e
mov r10, qword [rsp + 0x38]
movabs rbp, 0xaaaaaaaaaaaaaaaa
mov eax, dword [rsp + 0xd0]
movzx ecx, word [rsp + 0xd4]
cmp eax, ecx
jbe 0x1402860e5
add eax, dword [rsp + 0xb0]
sub eax, ecx
xor edx, edx
div dword [rsp + 0x5c]
mov r9d, eax
movzx eax, word [rsp + 0xd6]
mov rcx, qword [rsp + 0xb8]
mov r8d, dword [rax + rcx - 4]
bswap r8d
mov rax, qword [rsp + 0x90]
cmp byte [rax + 0x21], 0
je 0x1402860ce
mov rcx, rsi
mov edx, r8d
mov dword [rsp + 0xa8], r8d
mov r8b, 3
mov dword [rsp + 0xac], r9d
mov r9d, edi
call fcn.140285a70
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xac]
mov rcx, rsi
xor edx, edx
call fcn.140285670
mov r10, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
cmp byte [rax + 8], 0
je 0x140286120
movzx eax, word [rsp + 0xd6]
mov ecx, edx
shl ecx, 0x10
add edx, eax
dec edx
or edx, ecx
mov eax, dword [r12]
inc eax
mov dword [r12], eax
mov dword [r12 + rax*4], edx
cmp eax, 2
jae 0x140286171
mov r9, qword [rsp + 0x40]
jmp 0x1402861d2
mov rax, qword [rsp + 0xb8]
mov ebp, dword [rax]
bswap ebp
mov rax, qword [rsp + 0x90]
cmp byte [rax + 0x21], 0
je 0x14028614a
mov rcx, rsi
mov edx, ebp
mov r8b, 5
mov r9d, edi
call fcn.140285a70
mov r9, qword [rsp + 0xe0]
mov rcx, rsi
mov edx, ebp
lea r8, [rsp + 0xe0]
call fcn.140285b40
cmp eax, ebx
jne 0x1402861a4
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x1402861be
mov r9, qword [rsp + 0x40]
mov ecx, eax
shr eax, 1
mov edx, dword [r12 + rax*4]
mov r8d, dword [r12 + rcx*4]
cmp edx, r8d
jbe 0x1402861d2
mov dword [r12 + rax*4], r8d
mov dword [r12 + rcx*4], edx
cmp ecx, 3
ja 0x140286176
jmp 0x1402861d2
cmp r8, rax
jge 0x14028600a
jmp 0x140286029
mov ebp, eax
xor eax, eax
mov qword [rsp + 0x60], rax
mov rcx, rsi
lea rdx, str.Child_page_depth_differs
call fcn.140285960
mov ebx, ebp
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0x38]
movabs rbp, 0xaaaaaaaaaaaaaaaa
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rdx, 0xfffffffffffffffe
lea eax, [rcx - 1]
test ecx, ecx
mov ecx, eax
jg 0x140285ef4
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x80]
mov qword [rcx], rax
mov qword [rsi + 0x30], 0
cmp dword [rsp + 0x58], 0
jne 0x14028623b
mov al, byte [rsp + 0x37]
mov byte [r9], al
jmp 0x140285d3b
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x80]
mov qword [rcx], rax
mov qword [rsi + 0x30], 0
mov r9, qword [rsp + 0x40]
cmp dword [rsi + 0x1c], 0
jle 0x140285d3b
mov r11, r10
cmp byte [r9 + 8], 0
mov r10, qword [rsp + 0x68]
jne 0x140286322
mov r12, qword [rsi + 0x60]
mov dword [r12], 0
mov rcx, qword [rsp + 0x78]
test ecx, ecx
je 0x140286322
mov rdx, qword [rsp + 0x88]
neg edx
mov rax, qword [rsp + 0x70]
add eax, edx
add eax, 0xc
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x80], rcx
lea rax, [rcx - 1]
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x48]
lea eax, [rcx + rax*2]
cdqe
movzx eax, word [r10 + rax]
rol ax, 8
movzx ebp, ax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx + 0x78]
lea rdx, [r10 + rbp]
call qword [case.0x1403339d6.0]
movzx eax, ax
mov ecx, ebp
shl ecx, 0x10
lea edx, [rax + rbp]
dec edx
or edx, ecx
mov eax, dword [r12]
inc eax
mov dword [r12], eax
mov dword [r12 + rax*4], edx
cmp eax, 2
jb 0x140286304
mov ecx, eax
shr eax, 1
mov edx, dword [r12 + rax*4]
mov r8d, dword [r12 + rcx*4]
cmp edx, r8d
jbe 0x140286304
mov dword [r12 + rax*4], r8d
mov dword [r12 + rcx*4], edx
cmp ecx, 3
ja 0x1402862e6
cmp qword [rsp + 0x80], 1
mov r10, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x78]
jg 0x14028628a
mov r11, qword [rsp + 0x38]
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + r10 + 1]
rol ax, 8
test ax, ax
je 0x140286398
movzx ecx, ax
mov eax, ecx
movzx edx, word [rax + r10 + 2]
rol dx, 8
movzx edx, dx
mov r8d, ecx
shl r8d, 0x10
add edx, ecx
dec edx
or edx, r8d
mov ecx, dword [r12]
inc ecx
mov dword [r12], ecx
mov dword [r12 + rcx*4], edx
cmp ecx, 2
jb 0x140286387
mov edx, ecx
shr ecx, 1
mov r8d, dword [r12 + rcx*4]
mov r9d, dword [r12 + rdx*4]
cmp r8d, r9d
jbe 0x140286387
mov dword [r12 + rcx*4], r9d
mov dword [r12 + rdx*4], r8d
cmp edx, 3
ja 0x140286369
movzx eax, word [r10 + rax]
rol ax, 8
movzx ecx, ax
test cx, cx
jne 0x140286339
mov eax, dword [r12]
xor ebp, ebp
test eax, eax
je 0x140286440
mov ecx, dword [r12 + 4]
mov qword [rsp + 0x38], rcx
mov ecx, eax
mov edx, dword [r12 + rcx*4]
mov dword [r12 + 4], edx
mov dword [r12 + rcx*4], 0xffffffff
dec eax
mov dword [r12], eax
cmp eax, 2
jb 0x140286417
mov ecx, dword [r12 + 4]
mov edx, 1
mov r8d, 2
mov r9d, r8d
mov r10d, dword [r12 + r9*4]
mov r9d, r8d
or r9d, 1
cmp r10d, dword [r12 + r9*4]
cmovbe r9d, r8d
mov r8d, dword [r12 + r9*4]
cmp ecx, r8d
jb 0x140286417
mov eax, edx
mov dword [r12 + rax*4], r8d
mov dword [r12 + r9*4], ecx
lea r8d, [r9 + r9]
mov eax, dword [r12]
mov edx, r9d
cmp r8d, eax
jbe 0x1402863de
movzx ecx, r11w
mov rdx, qword [rsp + 0x38]
mov r8d, edx
shr r8d, 0x10
cmp r8d, ecx
jbe 0x140286445
not ecx
add ebp, ecx
add ebp, r8d
mov r11d, edx
test eax, eax
jne 0x1402863a6
jmp 0x140286469
mov rdx, r11
jmp 0x140286469
mov dword [rsp + 0x38], r11d
lea rdx, str.Multiple_uses_for_byte__u_of_page__u
mov rcx, rsi
mov r9d, edi
call fcn.140285960
cmp dword [r12], 0
mov eax, dword [rsp + 0x38]
mov edx, eax
jne 0x1402864a5
not edx
or edx, 0xffff0000
add ebp, dword [rsp + 0xa0]
add ebp, edx
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
movzx r9d, byte [rcx + rax + 7]
cmp ebp, r9d
je 0x1402864a5
mov dword [rsp + 0x20], edi
lea rdx, str.Fragmentation_of__d_bytes_reported_as__d_on_page__u
mov rcx, rsi
mov r8d, ebp
call fcn.140285960
mov r9, qword [rsp + 0x40]
jmp 0x140285d3b