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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
xor eax, eax
xor ebp, ebp
inc eax
mov dword [esp + 0x14], ebp
push edi
mov edi, dword [esp + 0x78]
or esi, 0xffffffff
mov dword [esp + 0x2c], eax
xor ebx, ebx
mov dword [esp + 0x20], eax
push edi
mov eax, dword [edi + 0x20]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x5c], eax
call fcn.0053953b
pop ecx
cmp dword [edi + 0x10], ebx
je 0x53975a
mov esi, dword [edi]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x28], esi
mov eax, dword [esi + 0x28]
mov dword [esp + 0x1c], eax
test ebp, ebp
je 0x539c48
push ebp
push edi
call fcn.0053961c
pop ecx
pop ecx
test eax, eax
jne 0x539c48
push eax
lea eax, [esp + 0x1c]
mov dword [edi + 0x20], str.Tree__u_page__u:
push eax
push ebp
push esi
mov dword [edi + 0x28], ebp
call fcn.00538035
mov esi, eax
add esp, 0x10
test esi, esi
je 0x53972e
push esi
push str.unable_to_get_the_page._error_code_d
push edi
call fcn.00539287
mov ebp, dword [esp + 0x24]
add esp, 0xc
cmp esi, 0xc0a
mov esi, dword [esp + 0x14]
jne 0x53975a
mov dword [edi + 0x18], 7
jmp 0x53975a
mov ebp, dword [esp + 0x18]
push ebp
mov al, byte [ebp]
mov byte [esp + 0x17], al
mov byte [ebp], bl
call fcn.005380ec
pop ecx
test eax, eax
je 0x539787
push eax
push str.btreeInitPage___returns_error_code__d
push edi
call fcn.00539287
add esp, 0xc
mov esi, dword [esp + 0x14]
test ebp, ebp
je 0x539767
push dword [ebp + 0x48]
call fcn.0056ef66
pop ecx
mov eax, dword [esp + 0x50]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x54]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x58]
mov dword [edi + 0x2c], eax
lea eax, [esi + 1]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push ebp
call fcn.005379e3
pop ecx
test eax, eax
je 0x53979a
push eax
push str.free_space_corruption
jmp 0x53974d
mov esi, dword [ebp + 0x38]
movzx edx, byte [ebp + 9]
mov dword [edi + 0x20], str.Tree__u_page__u_cell__u:
mov dword [esp + 0x34], edx
push 3
movzx ecx, byte [edx + esi + 5]
movzx eax, byte [edx + esi + 6]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x1c], esi
dec ecx
movzx eax, cx
movzx ecx, byte [edx + esi + 3]
mov dword [esp + 0x28], eax
movzx eax, byte [edx + esi + 4]
mov dl, byte [ebp + 8]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x34], ecx
movzx ecx, dl
pop eax
sub eax, ecx
mov ecx, dword [esp + 0x34]
lea eax, [ecx + eax*4]
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
sub edi, 2
lea eax, [edi + eax*2]
mov edi, dword [esp + 0x78]
add eax, esi
mov dword [esp + 0x38], eax
test dl, dl
jne 0x539864
lea eax, [ecx + 8]
add eax, esi
push eax
call fcn.005694f9
mov esi, eax
mov eax, dword [esp + 0x2c]
pop ecx
cmp byte [eax + 0x11], bl
je 0x53983a
push dword [esp + 0x7c]
mov dword [edi + 0x20], str.Tree__u_page__u_right_child:
push 5
push esi
push edi
call fcn.005395a0
add esp, 0x10
push dword [esp + 0x88]
lea eax, [esp + 0x88]
push dword [esp + 0x88]
push eax
push esi
push edi
call fcn.00539672
add esp, 0x14
mov dword [esp + 0x14], eax
and dword [esp + 0x20], ebx
jmp 0x53986a
mov ebx, dword [edi + 0x48]
and dword [ebx], 0
mov esi, dword [esp + 0x30]
sub esi, 1
mov dword [esp + 0x30], esi
mov eax, esi
mov dword [esp + 0x40], esi
js 0x539a8b
cmp dword [edi + 0x10], 0
je 0x539a87
mov edx, dword [esp + 0x38]
mov dword [edi + 0x2c], eax
mov ax, word [edx]
sub edx, 2
mov ch, al
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov cl, ah
mov eax, dword [esp + 0x1c]
inc edx
movzx esi, cx
cmp esi, edx
jb 0x539a5d
lea ecx, [eax - 4]
mov dword [esp + 0x48], ecx
cmp esi, ecx
ja 0x539a5d
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x5c]
add eax, esi
push ecx
push eax
push ebp
mov dword [esp + 0x48], eax
call dword [ebp + 0x50]
movzx eax, word [esp + 0x7a]
add esp, 0xc
mov edx, dword [esp + 0x1c]
add eax, esi
cmp eax, edx
jbe 0x5398fb
push str.Extends_off_end_of_page
push edi
call fcn.00539287
pop ecx
pop ecx
jmp 0x539a71
cmp byte [ebp + 1], 0
je 0x539974
cmp dword [esp + 0x20], 0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
je 0x539931
cmp eax, dword [esp + 0x88]
jl 0x539929
jg 0x539924
cmp edx, dword [esp + 0x84]
jbe 0x539929
xor ecx, ecx
inc ecx
jmp 0x53992b
xor ecx, ecx
test ecx, ecx
je 0x53995d
jmp 0x539945
cmp eax, dword [esp + 0x88]
jl 0x53995d
jg 0x539945
cmp edx, dword [esp + 0x84]
jb 0x53995d
push eax
push edx
push str.Rowid__lld_out_of_order
push edi
call fcn.00539287
mov eax, dword [esp + 0x70]
add esp, 0x10
mov edx, dword [esp + 0x5c]
and dword [esp + 0x20], 0
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x88], eax
movzx ecx, word [esp + 0x6c]
mov eax, dword [esp + 0x68]
cmp eax, ecx
jbe 0x5399d9
sub eax, ecx
movzx ecx, word [esp + 0x6e]
add eax, 0xfffffffb
add eax, edx
xor edx, edx
div dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffffc
add ecx, eax
push ecx
call fcn.005694f9
pop ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], eax
cmp byte [ecx + 0x11], 0
je 0x5399c9
push dword [esp + 0x7c]
push 3
push eax
push edi
call fcn.005395a0
mov eax, dword [esp + 0x58]
add esp, 0x10
push dword [esp + 0x4c]
push eax
push 0
push edi
call fcn.00539370
add esp, 0x10
cmp byte [ebp + 8], 0
jne 0x539a45
push dword [esp + 0x3c]
call fcn.005694f9
mov esi, eax
mov eax, dword [esp + 0x2c]
pop ecx
cmp byte [eax + 0x11], 0
je 0x539a05
push dword [esp + 0x7c]
push 5
push esi
push edi
call fcn.005395a0
add esp, 0x10
push dword [esp + 0x88]
lea eax, [esp + 0x88]
push dword [esp + 0x88]
push eax
push esi
push edi
call fcn.00539672
and dword [esp + 0x34], 0
mov esi, eax
add esp, 0x14
cmp esi, dword [esp + 0x14]
je 0x539a76
push str.Child_page_depth_differs
push edi
call fcn.00539287
pop ecx
pop ecx
mov dword [esp + 0x14], esi
jmp 0x539a76
movzx eax, word [esp + 0x6e]
dec eax
add eax, esi
shl esi, 0x10
or eax, esi
push eax
push ebx
call fcn.005380bc
pop ecx
pop ecx
jmp 0x539a76
add eax, 0xfffffffc
push eax
push edx
push esi
push str.Offset__u_out_of_range__u.._u
push edi
call fcn.00539287
add esp, 0x14
and dword [esp + 0x2c], 0
mov eax, dword [esp + 0x40]
sub eax, 1
mov dword [esp + 0x40], eax
jns 0x539881
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [eax], ecx
mov dword [eax + 4], edx
xor eax, eax
mov dword [edi + 0x20], eax
cmp dword [esp + 0x2c], eax
je 0x539c3c
cmp dword [edi + 0x10], eax
jle 0x539756
cmp byte [ebp + 8], al
jne 0x539b11
mov ebx, dword [edi + 0x48]
mov dword [ebx], eax
test esi, esi
js 0x539b11
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
lea edi, [eax + esi*2]
add edi, edx
mov ax, word [edi]
mov ch, al
mov cl, ah
movzx esi, cx
lea eax, [esi + edx]
push eax
push ebp
call dword [ebp + 0x4c]
movzx eax, ax
dec eax
add eax, esi
shl esi, 0x10
or eax, esi
push eax
push ebx
call fcn.005380bc
mov edx, dword [esp + 0x28]
lea edi, [edi - 2]
add esp, 0x10
sub dword [esp + 0x30], 1
jns 0x539ad8
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
movzx edx, byte [ecx + eax + 1]
movzx eax, byte [ecx + eax + 2]
shl edx, 8
or edx, eax
jbe 0x539b61
mov edi, dword [esp + 0x18]
lea esi, [edx + edi]
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or eax, ecx
dec eax
add eax, edx
shl edx, 0x10
or eax, edx
push eax
push ebx
call fcn.005380bc
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
shl edx, 8
or edx, eax
pop ecx
pop ecx
ja 0x539b2e
mov edi, dword [esp + 0x78]
xor edx, edx
mov ecx, dword [ebx]
mov dword [esp + 0x78], edx
test ecx, ecx
je 0x539bf4
mov eax, dword [ebx + 4]
xor esi, esi
mov dword [esp + 0x4c], eax
inc esi
mov eax, dword [ebx + ecx*4]
mov dword [ebx + 4], eax
or dword [ebx + ecx*4], 0xffffffff
dec dword [ebx]
push 2
pop ecx
cmp dword [ebx], ecx
jb 0x539bb8
mov eax, dword [ebx + ecx*4 + 4]
lea edx, [ecx + 1]
cmp dword [ebx + ecx*4], eax
mov eax, dword [ebx + esi*4]
cmovbe edx, ecx
mov ecx, dword [ebx + edx*4]
cmp eax, ecx
jb 0x539bb4
mov dword [ebx + esi*4], ecx
mov esi, edx
mov dword [ebx + edx*4], eax
lea ecx, [esi + esi]
cmp ecx, dword [ebx]
jbe 0x539b8e
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x4c]
mov eax, esi
mov ecx, dword [esp + 0x24]
shr eax, 0x10
movzx ecx, cx
cmp ecx, eax
jae 0x539bd7
sub eax, ecx
mov dword [esp + 0x24], esi
dec eax
add edx, eax
jmp 0x539b63
mov esi, dword [esp + 0x7c]
push esi
push eax
push str.Multiple_uses_for_byte__u_of_page__u
push edi
call fcn.00539287
mov edx, dword [esp + 0x88]
add esp, 0x10
jmp 0x539bf8
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
movzx eax, ax
sub ecx, eax
dec ecx
add ecx, edx
cmp dword [ebx], 0
jne 0x539756
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
movzx eax, byte [edx + eax + 7]
cmp ecx, eax
je 0x539756
push esi
push eax
push ecx
push str.Fragmentation_of__u_bytes_reported_as__u_on_page__u
push edi
call fcn.00539287
add esp, 0x14
jmp 0x539756
mov al, byte [esp + 0x13]
mov byte [ebp], al
jmp 0x539756
xor eax, eax
jmp 0x53977f