Function at 0x14003e540
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 rax, qword [rcx + 0x28]
mov r14, qword [rcx]
mov qword [rsp + 0x40], rax
mov rax, qword [rcx + 0x30]
mov rsi, rcx
mov edi, edx
mov qword [rsp + 0x138], r9
mov rbp, r8
mov qword [rsp + 0x48], rax
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x3c], eax
test edx, edx
jne 0x14003e5a0
xor r15d, r15d
mov eax, r15d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp dword [rcx + 0x18], edx
jb 0x14003e9a0
mov ecx, edi
mov eax, 1
shr edx, 3
and ecx, 7
shl eax, cl
mov rcx, qword [rsi + 0x10]
movzx r15d, byte [rcx + rdx]
and r15d, eax
jne 0x14003e9b8
mov r8, qword [rsi + 0x60]
mov r13d, dword [r8 + 0x190]
test r13d, r13d
jne 0x14003e584
or byte [rcx + rdx], al
lea rax, str.Page__u:
xor r9d, r9d
mov edx, edi
mov qword [rsi + 0x28], rax
lea rbx, [rsp + 0xb0]
mov dword [rsi + 0x30], edi
mov rax, qword [r14]
mov r8, rbx
mov qword [rsp + 0x60], rbx
mov rcx, rax
call qword [rax + 0x110]
test eax, eax
jne 0x14003e9d0
mov rax, qword [rsp + 0xb0]
mov r12, qword [rax + 0x10]
cmp edi, dword [r12 + 4]
je 0x14003e652
movq xmm0, r14
mov edx, 0x64
movhps xmm0, qword [rax + 8]
mov qword [r12 + 0x70], rax
xor eax, eax
cmp edi, 1
cmove eax, edx
mov dword [r12 + 4], edi
movups xmmword [r12 + 0x48], xmm0
mov byte [r12 + 9], al
movzx eax, byte [r12]
mov byte [r12], 0
mov rcx, r12
mov byte [rsp + 0x7f], al
call fcn.1400320a0
test eax, eax
jne 0x14003ea00
mov rcx, r12
call fcn.14002e5f0
mov r11d, eax
test eax, eax
jne 0x14003eea0
movzx ebx, byte [r12 + 9]
mov r10, qword [r12 + 0x50]
lea rax, str.On_tree_page__u_cell__d:
mov qword [rsi + 0x28], rax
movzx eax, byte [r10 + rbx + 5]
movzx ecx, byte [r10 + rbx + 6]
mov rdx, rbx
mov qword [rsp + 0x98], rbx
add edx, 0xc
shl eax, 8
or eax, ecx
sub eax, 1
movzx eax, ax
mov dword [rsp + 0xa4], eax
add eax, 1
mov dword [rsp + 0x58], eax
movzx eax, byte [r12 + 8]
mov ecx, eax
shl eax, 2
sub edx, eax
movzx eax, byte [r10 + rbx + 3]
mov r15d, edx
mov dword [rsp + 0xa8], edx
movzx edx, byte [r10 + rbx + 4]
shl eax, 8
or eax, edx
sub eax, 1
mov dword [rsp + 0x90], eax
lea eax, [r15 + rax*2]
cdqe
add rax, r10
mov qword [rsp + 0x88], rax
test cl, cl
je 0x14003ea30
mov rbx, qword [rsi + 0x58]
mov dword [rsp + 0x74], 1
mov dword [rsp + 0x78], 0xffffffff
mov dword [rbx], 0
mov edx, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x138]
sub edx, 4
mov dword [rsp + 0x50], edx
cmp eax, 0xffffffff
je 0x14003eb50
mov qword [rsp + 0x68], r10
mov dword [rsp + 0x94], r11d
mov dword [rsp + 0x128], edi
mov dword [rsp + 0xa0], r13d
mov r13, qword [rsp + 0x88]
mov qword [rsp + 0x80], r14
mov r14, rcx
mov qword [rsp + 0x130], rbp
mov ebp, eax
mov r8d, dword [rsi + 0x1c]
test r8d, r8d
je 0x14003e8f9
mov dword [rsi + 0x34], ebp
movzx edi, word [r13]
sub r13, 2
mov eax, dword [rsp + 0x58]
rol di, 8
movzx r15d, di
cmp r15d, eax
jb 0x14003ea88
cmp dword [rsp + 0x50], r15d
jb 0x14003ea88
mov rax, qword [rsp + 0x68]
movzx edi, di
mov r8, qword [rsp + 0x60]
mov rcx, r12
add rdi, rax
mov rdx, rdi
call qword [r12 + pe_nt_image_headers64]
movzx eax, word [rsp + 0xc6]
add eax, r15d
cmp dword [rsp + 0x3c], eax
jb 0x14003ee10
cmp byte [r12 + 1], 0
je 0x14003e840
mov r9d, dword [rsp + 0x74]
mov r8, qword [rsp + 0xb0]
test r9d, r9d
je 0x14003ee00
cmp r14, r8
setl al
test al, al
jne 0x14003ee7f
mov qword [rsp + 0x138], r8
mov r14, r8
mov dword [rsp + 0x74], 0
mov eax, dword [rsp + 0xc0]
movzx edx, word [rsp + 0xc4]
cmp edx, eax
jae 0x14003e893
sub eax, edx
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x80]
lea eax, [rax + rdx - 5]
xor edx, edx
div dword [rsp + 0x50]
movzx edx, word [rsp + 0xc6]
mov edx, dword [rdi + rdx - 4]
bswap edx
cmp byte [rcx + 0x21], 0
jne 0x14003ee48
mov r8d, edx
mov r9d, eax
xor edx, edx
mov rcx, rsi
call fcn.14003dff0
cmp byte [r12 + 8], 0
jne 0x14003eab8
mov rax, qword [rsp + 0x80]
mov edi, dword [rdi]
cmp byte [rax + 0x21], 0
bswap edi
jne 0x14003ee28
mov edx, edi
mov r9, r14
lea r8, [rsp + 0x138]
mov rcx, rsi
call fcn.14003e540
mov edi, eax
mov eax, dword [rsp + 0x78]
cmp edi, eax
jne 0x14003eb28
mov dword [rsp + 0x74], 0
mov r14, qword [rsp + 0x138]
nop dword [rax + rax]
sub ebp, 1
jae 0x14003e795
mov rbp, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x70]
mov r10, qword [rsp + 0x68]
mov r11d, dword [rsp + 0x94]
mov qword [rbp], r14
mov r14d, dword [rsp + 0x78]
mov qword [rsi + 0x28], 0
mov r13d, dword [rsp + 0xa0]
add r14d, 1
mov edi, dword [rsp + 0x128]
mov r15d, r14d
test ecx, ecx
jne 0x14003eb64
movzx eax, byte [rsp + 0x7f]
mov byte [r12], al
mov rcx, qword [r12 + 0x70]
test byte [rcx + 0x34], 0x20
je 0x14003ea20
mov rax, qword [rcx + 0x28]
mov rdx, qword [rax + 0xa8]
sub dword [rax + 0x98], 1
mov qword [rcx + 0x20], rdx
mov r9, qword [rax + 0x48]
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
mov r8, qword [rcx + 8]
mov rcx, r9
sub edx, 1
imul rdx, qword [rax + 0xc8]
mov rax, qword [r9]
call qword [rax + 0x90]
jmp 0x14003e9e2
mov r8d, edx
lea rdx, str.invalid_page_number__d
call fcn.14003dce0
jmp 0x14003e584
mov r8d, edi
lea rdx, str.2nd_reference_to_page__d
mov rcx, rsi
call fcn.14003dce0
jmp 0x14003e584
mov r8d, eax
lea rdx, str.unable_to_get_the_page._error_code_d
mov rcx, rsi
call fcn.14003dce0
mov rax, qword [rsp + 0x40]
mov qword [rsi + 0x28], rax
mov rax, qword [rsp + 0x48]
mov qword [rsi + 0x30], rax
jmp 0x14003e587
mov r8d, eax
lea rdx, str.btreeInitPage___returns_error_code__d
mov rcx, rsi
call fcn.14003dce0
xor r15d, r15d
jmp 0x14003e94a
call fcn.140011840
jmp 0x14003e9e2
mov ebx, dword [r10 + rbx + 8]
cmp byte [r14 + 0x21], 0
bswap ebx
jne 0x14003eeb7
mov r9, qword [rsp + 0x138]
mov edx, ebx
lea r8, [rsp + 0x138]
mov rcx, rsi
mov dword [rsp + 0x70], r11d
xor ebx, ebx
mov qword [rsp + 0x50], r10
call fcn.14003e540
mov r10, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x70]
mov dword [rsp + 0x74], 0
mov dword [rsp + 0x78], eax
jmp 0x14003e731
mov eax, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x58]
mov r8d, r15d
mov rcx, rsi
lea rdx, str.Offset__d_out_of_range__d.._d
mov dword [rsp + 0x20], eax
call fcn.14003dce0
mov dword [rsp + 0x70], 0
jmp 0x14003e8f0
movzx eax, word [rsp + 0xc6]
lea edx, [r15 + rax - 1]
mov eax, r15d
shl eax, 0x10
or edx, eax
mov eax, dword [rbx]
mov r10d, edx
lea edx, [rax + 1]
mov eax, edx
mov dword [rbx], edx
shr eax, 1
mov dword [rbx + rdx*4], r10d
cmp edx, 1
ja 0x14003eb0d
jmp 0x14003e8f0
mov dword [rcx], r10d
mov dword [rdx], r8d
mov r8d, eax
shr r8d, 1
cmp eax, 1
je 0x14003e8f0
mov r10d, dword [rcx]
mov edx, eax
mov eax, r8d
mov ecx, eax
lea rdx, [rbx + rdx*4]
lea rcx, [rbx + rcx*4]
mov r8d, dword [rcx]
cmp r10d, r8d
jb 0x14003eaf0
jmp 0x14003e8f0
lea rdx, str.Child_page_depth_differs
mov rcx, rsi
call fcn.14003dce0
mov dword [rsp + 0x74], 0
mov r14, qword [rsp + 0x138]
mov dword [rsp + 0x78], edi
jmp 0x14003e8f0
mov qword [rbp], rcx
mov eax, dword [rsp + 0x78]
mov qword [rsi + 0x28], 0
lea r14d, [rax + 1]
mov edx, dword [rsi + 0x1c]
test edx, edx
jle 0x14003edf0
cmp byte [r12 + 8], 0
jne 0x14003eeee
mov rbx, qword [rsi + 0x58]
mov eax, dword [rsp + 0x90]
mov dword [rbx], 0
cmp eax, 0xffffffff
je 0x14003ec4c
movsxd r13, eax
mov dword [rsp + 0x128], edi
movsxd rax, dword [rsp + 0xa8]
mov r15, r10
mov qword [rsp + 0x120], rsi
mov rsi, r13
mov r13d, r11d
lea rbp, [r10 + rax]
nop dword [rax]
movzx eax, word [rbp + rsi*2]
mov rcx, r12
rol ax, 8
movzx edi, ax
movzx eax, ax
lea rdx, [r15 + rax]
call qword [r12 + 0x78]
movzx eax, ax
lea r9d, [rdi + rax - 1]
mov eax, dword [rbx]
shl edi, 0x10
or r9d, edi
lea edx, [rax + 1]
mov eax, edx
mov dword [rbx], edx
shr eax, 1
mov dword [rbx + rdx*4], r9d
cmp edx, 1
ja 0x14003ec19
jmp 0x14003ec2b
mov dword [rcx], r9d
mov dword [rdx], r8d
mov r8d, eax
shr r8d, 1
cmp eax, 1
je 0x14003ec2b
mov r9d, dword [rcx]
mov edx, eax
mov eax, r8d
mov ecx, eax
lea rdx, [rbx + rdx*4]
lea rcx, [rbx + rcx*4]
mov r8d, dword [rcx]
cmp r9d, r8d
jb 0x14003ec00
sub rsi, 1
cmp esi, 0xffffffff
jne 0x14003ebc0
mov r11d, r13d
mov edi, dword [rsp + 0x128]
mov r13d, dword [rbx]
mov r10, r15
mov rsi, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x98]
movzx eax, byte [r10 + rdx + 1]
movzx edx, byte [r10 + rdx + 2]
shl eax, 8
or eax, edx
je 0x14003ece3
nop word [rax + rax]
movsxd r9, eax
movzx edx, byte [r10 + r9 + 2]
movzx ecx, byte [r10 + r9 + 3]
shl edx, 8
or edx, ecx
lea r8d, [rax + rdx - 1]
lea edx, [r13 + 1]
shl eax, 0x10
or r8d, eax
mov eax, edx
mov dword [rbx], edx
shr eax, 1
mov dword [rbx + rdx*4], r8d
cmp edx, 1
ja 0x14003ecbd
jmp 0x14003ecce
mov dword [rcx], r8d
mov dword [rdx], ebp
mov ebp, eax
shr ebp, 1
cmp eax, 1
je 0x14003ecce
mov r8d, dword [rcx]
mov edx, eax
mov eax, ebp
mov ecx, eax
lea rdx, [rbx + rdx*4]
lea rcx, [rbx + rcx*4]
mov ebp, dword [rcx]
cmp r8d, ebp
jb 0x14003eca8
movzx eax, byte [r10 + r9]
movzx edx, byte [r10 + r9 + 1]
mov r13d, dword [rbx]
shl eax, 8
or eax, edx
jne 0x14003ec70
mov r9d, dword [rsp + 0xa4]
test r13d, r13d
je 0x14003ef29
mov qword [rsp + 0x58], r10
nop dword [rax]
lea rax, [rbx + r13*4]
mov edx, r9d
mov r9d, dword [rbx + 4]
mov ecx, dword [rax]
mov dword [rbx + 4], ecx
mov dword [rax], 0xffffffff
mov eax, dword [rbx]
sub eax, 1
mov dword [rbx], eax
cmp eax, 1
jbe 0x14003ed83
mov dword [rsp + 0x50], r11d
mov r13d, dword [rbx + 4]
mov r8d, 1
mov eax, 2
jmp 0x14003ed50
mov dword [rax], ecx
lea eax, [r10 + r10]
mov dword [r11], r13d
cmp dword [rbx], eax
jb 0x14003ed7e
mov r8d, r10d
mov ecx, eax
lea rbp, [rbx + rcx*4]
lea ecx, [rax + 1]
lea r11, [rbx + rcx*4]
mov r10, rcx
mov r15d, dword [rbp]
mov ecx, dword [r11]
cmp ecx, r15d
jb 0x14003ed75
mov ecx, r15d
mov r11, rbp
mov r10d, eax
lea rax, [rbx + r8*4]
cmp r13d, ecx
jae 0x14003ed40
mov r11d, dword [rsp + 0x50]
mov r8d, r9d
movzx edx, dx
mov ebp, r11d
shr r8d, 0x10
cmp edx, r8d
jae 0x14003eef6
lea ebp, [rbp + r8 - 1]
mov r13d, dword [rbx]
sub ebp, edx
mov r11d, ebp
test r13d, r13d
jne 0x14003ed00
mov r10, qword [rsp + 0x58]
movzx r13d, r9w
mov eax, dword [rsp + 0x3c]
lea r8d, [rbp + rax - 1]
sub r8d, r13d
mov rax, qword [rsp + 0x98]
movzx r9d, byte [r10 + rax + 7]
cmp r8d, r9d
je 0x14003edf0
mov dword [rsp + 0x20], edi
lea rdx, str.Fragmentation_of__d_bytes_reported_as__d_on_page__u
mov rcx, rsi
call fcn.14003dce0
nop word [rax + rax]
mov r15d, r14d
jmp 0x14003e94a
cmp r14, r8
setle al
jmp 0x14003e825
lea rdx, str.Extends_off_end_of_page
mov rcx, rsi
call fcn.14003dce0
jmp 0x14003eaa7
mov r9d, dword [rsp + 0x128]
mov r8d, 5
mov edx, edi
mov rcx, rsi
call fcn.14003ddb0
jmp 0x14003e8b5
mov r8d, 3
mov r9d, dword [rsp + 0x128]
mov rcx, rsi
mov dword [rsp + 0xac], eax
mov dword [rsp + 0x88], edx
call fcn.14003ddb0
mov eax, dword [rsp + 0xac]
mov edx, dword [rsp + 0x88]
jmp 0x14003e883
lea rdx, str.Rowid__lld_out_of_order
mov rcx, rsi
call fcn.14003dce0
mov r8, qword [rsp + 0xb0]
jmp 0x14003e82d
mov r8d, eax
lea rdx, str.free_space_corruption
mov rcx, rsi
call fcn.14003dce0
jmp 0x14003ea12
lea rax, str.On_page__u_at_right_child:
mov r9d, edi
mov edx, ebx
mov rcx, rsi
mov qword [rsi + 0x28], rax
mov r8d, 5
mov dword [rsp + 0x70], r11d
mov qword [rsp + 0x50], r10
call fcn.14003ddb0
mov r11d, dword [rsp + 0x70]
mov r10, qword [rsp + 0x50]
jmp 0x14003ea42
mov r13d, dword [rbx]
jmp 0x14003ec4c
mov r10, qword [rsp + 0x58]
mov r13d, edx
mov r9d, edi
mov rcx, rsi
lea rdx, str.Multiple_uses_for_byte__u_of_page__u
mov qword [rsp + 0x50], r10
call fcn.14003dce0
mov eax, dword [rbx]
mov r10, qword [rsp + 0x50]
test eax, eax
jne 0x14003edf0
jmp 0x14003edb8
mov r8d, dword [rsp + 0x3c]
sub r8d, 1
sub r8d, r9d
jmp 0x14003edc4