Function at 0x4c7790
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xa0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xb4]
push edi
push esi
lea eax, [esp + 0x50]
push str.Page__d:
push eax
push 0x64
call fcn.004b1a70
mov ebx, dword [esp + 0xc4]
xor edi, edi
add esp, 0x10
mov ebp, dword [ebx]
test esi, esi
mov di, word [ebp + 0x18]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], edi
jne 0x4c77de
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa0
ret
mov ecx, dword [esp + 0xbc]
push ecx
push esi
push ebx
call fcn.004c7730
add esp, 0xc
test eax, eax
je 0x4c7801
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa0
ret
lea edx, [esp + 0x14]
push 0
push edx
push esi
push ebp
call fcn.004b74a0
xor ebp, ebp
add esp, 0x10
cmp eax, ebp
je 0x4c7845
cmp eax, 7
jne 0x4c7824
mov dword [ebx + 0x18], 1
push eax
lea eax, [esp + 0x50]
push str.unable_to_get_the_page._error_code_d
push eax
push ebx
call fcn.004c7440
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004b8660
add esp, 4
cmp eax, ebp
je 0x4c7881
push eax
lea edx, [esp + 0x50]
push str.sqlite3BtreeInitPage___returns_error_code__d
push edx
push ebx
call fcn.004c7440
mov eax, dword [esp + 0x24]
push eax
call fcn.004b7540
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
cmp word [ecx + 0x10], 0
jbe 0x4c7a1c
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4c7a1c
push ebp
push esi
lea ecx, [esp + 0x54]
push str.On_tree_page__d_cell__d:
push ecx
push 0x64
call fcn.004b1a70
mov eax, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [eax + 0x40]
mov dx, word [eax + 0xc]
mov esi, ecx
add esi, edx
xor edx, edx
mov dl, byte [esi + ebp*2 + 1]
mov dh, byte [esi + ebp*2]
lea esi, [esi + ebp*2]
xor esi, esi
mov si, word [eax + 0x12]
and edx, esi
add edx, ecx
lea ecx, [esp + 0x40]
mov esi, edx
push ecx
push esi
push eax
call fcn.004b8270
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x5c]
add esp, 0x20
mov dl, byte [ecx + 2]
test dl, dl
jne 0x4c78ff
mov edx, dword [esp + 0x34]
add eax, edx
mov edx, dword [esp + 0x46]
and edx, 0xffff
cmp eax, edx
jbe 0x4c7988
mov ecx, dword [esp + 0x18]
sub eax, edx
xor edx, edx
lea eax, [eax + ecx - 5]
add ecx, 0xfffffffc
div ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
and eax, 0xffff
add eax, esi
push eax
call fcn.004b5040
mov ecx, dword [esp + 0x14]
mov edi, eax
add esp, 4
mov al, byte [ecx + 0x13]
test al, al
je 0x4c7965
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb4]
lea edx, [esp + 0x4c]
push edx
push eax
push 3
push edi
push ebx
call fcn.004c74b0
add esp, 0x14
jmp 0x4c796c
mov ebx, dword [esp + 0xb4]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x4c]
push ecx
push edx
push edi
push 0
push ebx
call fcn.004c7540
mov ecx, dword [esp + 0x28]
add esp, 0x14
jmp 0x4c798f
mov ebx, dword [esp + 0xb4]
mov al, byte [ecx + 3]
test al, al
jne 0x4c79fb
push esi
call fcn.004b5040
mov esi, eax
mov eax, dword [esp + 0x14]
add esp, 4
mov cl, byte [eax + 0x13]
test cl, cl
je 0x4c79c5
mov edx, dword [esp + 0xb8]
lea ecx, [esp + 0x4c]
push ecx
push edx
push 5
push esi
push ebx
call fcn.004c74b0
add esp, 0x14
lea eax, [esp + 0x4c]
push eax
push esi
push ebx
call fcn.004c7790
add esp, 0xc
mov esi, eax
test ebp, ebp
jle 0x4c79f3
cmp esi, dword [esp + 0x24]
je 0x4c79f3
lea ecx, [esp + 0x4c]
push str.Child_page_depth_differs
push ecx
push ebx
call fcn.004c7440
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb4]
xor edx, edx
mov dx, word [ecx + 0x10]
inc ebp
cmp ebp, edx
jl 0x4c7894
mov al, byte [ecx + 3]
test al, al
jne 0x4c7a79
xor eax, eax
mov al, byte [ecx + 5]
mov ecx, dword [ecx + 0x40]
lea edx, [eax + ecx + 8]
push edx
call fcn.004b5040
mov ebp, eax
push esi
lea eax, [esp + 0x54]
push str.On_page__d_at_right_child:
push eax
push 0x64
call fcn.004b1a70
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov al, byte [ecx + 0x13]
test al, al
je 0x4c7a66
push 0
push esi
push 5
push ebp
push ebx
call fcn.004c74b0
add esp, 0x14
lea edx, [esp + 0x4c]
push edx
push ebp
push ebx
call fcn.004c7790
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov ebx, dword [ecx + 0x40]
mov edx, dword [esp + 0x10]
xor eax, eax
mov al, byte [ecx + 5]
xor ecx, ecx
mov cx, word [edx + 0x16]
mov dword [esp + 0x20], eax
push ecx
call fcn.004b5dc0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x4c7ab1
mov eax, dword [esp + 0xb4]
mov dword [eax + 0x18], 1
jmp 0x4c7cef
mov eax, dword [esp + 0x20]
xor edx, edx
mov dh, byte [eax + ebx + 5]
mov dl, byte [eax + ebx + 6]
and edx, 0xffff
cmp edx, edi
jle 0x4c7ae8
mov ecx, dword [esp + 0xb4]
push 0
push esi
push str.Corruption_detected_in_header_on_page__d
push 0
push ecx
call fcn.004c7440
add esp, 0x14
jmp 0x4c7ce6
mov ecx, edi
xor eax, eax
sub ecx, edx
lea edi, [edx + ebp]
mov esi, ecx
mov dword [esp + 0x10], 0
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, edx
mov eax, 0x1010101
mov edi, ebp
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
xor edx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x20]
xor eax, eax
mov ah, byte [ecx + ebx + 3]
mov al, byte [ecx + ebx + 4]
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], esi
mov dl, byte [eax + 3]
mov eax, 3
sub eax, edx
test esi, esi
lea eax, [ecx + eax*4]
jle 0x4c7be6
add eax, ebx
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x18]
xor ecx, ecx
mov cl, byte [eax + 1]
mov ch, byte [eax]
mov eax, 0x400
mov esi, ecx
cmp esi, edi
jg 0x4c7b78
mov eax, dword [esp + 0x14]
lea edx, [esi + ebx]
push edx
push eax
call fcn.004c43a0
add esp, 8
and eax, 0xffff
lea eax, [eax + esi - 1]
cmp eax, edi
jge 0x4c7b9c
test esi, esi
jl 0x4c7b9c
cmp eax, esi
jl 0x4c7bc2
mov cl, byte [eax + ebp]
inc cl
mov byte [eax + ebp], cl
dec eax
cmp eax, esi
jge 0x4c7b8d
jmp 0x4c7bc2
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xb4]
push 0
push ecx
push edx
push str.Corruption_detected_in_cell__d_on_page__d
push 0
push eax
call fcn.004c7440
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
inc ecx
add eax, 2
cmp ecx, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
jl 0x4c7b51
mov ecx, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x10], 0
mov dh, byte [ecx + ebx + 1]
mov dl, byte [ecx + ebx + 2]
mov esi, edx
test esi, esi
jle 0x4c7c75
mov edi, dword [esp + 0x18]
cmp esi, edi
jge 0x4c7c79
cmp dword [esp + 0x10], 0x2710
jge 0x4c7c79
xor eax, eax
mov ah, byte [ebx + esi + 2]
mov al, byte [ebx + esi + 3]
lea eax, [eax + esi - 1]
cmp eax, edi
jge 0x4c7c39
test esi, esi
jl 0x4c7c39
cmp eax, esi
jl 0x4c7c5b
mov cl, byte [eax + ebp]
inc cl
mov byte [eax + ebp], cl
dec eax
cmp eax, esi
jge 0x4c7c2a
jmp 0x4c7c5b
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
push 0
push eax
push esi
push str.Corruption_detected_in_cell__d_on_page__d
push 0
push ecx
call fcn.004c7440
add esp, 0x18
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dh, byte [ebx + esi]
inc ecx
mov dl, byte [ebx + esi + 1]
mov dword [esp + 0x10], ecx
mov esi, edx
test esi, esi
jg 0x4c7bfe
jmp 0x4c7c79
mov edi, dword [esp + 0x18]
xor esi, esi
xor eax, eax
test edi, edi
jle 0x4c7cb7
mov cl, byte [eax + ebp]
test cl, cl
jne 0x4c7c8b
inc esi
jmp 0x4c7c90
cmp cl, 1
jg 0x4c7c97
inc eax
cmp eax, edi
jl 0x4c7c81
jmp 0x4c7cb7
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
push ecx
push eax
push str.Multiple_uses_for_byte__d_of_page__d
push 0
push edx
call fcn.004c7440
add esp, 0x14
mov ecx, dword [esp + 0x20]
xor eax, eax
mov al, byte [ecx + ebx + 7]
cmp esi, eax
je 0x4c7ce6
mov edx, dword [esp + 0xb8]
push edx
push eax
mov eax, dword [esp + 0xbc]
push esi
push str.Fragmented_space_is__d_byte_reported_as__d_on_page__d
push 0
push eax
call fcn.004c7440
add esp, 0x18
push ebp
call fcn.004b5df0
add esp, 4
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004b7540
mov edx, dword [esp + 0x28]
add esp, 4
pop edi
pop esi
pop ebp
lea eax, [edx + 1]
pop ebx
add esp, 0xa0
ret