Function at 0x10059190
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xac
mov eax, dword [0x101215a0]
xor eax, esp
mov dword [esp + 0xa8], eax
push ebx
mov ebx, dword [esp + 0xbc]
push ebp
mov ebp, dword [esp + 0xb8]
push esi
mov esi, dword [esp + 0xc0]
push edi
push esi
push str.Page__d:
lea eax, [esp + 0x5c]
push eax
push 0x64
mov dword [esp + 0x24], ebp
call fcn.100480d0
mov edi, dword [ebp]
movzx ecx, word [edi + 0x16]
add esp, 0x10
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], ecx
test esi, esi
je 0x10059281
mov ecx, ebx
mov eax, esi
mov edx, ebp
call fcn.10049250
test eax, eax
jne 0x10059281
push eax
mov eax, dword [edi]
lea edx, [esp + 0x20]
push edx
push esi
call fcn.10042d80
add esp, 0xc
test eax, eax
jne 0x1005926d
mov eax, dword [esp + 0x1c]
mov ebp, dword [eax + 4]
mov ecx, dword [eax]
cmp esi, 1
setne dl
dec dl
mov dword [ebp + 0x3c], edi
and dl, 0x64
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], esi
mov byte [ebp + 5], dl
mov edi, ebp
mov byte [ebp], 0
call fcn.1003a690
xor ecx, ecx
cmp eax, ecx
je 0x10059288
mov esi, dword [esp + 0x14]
push eax
push str.btreeInitPage___returns_error_code__d
lea ebx, [esp + 0x5c]
call fcn.100491f0
add esp, 8
mov eax, ebp
call fcn.10056510
xor eax, eax
jmp 0x100597b7
push eax
push str.unable_to_get_the_page._error_code_d
lea ebx, [esp + 0x5c]
mov esi, ebp
call fcn.100491f0
add esp, 8
xor eax, eax
jmp 0x100597b7
xor eax, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], ecx
cmp ax, word [ebp + 0x10]
jae 0x10059417
lea esp, [esp]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x10], 0
je 0x10059417
mov edi, dword [esp + 0x18]
push edi
push esi
push str.On_tree_page__d_cell__d:
lea edx, [esp + 0x60]
push edx
push 0x64
call fcn.100480d0
movzx ecx, word [ebp + 0xc]
mov eax, dword [ebp + 0x40]
add ecx, eax
movzx ebx, byte [ecx + edi*2]
movzx edx, byte [ecx + edi*2 + 1]
lea ecx, [ecx + edi*2]
movzx ecx, word [ebp + 0x12]
shl ebx, 8
or ebx, edx
and ebx, ecx
lea edx, [esp + 0x48]
push edx
add ebx, eax
push ebx
push ebp
call fcn.10039f60
mov eax, dword [esp + 0x64]
add esp, 0x20
cmp byte [ebp + 2], 0
jne 0x10059306
mov ecx, dword [esp + 0x3c]
add eax, ecx
movzx edx, word [esp + 0x4e]
cmp eax, edx
jbe 0x1005937a
mov edi, dword [esp + 0x10]
movzx edi, word [edi + 0x16]
movzx ecx, word [esp + 0x50]
add edi, dword [ebp + 0x40]
add ecx, ebx
cmp ecx, edi
ja 0x1005937a
sub eax, edx
mov edx, dword [esp + 0x20]
lea eax, [eax + edx - 5]
lea edi, [edx - 4]
xor edx, edx
div edi
mov dword [esp + 0x1c], eax
call fcn.10036fa0
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x12], 0
mov edi, eax
je 0x1005935f
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x54]
push eax
push esi
mov al, 3
call fcn.10058ef0
add esp, 8
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x54]
push ecx
push edx
push 0
push eax
mov eax, edi
call fcn.10058f80
add esp, 0x10
cmp byte [ebp + 3], 0
jne 0x10059402
movzx edi, byte [ebx]
movzx ecx, byte [ebx + 1]
movzx edx, byte [ebx + 2]
movzx eax, byte [ebx + 3]
shl edi, 8
or edi, ecx
mov ecx, dword [esp + 0x10]
shl edi, 8
or edi, edx
shl edi, 8
or edi, eax
cmp byte [ecx + 0x12], 0
je 0x100593c0
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x54]
push edx
push esi
mov al, 5
call fcn.10058ef0
add esp, 8
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x54]
push eax
push edi
push ecx
call fcn.10059190
add esp, 0xc
cmp dword [esp + 0x18], 0
mov edi, eax
jle 0x100593fe
cmp edi, dword [esp + 0x28]
je 0x100593fe
mov esi, dword [esp + 0x14]
push str.Child_page_depth_differs
lea ebx, [esp + 0x58]
call fcn.100491f0
mov esi, dword [esp + 0xc8]
add esp, 4
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x18]
movzx edx, word [ebp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x18], eax
jl 0x100592a0
cmp byte [ebp + 3], 0
jne 0x1005948c
movzx eax, byte [ebp + 5]
mov ecx, dword [ebp + 0x40]
movzx edi, byte [eax + ecx + 8]
movzx edx, byte [eax + ecx + 9]
lea eax, [eax + ecx + 8]
movzx ecx, byte [eax + 2]
shl edi, 8
or edi, edx
movzx edx, byte [eax + 3]
push esi
shl edi, 8
or edi, ecx
push str.On_page__d_at_right_child:
lea eax, [esp + 0x5c]
push eax
shl edi, 8
push 0x64
or edi, edx
call fcn.100480d0
mov ecx, dword [esp + 0x20]
add esp, 0x10
cmp byte [ecx + 0x12], 0
je 0x10059479
mov ecx, dword [esp + 0x14]
push 0
push esi
mov al, 5
call fcn.10058ef0
add esp, 8
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x54]
push edx
push edi
push eax
call fcn.10059190
add esp, 0xc
movzx ecx, byte [ebp + 5]
mov eax, dword [0x1012bfb4]
mov esi, dword [ebp + 0x40]
mov edx, dword [esp + 0x10]
movzx edi, word [edx + 0x14]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ecx
test eax, eax
je 0x100594b6
push eax
call dword [0x1011c088]
add esp, 4
mov eax, edi
call fcn.100420f0
mov edi, eax
mov eax, dword [0x1012bfb4]
test eax, eax
je 0x100594d2
push eax
call dword [0x1011c090]
add esp, 4
test edi, edi
jne 0x100594e6
mov eax, dword [esp + 0x14]
mov dword [eax + 0x18], 1
jmp 0x100596c1
mov eax, dword [esp + 0x24]
movzx cx, byte [eax + esi + 5]
movzx dx, byte [eax + esi + 6]
shl cx, 8
or cx, dx
movzx eax, cx
movzx ebx, ax
mov eax, dword [esp + 0x20]
sub eax, ebx
push eax
lea ecx, [ebx + edi]
push 0
push ecx
call fcn.100ae530
push ebx
push 1
push edi
call fcn.100ae530
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx + esi + 3]
movzx edx, byte [ecx + esi + 4]
shl eax, 8
or eax, edx
movzx edx, byte [ebp + 3]
mov ebx, 3
sub ebx, edx
add esp, 0x18
mov dword [esp + 0x2c], eax
lea ecx, [ecx + ebx*4]
mov dword [esp + 0x18], 0
test eax, eax
jle 0x100595f7
mov eax, dword [esp + 0x20]
add eax, 0xfffffffc
add ecx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ecx
jmp 0x10059570
movzx ebx, byte [ecx + 1]
movzx ecx, byte [ecx]
shl ecx, 8
or ebx, ecx
cmp ebx, dword [esp + 0x30]
mov eax, 0x400
jg 0x10059598
lea edx, [ebx + esi]
push edx
mov eax, ebp
call fcn.1003a0b0
add esp, 4
movzx eax, ax
movzx eax, ax
lea eax, [eax + ebx - 1]
cmp eax, dword [esp + 0x20]
jl 0x100595cd
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push 0
push ecx
push edx
push str.Corruption_detected_in_cell__d_on_page__d
xor ebx, ebx
call fcn.100491f0
mov esi, dword [esp + 0x2c]
add esp, 0x10
jmp 0x100595d9
cmp eax, ebx
jl 0x100595d9
inc byte [edi + eax]
dec eax
cmp eax, ebx
jge 0x100595d1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc eax
add ecx, 2
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
jl 0x10059570
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax + esi + 1]
movzx eax, byte [eax + esi + 2]
shl ecx, 8
or ecx, eax
jle 0x10059641
lea esp, [esp]
movzx edx, byte [esi + ecx + 2]
movzx eax, byte [esi + ecx + 3]
shl edx, 8
or edx, eax
lea eax, [edx + ecx - 1]
cmp eax, ecx
jl 0x1005962f
inc byte [edi + eax]
dec eax
cmp eax, ecx
jge 0x10059627
movzx edx, byte [esi + ecx]
movzx eax, byte [esi + ecx + 1]
shl edx, 8
or edx, eax
mov ecx, edx
jg 0x10059610
mov ebx, dword [esp + 0x20]
xor edx, edx
xor eax, eax
mov dword [esp + 0x10], edx
test ebx, ebx
jle 0x10059693
mov cl, byte [edi + eax]
test cl, cl
jne 0x1005965b
inc edx
jmp 0x10059660
cmp cl, 1
jg 0x1005966b
inc eax
cmp eax, ebx
jl 0x10059651
mov dword [esp + 0x10], edx
jmp 0x10059693
mov ecx, dword [esp + 0xc4]
mov esi, dword [esp + 0x14]
push ecx
push eax
push str.Multiple_uses_for_byte__d_of_page__d
xor ebx, ebx
mov dword [esp + 0x1c], edx
call fcn.100491f0
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + esi + 7]
cmp edx, eax
je 0x100596c1
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push ecx
push eax
push edx
push str.Fragmentation_of__d_bytes_reported_as__d_on_page__d
xor ebx, ebx
call fcn.100491f0
add esp, 0x10
mov eax, dword [0x1012bfb4]
test eax, eax
je 0x100596d4
push eax
call dword [0x1011c088]
add esp, 4
test edi, edi
je 0x1005973e
cmp edi, dword [0x1012bfd0]
jb 0x1005970f
cmp edi, dword [0x1012bfd4]
jae 0x1005970f
mov eax, dword [0x1012c32c]
dec eax
cmp eax, dword [0x1012c350]
mov dword [0x1012c32c], eax
jle 0x10059700
mov dword [0x1012c350], eax
mov eax, dword [0x1012bfd8]
mov dword [edi], eax
mov dword [0x1012bfd8], edi
jmp 0x1005973e
push edi
call dword [0x1011c064]
mov ecx, dword [0x1012c330]
sub ecx, eax
add esp, 4
cmp ecx, dword [0x1012c354]
mov dword [0x1012c330], ecx
jle 0x10059735
mov dword [0x1012c354], ecx
push edi
call fcn.10036090
add esp, 4
mov eax, dword [0x1012bfb4]
test eax, eax
je 0x10059751
push eax
call dword [0x1011c090]
add esp, 4
mov ebp, dword [ebp + 0x44]
test ebp, ebp
je 0x100597b2
mov esi, dword [ebp + 0x10]
mov eax, ebp
call fcn.10037ea0
mov ecx, dword [esi + 0xa8]
cmp dword [ecx + 0xc], 0
jne 0x100597b2
cmp byte [esi + 4], 0
je 0x10059782
cmp dword [esi + 0x4c], 0
jl 0x100597b2
jg 0x10059782
cmp dword [esi + 0x48], 0
jbe 0x100597b2
cmp dword [esi + 0x24], 0
jne 0x100597ab
cmp byte [esi + 0xe], 2
jb 0x100597ab
mov eax, dword [0x1012c374]
test eax, eax
je 0x10059799
call eax
mov eax, esi
call fcn.10050640
mov eax, dword [0x1012c378]
test eax, eax
je 0x100597ab
call eax
mov eax, esi
call fcn.100427d0
mov eax, dword [esp + 0x28]
inc eax
mov ecx, dword [esp + 0xb8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100ad0a1
add esp, 0xac
ret