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

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x4a8480
test dword [0x87ed4c], 0xffffffff
jne 0x4a8ed0
call fcn.007663a0
jmp fcn.004a8450
push edi
push esi
push ebp
push ebx
sub esp, 0xf0
mov ebx, ecx
mov esi, edx
mov edi, eax
lea eax, [esp + 0x7c]
push esi
push str.Page__d:
push eax
push 0x64
call fcn.0047d0b0
add esp, 0x10
mov eax, dword [edi]
movzx edx, word [eax + 0x16]
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], edx
test esi, esi
jne 0x4a84ca
xor eax, eax
add esp, 0xf0
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, edi
mov edx, esi
mov ecx, ebx
call fcn.004aa180
test eax, eax
je 0x4a84e6
xor eax, eax
add esp, 0xf0
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0xec]
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, esi
lea ecx, [esp + 0xe4]
call fcn.004a43e0
test eax, eax
jne 0x4a8e7a
mov ebp, dword [esp + 0xe4]
mov edx, ebx
mov ecx, 0x64
cmp esi, 1
mov eax, dword [ebp + 4]
mov ebx, dword [ebp]
mov dword [esp + 0xe0], eax
mov dword [eax + 0x40], ebx
mov dword [eax + 0x44], ebp
mov dword [eax + 0x3c], edx
mov edx, 0
cmovne ecx, edx
mov dword [eax + 0x48], esi
mov byte [eax + 5], cl
mov byte [eax], 0
call fcn.00586790
test eax, eax
jne 0x4a8e39
mov eax, dword [esp + 0xe0]
movzx edx, word [eax + 0x10]
mov dword [esp + 0x64], 0
test edx, edx
jle 0x4a89e5
mov edx, dword [esp + 0xe8]
xor eax, eax
xor ebp, ebp
lea edx, [edx - 4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x68], esi
mov edx, dword [esp + 0x78]
cmp dword [edx + 0x10], 0
je 0x4a8ebd
push ebp
push dword [esp + 0x6c]
push str.On_tree_page__d_cell__d:
lea edx, [esp + 0x88]
push edx
push 0x64
call fcn.0047d0b0
add esp, 0x14
mov eax, dword [esp + 0xe0]
movzx edx, word [eax + 0xc]
add edx, dword [eax + 0x40]
movzx ebx, word [eax + 0x12]
movzx edi, byte [eax + 6]
movzx esi, byte [edx + ebp*2]
movzx ecx, byte [edx + ebp*2 + 1]
movzx edx, byte [eax + 2]
shl esi, 8
or esi, ecx
and ebx, esi
add ebx, dword [eax + 0x40]
mov dword [esp + 0x70], edi
mov dword [esp + 0x60], edx
mov dword [esp + 0x20], ebx
test edx, edx
je 0x4a866b
mov edx, eax
movzx ecx, byte [edx + 4]
test ecx, ecx
je 0x4a8629
mov edx, edi
lea eax, [ebx + edx]
movzx esi, byte [eax]
cmp esi, 0x80
jge 0x4a8613
mov dword [esp + 0x58], esi
mov eax, 1
jmp 0x4a8623
lea edx, [esp + 0x58]
call fcn.00497b90
mov esi, dword [esp + 0x58]
movzx eax, al
add dword [esp + 0x70], eax
jmp 0x4a8635
mov dword [esp + 0x58], 0
xor eax, eax
xor esi, esi
mov ecx, dword [esp + 0x70]
lea eax, [ebx + ecx]
lea edx, [esp + 0x28]
call fcn.004bf330
mov edx, dword [esp + 0xe0]
movzx ecx, byte [edx + 2]
mov edi, esi
mov dword [esp + 0x30], esi
movzx eax, al
add eax, dword [esp + 0x70]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x74], eax
jmp 0x4a86d6
mov edx, edi
mov dword [esp + 0x30], 0
lea eax, [ebx + edx]
movzx esi, byte [eax]
cmp esi, 0x80
jge 0x4a8695
mov dword [esp + 0x58], esi
xor eax, eax
xor edi, edi
mov dword [esp + 0x74], 1
jmp 0x4a86bc
lea edx, [esp + 0x58]
call fcn.00497b90
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x58]
movzx ecx, byte [edx + 2]
mov dword [esp + 0x60], ecx
movzx eax, al
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0x70]
mov ecx, esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x74]
mov dword [esp + 0x34], esi
mov word [esp + 0x38], dx
mov edx, dword [esp + 0xe0]
movzx edx, word [edx + 8]
mov dword [esp + 0x5c], edx
cmp esi, edx
ja 0x4a8729
movzx edx, word [esp + 0x74]
add edx, esi
xor eax, eax
mov word [esp + 0x3c], ax
movzx esi, si
mov dword [esp + 0x6c], esi
test edx, 0xfffffffc
mov word [esp + 0x3a], si
mov esi, 4
cmove edx, esi
mov word [esp + 0x3e], dx
mov dword [esp + 0x4c], eax
jmp 0x4a8785
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x50], edi
movzx edi, word [edx + 0xa]
mov edx, dword [edx + 0x3c]
sub esi, edi
mov eax, esi
movzx edx, word [edx + 0x16]
add edx, 0xfffffffc
mov dword [esp + 0x54], edx
xor edx, edx
mov esi, dword [esp + 0x54]
div esi
add edx, edi
movzx esi, dx
cmp edx, dword [esp + 0x5c]
mov edx, dword [esp + 0x74]
cmovle edi, esi
mov dword [esp + 0x6c], edi
add edx, edi
mov word [esp + 0x3a], di
movzx edi, dx
lea edx, [edi + 4]
mov dword [esp + 0x4c], edi
mov word [esp + 0x3c], di
mov edi, dword [esp + 0x50]
mov word [esp + 0x3e], dx
add ecx, edi
cmp dword [esp + 0x60], 0
cmove edi, ecx
cmp edi, dword [esp + 0x6c]
jbe 0x4a88c0
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0xe0]
add edx, ebx
movzx ecx, word [ecx + 0x16]
add ecx, dword [esi + 0x40]
mov dword [esp + 0x40], edx
cmp edx, ecx
ja 0x4a88c0
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x1c]
neg esi
add esi, dword [esp + 0xe8]
xor edx, edx
lea eax, [esi + edi - 5]
mov edi, dword [esp + 0x4c]
div ecx
movzx esi, byte [edi + ebx]
mov edi, dword [esp + 0x40]
movzx edx, byte [edi + 1]
movzx ecx, byte [edi + 2]
mov dword [esp + 0x14], eax
shl esi, 0x18
shl edx, 0x10
or esi, edx
movzx edx, byte [edi + 3]
shl ecx, 8
or esi, ecx
or esi, edx
mov edx, dword [esp + 0xec]
movzx edx, byte [edx + 0x12]
test edx, edx
je 0x4a88a3
mov edx, dword [esp + 0x78]
lea edi, [esp + 0x18]
mov eax, dword [edx]
mov dword [esp + 0xc], edi
mov edx, esi
lea ecx, [esp + 0x48]
call fcn.004aa090
test eax, eax
jne 0x4a886f
movzx ecx, byte [esp + 0x48]
mov edx, dword [esp + 0x18]
cmp ecx, 3
jne 0x4a8848
cmp edx, dword [esp + 0x68]
je 0x4a88a3
push edx
push ecx
push dword [esp + 0x70]
push 3
push esi
push str.Bad_ptr_map_entry_key_d_expected__d__d__got__d__d_
lea edx, [esp + 0x94]
push edx
push dword [esp + 0x94]
call fcn.004aa1e0
add esp, 0x20
jmp 0x4a88a3
cmp eax, 0xc0a
je 0x4a887b
cmp eax, 7
jne 0x4a8886
mov edx, dword [esp + 0x78]
mov dword [edx + 0x18], 1
push esi
push str.Failed_to_read_ptrmap_key_d
lea edx, [esp + 0x84]
push edx
push dword [esp + 0x84]
call fcn.004aa1e0
add esp, 0x10
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], edi
lea edx, [esp + 0x7c]
mov ecx, esi
mov dword [esp + 0x10], edx
xor edx, edx
call fcn.004a98a0
mov edx, dword [esp + 0xe0]
movzx ecx, byte [edx + 3]
test ecx, ecx
jne 0x4a89c9
movzx esi, byte [ebx]
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
movzx ebx, byte [ebx + 3]
shl esi, 0x18
shl edx, 0x10
or esi, edx
mov edi, dword [esp + 0xec]
shl ecx, 8
or esi, ecx
or esi, ebx
movzx edx, byte [edi + 0x12]
test edx, edx
je 0x4a898e
mov edi, dword [esp + 0x78]
lea ebx, [esp + 0x44]
mov eax, dword [edi]
mov dword [esp + 0xc], ebx
mov edx, esi
lea ecx, [esp + 0x4a]
call fcn.004aa090
test eax, eax
jne 0x4a895c
movzx ecx, byte [esp + 0x4a]
mov edx, dword [esp + 0x44]
cmp ecx, 5
jne 0x4a8935
cmp edx, dword [esp + 0x68]
je 0x4a898e
push edx
push ecx
push dword [esp + 0x70]
push 5
push esi
push str.Bad_ptr_map_entry_key_d_expected__d__d__got__d__d_
lea edx, [esp + 0x94]
push edx
push dword [esp + 0x94]
call fcn.004aa1e0
add esp, 0x20
jmp 0x4a898e
cmp eax, 0xc0a
je 0x4a8968
cmp eax, 7
jne 0x4a8971
mov edx, edi
mov dword [edx + 0x18], 1
push esi
push str.Failed_to_read_ptrmap_key_d
lea edx, [esp + 0x84]
push edx
push dword [esp + 0x84]
call fcn.004aa1e0
add esp, 0x10
mov eax, dword [esp + 0x78]
mov edx, esi
lea ecx, [esp + 0x7c]
call fcn.004a8450
mov ebx, eax
test ebp, ebp
jle 0x4a89c5
cmp ebx, dword [esp + 0x64]
je 0x4a89c5
push str.Child_page_depth_differs
lea edx, [esp + 0x80]
push edx
push dword [esp + 0x80]
call fcn.004aa1e0
add esp, 0xc
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0xe0]
inc ebp
movzx ecx, word [edx + 0x10]
cmp ebp, ecx
jl 0x4a8587
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0xe0]
movzx edx, byte [eax + 3]
test edx, edx
jne 0x4a8acd
mov ecx, eax
movzx edx, byte [ecx + 5]
mov ecx, dword [ecx + 0x40]
movzx eax, byte [edx + ecx + 8]
movzx ebx, byte [edx + ecx + 9]
movzx ebp, byte [edx + ecx + 0xa]
movzx edx, byte [edx + ecx + 0xb]
shl eax, 0x18
shl ebx, 0x10
or eax, ebx
shl ebp, 8
or eax, ebp
or eax, edx
mov dword [esp + 0x14], eax
push esi
push str.On_page__d_at_right_child:
lea eax, [esp + 0x84]
push eax
push 0x64
call fcn.0047d0b0
add esp, 0x10
mov eax, dword [esp + 0xec]
movzx edx, byte [eax + 0x12]
test edx, edx
je 0x4a8abe
mov eax, dword [edi]
lea ebx, [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], ebx
lea ecx, [esp + 0x49]
call fcn.004aa090
test eax, eax
jne 0x4a8a97
movzx edx, byte [esp + 0x49]
mov eax, dword [esp + 0x1c]
cmp edx, 5
jne 0x4a8a7c
cmp eax, esi
je 0x4a8abe
push eax
push edx
push esi
push 5
push dword [esp + 0x24]
push str.Bad_ptr_map_entry_key_d_expected__d__d__got__d__d_
push 0
push edi
call fcn.004aa1e0
add esp, 0x20
jmp 0x4a8abe
cmp eax, 0xc0a
je 0x4a8aa3
cmp eax, 7
jne 0x4a8aaa
mov dword [edi + 0x18], 1
push dword [esp + 0x14]
push str.Failed_to_read_ptrmap_key_d
push 0
push edi
call fcn.004aa1e0
add esp, 0x10
mov edx, dword [esp + 0x14]
mov eax, edi
lea ecx, [esp + 0x7c]
call fcn.004a8450
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xec]
mov eax, dword [edx + 0x40]
movzx ecx, byte [edx + 5]
movzx ebx, word [ebx + 0x14]
mov dword [esp + 0x60], eax
mov eax, dword [0x84f7c4]
mov dword [esp + 0x5c], ecx
test eax, eax
je 0x4a8aff
push eax
call dword [0x8303c8]
pop ecx
mov eax, ebx
call fcn.004b94c0
mov ebp, eax
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4a8b19
push eax
call dword [0x8303d0]
pop ecx
test ebp, ebp
jne 0x4a8b29
mov dword [edi + 0x18], 1
jmp 0x4a8ddf
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
movzx eax, byte [edx + ecx + 5]
movzx ebx, byte [edx + ecx + 6]
shl eax, 8
or eax, ebx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x14], eax
lea ecx, [ebp + eax]
sub edx, eax
push edx
push 0
push ecx
call fcn.00766740
push dword [esp + 0x20]
push 1
push ebp
call fcn.00766740
add esp, 0x18
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
movzx ecx, byte [eax + edx + 3]
movzx ebx, byte [eax + edx + 4]
shl ecx, 8
or ecx, ebx
mov edx, dword [esp + 0xe0]
movzx edx, byte [edx + 3]
shl edx, 2
neg edx
add edx, eax
test ecx, ecx
jle 0x4a8d37
mov ebx, dword [esp + 0x60]
xor eax, eax
lea ebx, [ebx + edx + 0xc]
mov edx, dword [esp + 0xe8]
lea edx, [edx - 4]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x78], edi
mov dword [esp + 0x68], esi
mov esi, eax
movzx ecx, byte [ebx + esi*2]
movzx edx, byte [ebx + esi*2 + 1]
shl ecx, 8
or ecx, edx
cmp ecx, dword [esp + 0x70]
jle 0x4a8be2
mov ebp, 0x400
jmp 0x4a8cdf
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0xe0]
lea edx, [ebp + ecx]
movzx ebp, byte [edi + 6]
mov dword [esp + 0x54], edx
add ebp, edx
movzx edx, byte [edi + 2]
test edx, edx
je 0x4a8c55
mov edx, edi
movzx edi, byte [edx + 4]
test edi, edi
je 0x4a8c3d
movzx eax, byte [ebp]
cmp eax, 0x80
jge 0x4a8c1f
mov edi, 1
jmp 0x4a8c39
mov eax, ebp
lea edx, [esp + 0x4c]
mov dword [esp + 0x14], ecx
call fcn.00497b90
mov ecx, dword [esp + 0x14]
movzx edi, al
mov eax, dword [esp + 0x4c]
add ebp, edi
jmp 0x4a8c3f
xor eax, eax
lea edi, [ebp + 9]
movzx edx, byte [ebp]
inc ebp
test edx, 0x80
je 0x4a8c83
cmp ebp, edi
jb 0x4a8c42
jmp 0x4a8c83
movzx eax, byte [ebp]
cmp eax, 0x80
jge 0x4a8c67
mov edi, 1
jmp 0x4a8c81
mov eax, ebp
lea edx, [esp + 0x4c]
mov dword [esp + 0x14], ecx
call fcn.00497b90
mov ecx, dword [esp + 0x14]
movzx edi, al
mov eax, dword [esp + 0x4c]
add ebp, edi
mov edi, dword [esp + 0xe0]
movzx edi, word [edi + 8]
mov dword [esp + 0x50], edi
cmp eax, edi
jbe 0x4a8cc7
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0xe0]
xor edx, edx
movzx edi, word [ebp + 0xa]
mov ebp, dword [ebp + 0x3c]
sub eax, edi
movzx ebp, word [ebp + 0x16]
add ebp, 0xfffffffc
div ebp
mov eax, edx
mov ebp, dword [esp + 0x40]
add eax, edi
cmp eax, dword [esp + 0x50]
cmova eax, edi
add eax, 4
sub ebp, dword [esp + 0x54]
mov edi, 4
add ebp, eax
cmp ebp, 4
cmovb ebp, edi
mov dword [esp + 0x4c], ebp
movzx ebp, bp
lea edx, [ecx + ebp]
cmp edx, dword [esp + 0xe8]
jg 0x4a8d03
mov edx, dword [esp + 0x6c]
lea ebp, [ecx + ebp - 1]
add edx, ebp
cmp ebp, ecx
jl 0x4a8d20
inc byte [edx]
dec edx
dec ebp
cmp ebp, ecx
jge 0x4a8cf9
jmp 0x4a8d20
xor edx, edx
push edx
push dword [esp + 0x6c]
push esi
push str.Corruption_detected_in_cell__d_on_page__d
push edx
push dword [esp + 0x8c]
call fcn.004aa1e0
add esp, 0x18
inc esi
cmp esi, dword [esp + 0x74]
jl 0x4a8bc4
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
movzx edx, byte [eax + ecx + 1]
movzx ebx, byte [eax + ecx + 2]
shl edx, 8
or edx, ebx
jle 0x4a8d8d
mov eax, ecx
mov dword [esp + 0x68], esi
movzx ebx, byte [edx + eax + 2]
movzx ecx, byte [edx + eax + 3]
shl ebx, 8
or ebx, ecx
lea ebx, [edx + ebx - 1]
lea ecx, [ebp + ebx]
cmp ebx, edx
jl 0x4a8d79
inc byte [ecx]
dec ecx
dec ebx
cmp ebx, edx
jge 0x4a8d71
movzx ecx, byte [edx + eax]
movzx edx, byte [edx + eax + 1]
shl ecx, 8
or edx, ecx
jg 0x4a8d56
mov esi, dword [esp + 0x68]
xor edx, edx
cmp dword [esp + 0xe8], 0
jle 0x4a8dbb
mov ebx, dword [esp + 0xe8]
xor eax, eax
movsx ecx, byte [eax + ebp]
test ecx, ecx
jne 0x4a8dad
inc edx
jmp 0x4a8db6
cmp ecx, 1
jg 0x4a8e9e
inc eax
cmp eax, ebx
jl 0x4a8da2
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
movzx eax, byte [eax + ecx + 7]
cmp edx, eax
je 0x4a8ddf
push esi
push eax
push edx
push str.Fragmentation_of__d_bytes_reported_as__d_on_page__d
push 0
push edi
call fcn.004aa1e0
add esp, 0x18
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4a8df0
push eax
call dword [0x8303c8]
pop ecx
test ebp, ebp
je 0x4a8dfb
mov eax, ebp
call fcn.004b8fd0
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4a8e0c
push eax
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4a8e29
mov ebx, dword [eax + 0x10]
call fcn.0057a950
mov eax, ebx
call fcn.0057aac0
mov eax, dword [esp + 0x64]
inc eax
add esp, 0xf0
pop ebx
pop ebp
pop esi
pop edi
ret
push eax
push str.btreeInitPage___returns_error_code__d
lea eax, [esp + 0x84]
push eax
push edi
call fcn.004aa1e0
add esp, 0x10
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4a8e6d
mov ebx, dword [eax + 0x10]
call fcn.0057a950
mov eax, ebx
call fcn.0057aac0
xor eax, eax
add esp, 0xf0
pop ebx
pop ebp
pop esi
pop edi
ret
push eax
push str.unable_to_get_the_page._error_code_d
lea eax, [esp + 0x84]
push eax
push edi
call fcn.004aa1e0
add esp, 0x10
xor eax, eax
add esp, 0xf0
pop ebx
pop ebp
pop esi
pop edi
ret
push esi
push eax
push str.Multiple_uses_for_byte__d_of_page__d
push 0
push edi
mov dword [esp + 0x28], edx
call fcn.004aa1e0
mov edx, dword [esp + 0x28]
add esp, 0x14
jmp 0x4a8dbb
mov edi, edx
mov esi, dword [esp + 0x68]
jmp 0x4a89e5
push edi
push esi
push ebp
push ebx
sub esp, 0xe8
mov ebx, ecx
mov esi, edx
mov ebp, eax
lea eax, [esp + 0x78]
push esi
push str.Page__d:
push eax
push 0x64
call fcn.0047d0b0
add esp, 0x10
mov edi, dword [ebp]
movzx eax, word [edi + 0x16]
mov dword [esp + 0xe4], eax
test esi, esi
jne 0x4a8f14
xor eax, eax
add esp, 0xe8
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, ebp
mov edx, esi
mov ecx, ebx
call fcn.004aa180
test eax, eax
je 0x4a8f30
xor eax, eax
add esp, 0xe8
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [esp + 0xc], 0
mov eax, dword [edi]
mov edx, esi
lea ecx, [esp + 0xe0]
call fcn.004a43e0
test eax, eax
jne 0x4a984e
mov ebx, dword [esp + 0xe0]
mov eax, dword [ebx + 4]
mov dword [esp + 0xdc], eax
mov ecx, dword [ebx]
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ebx
mov dword [eax + 0x3c], edi
mov dword [eax + 0x48], esi
mov edx, 0x64
cmp esi, 1
je 0x4a8f7e
mov edx, 0
mov byte [eax + 5], dl
mov byte [eax], 0
call fcn.00586790
test eax, eax
jne 0x4a980d
mov eax, dword [esp + 0xdc]
movzx edx, word [eax + 0x10]
mov dword [esp + 0x60], 0
test edx, edx
jle 0x4a93e6
xor ebx, ebx
mov eax, dword [esp + 0xe4]
lea eax, [eax - 4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0x74]
cmp dword [eax + 0x10], 0
je 0x4a9889
push ebx
push dword [esp + 0x68]
push str.On_tree_page__d_cell__d:
lea eax, [esp + 0x84]
push eax
push 0x64
call fcn.0047d0b0
add esp, 0x14
mov edi, dword [esp + 0xdc]
movzx eax, word [edi + 0xc]
add eax, dword [edi + 0x40]
movzx esi, word [edi + 0x12]
movzx ecx, byte [eax + ebx*2]
shl ecx, 8
movzx edx, byte [eax + ebx*2 + 1]
or ecx, edx
and esi, ecx
add esi, dword [edi + 0x40]
mov dword [esp + 0x1c], esi
movzx ebp, byte [edi + 6]
mov dword [esp + 0x70], ebp
movzx eax, byte [edi + 2]
mov dword [esp + 0x68], eax
test eax, eax
je 0x4a90a2
mov eax, edi
movzx edx, byte [eax + 4]
test edx, edx
je 0x4a9069
mov eax, ebp
add eax, esi
movzx ebp, byte [eax]
cmp ebp, 0x80
jge 0x4a9053
mov dword [esp + 0x54], ebp
mov eax, 1
jmp 0x4a9063
lea edx, [esp + 0x54]
call fcn.00497b90
movzx eax, al
mov ebp, dword [esp + 0x54]
add dword [esp + 0x70], eax
jmp 0x4a9073
mov dword [esp + 0x54], 0
xor ebp, ebp
mov ecx, dword [esp + 0x70]
lea eax, [esi + ecx]
lea edx, [esp + 0x24]
call fcn.004bf330
movzx ecx, al
add ecx, dword [esp + 0x70]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x2c], ebp
mov eax, edi
movzx edx, byte [eax + 2]
mov dword [esp + 0x68], edx
mov edi, dword [esp + 0x24]
jmp 0x4a90fe
mov dword [esp + 0x2c], 0
mov eax, ebp
add eax, esi
movzx ebp, byte [eax]
cmp ebp, 0x80
jge 0x4a90ca
mov dword [esp + 0x54], ebp
xor eax, eax
mov dword [esp + 0x58], eax
mov ecx, 1
jmp 0x4a90ec
lea edx, [esp + 0x54]
call fcn.00497b90
movzx ecx, al
mov eax, edi
movzx edx, byte [eax + 2]
mov dword [esp + 0x68], edx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x54]
add ecx, dword [esp + 0x70]
mov edi, ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], ebp
mov word [esp + 0x34], cx
mov eax, dword [esp + 0xdc]
movzx edx, word [eax + 8]
mov dword [esp + 0x5c], edx
cmp ebp, edx
ja 0x4a9145
movzx eax, cx
add eax, ebp
movzx ebp, bp
mov dword [esp + 0x6c], ebp
mov word [esp + 0x36], bp
xor ecx, ecx
mov word [esp + 0x38], cx
test eax, 0xfffffffc
jne 0x4a913e
mov eax, 4
mov word [esp + 0x3a], ax
jmp 0x4a9193
mov dword [esp + 0x4c], edi
movzx edi, word [eax + 0xa]
mov dword [esp + 0x6c], edi
sub ebp, edi
mov edx, dword [eax + 0x3c]
movzx edi, word [edx + 0x16]
add edi, 0xfffffffc
mov eax, ebp
xor edx, edx
div edi
add edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x4c]
jg 0x4a9178
movzx eax, dx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
mov word [esp + 0x36], ax
add ecx, eax
movzx ecx, cx
mov word [esp + 0x38], cx
lea edx, [ecx + 4]
mov word [esp + 0x3a], dx
mov eax, dword [esp + 0x58]
add edi, eax
cmp dword [esp + 0x68], 0
je 0x4a91a2
mov edi, eax
cmp edi, dword [esp + 0x6c]
jbe 0x4a92c6
lea eax, [esi + ecx]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x50]
movzx edx, word [edx + 0x16]
mov ebp, dword [esp + 0xdc]
add edx, dword [ebp + 0x40]
cmp eax, edx
ja 0x4a92c6
mov ebp, dword [esp + 0x6c]
neg ebp
add ebp, dword [esp + 0xe4]
lea eax, [ebp + edi - 5]
xor edx, edx
mov edi, dword [esp + 0x3c]
div edi
mov dword [esp + 0x18], eax
movzx ebp, byte [ecx + esi]
shl ebp, 0x18
mov edx, dword [esp + 0x48]
movzx ecx, byte [edx + 1]
shl ecx, 0x10
or ebp, ecx
movzx eax, byte [edx + 2]
shl eax, 8
or ebp, eax
movzx ecx, byte [edx + 3]
or ebp, ecx
mov edi, dword [esp + 0x50]
movzx eax, byte [edi + 0x12]
test eax, eax
je 0x4a92a9
lea edi, [esp + 0x14]
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov edx, ebp
lea ecx, [esp + 0x44]
call fcn.004aa090
test eax, eax
jne 0x4a9275
movzx edx, byte [esp + 0x44]
mov eax, dword [esp + 0x14]
cmp edx, 3
jne 0x4a924e
cmp eax, dword [esp + 0x64]
je 0x4a92a9
push eax
push edx
push dword [esp + 0x6c]
push 3
push ebp
push str.Bad_ptr_map_entry_key_d_expected__d__d__got__d__d_
lea eax, [esp + 0x90]
push eax
push dword [esp + 0x90]
call fcn.004aa1e0
add esp, 0x20
jmp 0x4a92a9
cmp eax, 0xc0a
je 0x4a9281
cmp eax, 7
jne 0x4a928c
mov eax, dword [esp + 0x74]
mov dword [eax + 0x18], 1
push ebp
push str.Failed_to_read_ptrmap_key_d
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x80]
call fcn.004aa1e0
add esp, 0x10
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], edi
lea eax, [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
xor edx, edx
mov ecx, ebp
call fcn.004a98a0
mov eax, dword [esp + 0xdc]
movzx edx, byte [eax + 3]
test edx, edx
jne 0x4a93c6
movzx ebp, byte [esi]
shl ebp, 0x18
movzx eax, byte [esi + 1]
shl eax, 0x10
or ebp, eax
movzx edx, byte [esi + 2]
shl edx, 8
or ebp, edx
movzx ecx, byte [esi + 3]
or ebp, ecx
mov esi, dword [esp + 0x50]
movzx edi, byte [esi + 0x12]
test edi, edi
je 0x4a9391
lea esi, [esp + 0x40]
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x74]
mov eax, dword [edi]
mov edx, ebp
lea ecx, [esp + 0x46]
call fcn.004aa090
test eax, eax
jne 0x4a935f
movzx edx, byte [esp + 0x46]
mov eax, dword [esp + 0x40]
cmp edx, 5
jne 0x4a9338
cmp eax, dword [esp + 0x64]
je 0x4a9391
push eax
push edx
push dword [esp + 0x6c]
push 5
push ebp
push str.Bad_ptr_map_entry_key_d_expected__d__d__got__d__d_
lea eax, [esp + 0x90]
push eax
push dword [esp + 0x90]
call fcn.004aa1e0
add esp, 0x20
jmp 0x4a9391
cmp eax, 0xc0a
je 0x4a936b
cmp eax, 7
jne 0x4a9374
mov eax, edi
mov dword [eax + 0x18], 1
push ebp
push str.Failed_to_read_ptrmap_key_d
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x80]
call fcn.004aa1e0
add esp, 0x10
mov eax, dword [esp + 0x74]
mov edx, ebp
lea ecx, [esp + 0x78]
call fcn.004a8450
mov ebp, eax
test ebx, ebx
jle 0x4a93c2
cmp ebp, dword [esp + 0x60]
je 0x4a93c2
push str.Child_page_depth_differs
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x7c]
call fcn.004aa1e0
add esp, 0xc
mov dword [esp + 0x60], ebp
inc ebx
mov eax, dword [esp + 0xdc]
movzx edx, word [eax + 0x10]
cmp ebx, edx
jl 0x4a8fc8
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0xdc]
movzx edx, byte [eax + 3]
test edx, edx
jne 0x4a94c8
mov ebx, eax
movzx ecx, byte [ebx + 5]
mov eax, dword [ebx + 0x40]
movzx edx, byte [ecx + eax + 8]
shl edx, 0x18
movzx ebx, byte [ecx + eax + 9]
shl ebx, 0x10
or edx, ebx
movzx ebx, byte [ecx + eax + 0xa]
shl ebx, 8
or edx, ebx
movzx eax, byte [ecx + eax + 0xb]
or edx, eax
mov dword [esp + 0x3c], edx
push esi
push str.On_page__d_at_right_child:
lea edx, [esp + 0x80]
push edx
push 0x64
call fcn.0047d0b0
add esp, 0x10
movzx eax, byte [edi + 0x12]
test eax, eax
je 0x4a94b9
lea ebx, [esp + 0x18]
mov dword [esp + 0xc], ebx
mov eax, dword [ebp]
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x45]
call fcn.004aa090
test eax, eax
jne 0x4a9492
movzx edx, byte [esp + 0x45]
mov eax, dword [esp + 0x18]
cmp edx, 5
jne 0x4a9477
cmp eax, esi
je 0x4a94b9
push eax
push edx
push esi
push 5
push dword [esp + 0x4c]
push str.Bad_ptr_map_entry_key_d_expected__d__d__got__d__d_
push 0
push ebp
call fcn.004aa1e0
add esp, 0x20
jmp 0x4a94b9
cmp eax, 0xc0a
je 0x4a949e
cmp eax, 7
jne 0x4a94a5
mov dword [ebp + 0x18], 1
push dword [esp + 0x3c]
push str.Failed_to_read_ptrmap_key_d
push 0
push ebp
call fcn.004aa1e0
add esp, 0x10
mov eax, ebp
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x78]
call fcn.004a8450
mov edx, dword [esp + 0xdc]
mov eax, dword [edx + 0x40]
mov dword [esp + 0x5c], eax
movzx ecx, byte [edx + 5]
mov dword [esp + 0x58], ecx
movzx ebx, word [edi + 0x14]
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4a94f3
push eax
call dword [0x8303c8]
pop ecx
mov eax, ebx
call fcn.004b94c0
mov edi, eax
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4a950d
push eax
call dword [0x8303d0]
pop ecx
test edi, edi
jne 0x4a951d
mov dword [ebp + 0x18], 1
jmp 0x4a97b3
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
movzx eax, byte [edx + ecx + 5]
shl eax, 8
movzx ebx, byte [edx + ecx + 6]
or eax, ebx
mov dword [esp + 0x3c], eax
lea ecx, [edi + eax]
mov edx, dword [esp + 0xe4]
sub edx, eax
push edx
push 0
push ecx
call fcn.00766740
push dword [esp + 0x48]
push 1
push edi
call fcn.00766740
add esp, 0x18
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
movzx eax, byte [edx + ecx + 3]
shl eax, 8
movzx ebx, byte [edx + ecx + 4]
or eax, ebx
mov ecx, dword [esp + 0xdc]
movzx ecx, byte [ecx + 3]
shl ecx, 2
neg ecx
add ecx, edx
test eax, eax
jle 0x4a9714
xor edx, edx
mov ebx, dword [esp + 0x5c]
lea ebx, [ebx + ecx + 0xc]
mov ecx, dword [esp + 0xe4]
lea ecx, [ecx - 4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x64], esi
mov ebp, edx
movzx esi, byte [ebx + ebp*2]
shl esi, 8
movzx eax, byte [ebx + ebp*2 + 1]
or esi, eax
cmp esi, dword [esp + 0x70]
jle 0x4a95d5
mov ecx, 0x400
jmp 0x4a96bc
mov edi, dword [esp + 0x5c]
lea eax, [edi + esi]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0xdc]
movzx edi, byte [ecx + 6]
add edi, eax
movzx eax, byte [ecx + 2]
test eax, eax
je 0x4a963d
mov eax, ecx
movzx ecx, byte [eax + 4]
test ecx, ecx
je 0x4a9626
movzx eax, byte [edi]
cmp eax, 0x80
jge 0x4a9610
mov ecx, 1
jmp 0x4a9622
mov eax, edi
lea edx, [esp + 0x48]
call fcn.00497b90
movzx ecx, al
mov eax, dword [esp + 0x48]
add edi, ecx
jmp 0x4a9628
xor eax, eax
lea ecx, [edi + 9]
movzx edx, byte [edi]
inc edi
test edx, 0x80
je 0x4a9662
cmp edi, ecx
jb 0x4a962b
jmp 0x4a9662
movzx eax, byte [edi]
cmp eax, 0x80
jge 0x4a964e
mov ecx, 1
jmp 0x4a9660
mov eax, edi
lea edx, [esp + 0x48]
call fcn.00497b90
movzx ecx, al
mov eax, dword [esp + 0x48]
add edi, ecx
mov ecx, dword [esp + 0xdc]
movzx ecx, word [ecx + 8]
mov dword [esp + 0x50], ecx
cmp eax, ecx
jbe 0x4a96a5
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0xdc]
movzx ecx, word [edi + 0xa]
sub eax, ecx
mov edi, dword [edi + 0x3c]
movzx edi, word [edi + 0x16]
add edi, 0xfffffffc
xor edx, edx
div edi
add edx, ecx
cmp edx, dword [esp + 0x50]
ja 0x4a969e
mov ecx, edx
lea eax, [ecx + 4]
mov edi, dword [esp + 0x3c]
sub edi, dword [esp + 0x4c]
add edi, eax
cmp edi, 4
jae 0x4a96b5
mov edi, 4
mov dword [esp + 0x48], edi
movzx ecx, di
lea eax, [esi + ecx]
cmp eax, dword [esp + 0xe4]
jg 0x4a96e0
lea ecx, [esi + ecx - 1]
mov eax, dword [esp + 0x68]
add eax, ecx
cmp ecx, esi
jl 0x4a96fd
inc byte [eax]
dec eax
dec ecx
cmp ecx, esi
jge 0x4a96d6
jmp 0x4a96fd
xor eax, eax
push eax
push dword [esp + 0x68]
push ebp
push str.Corruption_detected_in_cell__d_on_page__d
push eax
push dword [esp + 0x88]
call fcn.004aa1e0
add esp, 0x18
inc ebp
cmp ebp, dword [esp + 0x6c]
jl 0x4a95b7
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
movzx edx, byte [eax + ecx + 1]
shl edx, 8
movzx ebx, byte [eax + ecx + 2]
or edx, ebx
jle 0x4a9761
mov eax, ecx
movzx ebx, byte [edx + eax + 2]
shl ebx, 8
movzx ecx, byte [edx + eax + 3]
or ebx, ecx
lea ebx, [edx + ebx - 1]
lea ecx, [edi + ebx]
cmp ebx, edx
jl 0x4a9751
inc byte [ecx]
dec ecx
dec ebx
cmp ebx, edx
jge 0x4a9749
movzx ecx, byte [edx + eax]
shl ecx, 8
movzx edx, byte [edx + eax + 1]
or edx, ecx
jg 0x4a972f
xor ebx, ebx
cmp dword [esp + 0xe4], 0
jle 0x4a978f
xor eax, eax
mov ecx, dword [esp + 0xe4]
movsx edx, byte [eax + edi]
test edx, edx
jne 0x4a9781
inc ebx
jmp 0x4a978a
cmp edx, 1
jg 0x4a9872
inc eax
cmp eax, ecx
jl 0x4a9776
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
movzx eax, byte [eax + edx + 7]
cmp ebx, eax
je 0x4a97b3
push esi
push eax
push ebx
push str.Fragmentation_of__d_bytes_reported_as__d_on_page__d
push 0
push ebp
call fcn.004aa1e0
add esp, 0x18
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4a97c4
push eax
call dword [0x8303c8]
pop ecx
test edi, edi
je 0x4a97cf
mov eax, edi
call fcn.004b8fd0
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4a97e0
push eax
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4a97fd
mov ebx, dword [eax + 0x10]
call fcn.0057a950
mov eax, ebx
call fcn.0057aac0
mov eax, dword [esp + 0x60]
inc eax
add esp, 0xe8
pop ebx
pop ebp
pop esi
pop edi
ret
push eax
push str.btreeInitPage___returns_error_code__d
lea eax, [esp + 0x80]
push eax
push ebp
call fcn.004aa1e0
add esp, 0x10
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4a9841
mov ebx, dword [eax + 0x10]
call fcn.0057a950
mov eax, ebx
call fcn.0057aac0
xor eax, eax
add esp, 0xe8
pop ebx
pop ebp
pop esi
pop edi
ret
push eax
push str.unable_to_get_the_page._error_code_d
lea eax, [esp + 0x80]
push eax
push ebp
call fcn.004aa1e0
add esp, 0x10
xor eax, eax
add esp, 0xe8
pop ebx
pop ebp
pop esi
pop edi
ret
push esi
push eax
push str.Multiple_uses_for_byte__d_of_page__d
push 0
push ebp
call fcn.004aa1e0
add esp, 0x14
jmp 0x4a978f
mov edi, dword [esp + 0x50]
mov ebp, eax
mov esi, dword [esp + 0x64]
jmp 0x4a93e6