Function at 0x47b800
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xbc
mov eax, dword [0x5107c0]
xor eax, esp
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xcc]
xorps xmm0, xmm0
push ebx
push ebp
mov ebp, dword [esp + 0xcc]
push esi
mov esi, dword [esp + 0xd4]
push edi
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xe0]
push ebp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x68]
push str.Page__d:
push eax
push 0x64
movlpd qword [esp + 0x44], xmm0
movlpd qword [esp + 0x24], xmm0
call fcn.004755a6
mov ebx, dword [edi]
add esp, 0x10
mov dword [esp + 0x10], ebx
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x28], eax
test ebp, ebp
jne 0x47b87f
xor eax, eax
jmp 0x47be3a
push esi
push ebp
push edi
call fcn.0047b7a1
add esp, 0xc
test eax, eax
jne 0x47b878
push eax
lea eax, [esp + 0x30]
push eax
push ebp
push ebx
call fcn.0047ad8b
add esp, 0x10
test eax, eax
je 0x47b8b8
push eax
push str.unable_to_get_the_page._error_code_d
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.0047b4d2
add esp, 0x10
jmp 0x47b878
mov ebx, dword [esp + 0x2c]
xor edx, edx
push ebx
mov byte [ebx], dl
call fcn.0047adc6
pop ecx
test eax, eax
je 0x47b8e7
push eax
push str.btreeInitPage___returns_error_code__d
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.0047b4d2
push ebx
call fcn.00489e2f
add esp, 0x14
jmp 0x47b878
xor ecx, ecx
xor eax, eax
mov esi, ecx
mov dword [esp + 0x40], ecx
cmp ax, word [ebx + 0x10]
jae 0x47bade
jmp 0x47b8ff
xor ecx, ecx
cmp dword [edi + 0x10], ecx
je 0x47bade
push esi
push ebp
push str.On_tree_page__d_cell__d:
lea eax, [esp + 0x70]
push eax
push 0x64
call fcn.004755a6
movzx eax, word [ebx + 0xc]
add eax, dword [ebx + 0x40]
movzx ecx, byte [eax + esi*2]
movzx eax, byte [eax + esi*2 + 1]
shl ecx, 8
or ecx, eax
movzx eax, word [ebx + 0x12]
and ecx, eax
lea eax, [esp + 0x58]
add ecx, dword [ebx + 0x40]
push eax
push ecx
push ebx
mov dword [esp + 0x44], ecx
call fcn.0047b108
mov edx, dword [esp + 0x70]
add esp, 0x20
cmp byte [ebx + 2], 0
mov dword [esp + 0x1c], edx
jne 0x47b960
add edx, dword [esp + 0x44]
jmp 0x47b9c5
test esi, esi
jne 0x47b97e
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
jmp 0x47b9c5
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
cmp ecx, dword [esp + 0x18]
jg 0x47b9bd
jl 0x47b994
cmp eax, dword [esp + 0x14]
ja 0x47b9bd
push dword [esp + 0x18]
push dword [esp + 0x18]
push ecx
push eax
push str.Rowid__lld_out_of_order__previous_was__lld_
lea eax, [esp + 0x78]
push eax
push edi
call fcn.0047b4d2
mov eax, dword [esp + 0x60]
add esp, 0x1c
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
movzx eax, word [esp + 0x5a]
mov ecx, dword [esp + 0x24]
cmp edx, eax
jbe 0x47ba58
movzx eax, word [esp + 0x5c]
add eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x40]
mov ebx, dword [esp + 0x10]
add eax, dword [ebx + 0x28]
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], eax
ja 0x47ba58
mov ecx, dword [esp + 0x28]
movzx eax, word [esp + 0x5a]
sub edx, eax
push dword [esp + 0x1c]
lea eax, [ecx - 5]
add ecx, 0xfffffffc
add eax, edx
xor edx, edx
div ecx
mov dword [esp + 0x34], eax
call fcn.00496bd1
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
cmp byte [ecx + 0x15], 0
je 0x47ba3e
lea ecx, [esp + 0x64]
push ecx
push ebp
push 3
push eax
push edi
call fcn.0047b71f
mov eax, dword [esp + 0x30]
add esp, 0x14
lea ecx, [esp + 0x64]
xor edx, edx
push ecx
push dword [esp + 0x34]
push eax
push edx
push edi
call fcn.0047b57f
mov ecx, dword [esp + 0x38]
add esp, 0x14
cmp byte [ebx + 3], 0
jne 0x47bad1
push ecx
call fcn.00496bd1
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
cmp byte [ecx + 0x15], 0
je 0x47ba85
lea ecx, [esp + 0x64]
push ecx
push ebp
push 5
push eax
push edi
call fcn.0047b71f
add esp, 0x14
xor ecx, ecx
lea eax, [esp + 0x14]
test esi, esi
cmove eax, ecx
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x3c]
push edi
call fcn.0047b800
add esp, 0x14
mov dword [esp + 0x30], eax
test esi, esi
jle 0x47bacd
cmp eax, dword [esp + 0x40]
je 0x47bacd
push str.Child_page_depth_differs
lea eax, [esp + 0x68]
push eax
push edi
call fcn.0047b4d2
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x40], eax
movzx eax, word [ebx + 0x10]
inc esi
cmp esi, eax
jl 0x47b8fd
cmp byte [ebx + 3], 0
jne 0x47bb53
mov eax, dword [ebx + 0x40]
movzx ecx, byte [ebx + 5]
add eax, 8
add eax, ecx
push eax
call fcn.00496bd1
push ebp
mov esi, eax
lea eax, [esp + 0x6c]
push str.On_page__d_at_right_child:
push eax
push 0x64
call fcn.004755a6
mov eax, dword [esp + 0x24]
add esp, 0x14
cmp byte [eax + 0x15], 0
je 0x47bb29
lea eax, [esp + 0x64]
push eax
push ebp
push 5
push esi
push edi
call fcn.0047b71f
add esp, 0x14
xor edx, edx
lea eax, [esp + 0x14]
xor ecx, ecx
cmp word [ebx + 0x10], dx
cmove eax, ecx
push eax
push edx
lea eax, [esp + 0x6c]
push eax
push esi
push edi
call fcn.0047b800
add esp, 0x14
cmp byte [ebx + 3], 0
je 0x47bc43
cmp byte [ebx + 2], 0
je 0x47bc43
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x47bc0b
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
test ebp, ebp
jne 0x47bba0
cmp dword [esp + 0x18], ecx
jl 0x47bc43
jg 0x47bb8c
cmp dword [esp + 0x14], eax
jbe 0x47bc43
push ecx
push eax
push dword [esp + 0x20]
push dword [esp + 0x20]
push str.Rowid__lld_out_of_order__max_larger_than_parent_min_of__lld_
jmp 0x47bc35
cmp dword [esp + 0x38], ecx
jg 0x47bbcb
jl 0x47bbae
cmp dword [esp + 0x34], eax
ja 0x47bbcb
push ecx
push eax
push dword [esp + 0x40]
lea eax, [esp + 0x70]
push dword [esp + 0x40]
push str.Rowid__lld_out_of_order__min_less_than_parent_min_of__lld_
push eax
push edi
call fcn.0047b4d2
add esp, 0x1c
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
cmp dword [esp + 0x18], ecx
jl 0x47bbfc
jg 0x47bbdf
cmp dword [esp + 0x14], eax
jbe 0x47bbfc
push ecx
push eax
push dword [esp + 0x20]
lea eax, [esp + 0x70]
push dword [esp + 0x20]
push str.Rowid__lld_out_of_order__max_larger_than_parent_max_of__lld_
push eax
push edi
call fcn.0047b4d2
add esp, 0x1c
mov eax, dword [esp + 0x14]
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], eax
jmp 0x47bc43
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x47bc43
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp dword [esp + 0x38], ecx
jg 0x47bc43
jl 0x47bc26
cmp dword [esp + 0x34], eax
ja 0x47bc43
push ecx
push eax
push dword [esp + 0x40]
push dword [esp + 0x40]
push str.Rowid__lld_out_of_order__min_less_than_parent_max_of__lld_
lea eax, [esp + 0x78]
push eax
push edi
call fcn.0047b4d2
add esp, 0x1c
movzx eax, byte [ebx + 5]
mov ebp, dword [ebx + 0x40]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x24]
call fcn.00488d5e
mov esi, eax
mov dword [esp + 0x14], esi
pop ecx
test esi, esi
jne 0x47bc71
mov dword [edi + 0x18], 1
jmp 0x47be27
mov eax, dword [esp + 0x24]
movzx esi, byte [eax + ebp + 5]
movzx eax, byte [eax + ebp + 6]
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x28]
dec esi
and esi, 0xffff
inc esi
sub eax, esi
push eax
xor eax, eax
push eax
mov eax, dword [esp + 0x18]
add eax, esi
push eax
call fcn.004b6030
push esi
mov esi, dword [esp + 0x20]
push 1
push esi
call fcn.004b6030
mov ecx, dword [esp + 0x3c]
add esp, 0x18
movzx edx, byte [ecx + ebp + 3]
movzx eax, byte [ecx + ebp + 4]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 3]
mov dword [esp + 0x1c], edx
push 3
pop edx
sub edx, eax
lea eax, [ecx + edx*4]
xor edx, edx
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x1c], edx
jle 0x47bd78
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffffc
add eax, ebp
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], eax
movzx esi, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or esi, eax
mov eax, 0x10000
cmp esi, ecx
jg 0x47bd1e
lea eax, [esi + ebp]
push eax
push ebx
call fcn.0047b3a8
mov edx, dword [esp + 0x34]
pop ecx
pop ecx
movzx eax, ax
dec eax
add eax, esi
cmp eax, dword [esp + 0x28]
jl 0x47bd46
push dword [esp + 0xd4]
xor eax, eax
push edx
push str.Corruption_detected_in_cell__d_on_page__d
push eax
push edi
call fcn.0047b4d2
mov edx, dword [esp + 0x40]
add esp, 0x14
jmp 0x47bd56
cmp eax, esi
jl 0x47bd56
mov ecx, dword [esp + 0x10]
inc byte [eax + ecx]
dec eax
cmp eax, esi
jge 0x47bd4e
mov eax, dword [esp + 0x20]
inc edx
mov ecx, dword [esp + 0x3c]
add eax, 2
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], eax
cmp edx, dword [esp + 0x1c]
jl 0x47bcf6
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
movzx edx, byte [ecx + ebp + 1]
movzx eax, byte [ecx + ebp + 2]
shl edx, 8
or edx, eax
jle 0x47bdb7
movzx ecx, byte [edx + ebp + 2]
movzx eax, byte [edx + ebp + 3]
shl ecx, 8
or ecx, eax
lea eax, [edx - 1]
add eax, ecx
jmp 0x47bda3
inc byte [eax + esi]
dec eax
cmp eax, edx
jge 0x47bd9f
movzx ecx, byte [edx + ebp]
movzx edx, byte [edx + ebp + 1]
shl ecx, 8
or edx, ecx
jg 0x47bd89
xor edx, edx
mov eax, edx
mov ecx, edx
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x28], eax
jle 0x47be02
mov dl, byte [eax + esi]
test dl, dl
jne 0x47bdd5
inc ecx
mov dword [esp + 0x20], ecx
jmp 0x47bdda
cmp dl, 1
jg 0x47bde3
inc eax
cmp eax, dword [esp + 0x28]
jl 0x47bdc7
jmp 0x47be00
push dword [esp + 0xd4]
push eax
push str.Multiple_uses_for_byte__d_of_page__d
xor eax, eax
push eax
push edi
call fcn.0047b4d2
mov ecx, dword [esp + 0x34]
add esp, 0x14
xor edx, edx
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ebp + 7]
cmp ecx, eax
je 0x47be27
push dword [esp + 0xd4]
push eax
push ecx
push str.Fragmentation_of__d_bytes_reported_as__d_on_page__d
push edx
push edi
call fcn.0047b4d2
add esp, 0x18
push esi
call fcn.00488e82
push ebx
call fcn.00489e2f
mov eax, dword [esp + 0x48]
pop ecx
pop ecx
inc eax
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b35e5
add esp, 0xbc
ret