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

Disassembly:
sub esp, 0x70
push ebx
mov ebx, ecx
mov dword [esp + 0x28], 0xffffffff
push ebp
push esi
xor esi, esi
mov dword [esp + 0x3c], ebx
mov ecx, dword [ebx + 0x20]
mov eax, edx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0x5c], ecx
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebx + 0x4c]
push edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], 1
mov dword [esp + 0x28], 1
cmp dword [ecx + 0x128], esi
je 0x100472da
inc dword [ebx + 0x14]
mov dword [ebx + 0x18], 9
mov dword [ebx + 0x10], esi
cmp dword [ecx + 0x174], esi
je 0x10047320
inc dword [ebx + 0x1c]
xor edx, edx
mov eax, dword [ebx + 0x1c]
div dword [ecx + 0x17c]
test edx, edx
jne 0x1004731c
push dword [ecx + 0x178]
mov eax, dword [ecx + 0x174]
call eax
add esp, 4
test eax, eax
mov eax, dword [esp + 0x18]
je 0x10047320
inc dword [ebx + 0x14]
mov dword [ebx + 0x18], 9
mov dword [ebx + 0x10], esi
jmp 0x10047320
mov eax, dword [esp + 0x18]
cmp dword [ebx + 0x10], esi
je 0x100473cf
mov ebp, dword [ebx]
mov dword [esp + 0x38], ebp
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x20], ecx
test eax, eax
je 0x100479ef
cmp eax, dword [ebx + 0xc]
ja 0x100479dc
mov ecx, dword [esp + 0x18]
mov edi, eax
shr edi, 3
and ecx, 7
add edi, dword [ebx + 8]
mov eax, 1
shl eax, cl
movzx edx, byte [edi]
test edx, eax
je 0x10047381
push dword [esp + 0x18]
mov eax, str.2nd_reference_to_page__u
push eax
push ebx
call fcn.10046ed0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
bts edx, ecx
mov ecx, dword [esp + 0x18]
mov byte [edi], dl
lea edx, [esp + 0x50]
push 0
mov dword [ebx + 0x20], str.Tree__u_page__u:
mov dword [ebx + 0x28], ecx
mov eax, dword [ebp]
push edx
push ecx
push eax
mov eax, dword [eax + 0xdc]
call eax
mov edi, eax
add esp, 0x10
test edi, edi
je 0x100473f1
push edi
push str.unable_to_get_the_page._error_code_d
push ebx
call fcn.10046ed0
add esp, 0xc
cmp edi, 0xc0a
jne 0x100473cf
mov dword [ebx + 0x18], 7
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x34]
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov edx, dword [ecx + 8]
mov dword [esp + 0x14], edx
cmp edi, dword [edx + 4]
je 0x10047421
mov eax, dword [ecx + 4]
cmp edi, 1
mov dword [edx + 0x38], eax
setne al
mov dword [edx + 0x48], ecx
dec al
mov dword [edx + 0x34], ebp
and al, 0x64
mov dword [edx + 4], edi
mov byte [edx + 9], al
mov al, byte [edx]
mov ecx, edx
mov byte [esp + 0x13], al
mov byte [edx], 0
call fcn.1003d5d0
test eax, eax
je 0x10047455
push eax
push str.btreeInitPage___returns_error_code__d
push ebx
call fcn.10046ed0
add esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x48]
call fcn.100365d0
jmp 0x100473cf
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.1003d3a0
test eax, eax
je 0x10047480
push eax
push str.free_space_corruption
push ebx
call fcn.10046ed0
add esp, 0xc
mov ecx, dword [edi + 0x48]
call fcn.100365d0
jmp 0x100473cf
mov edx, edi
mov eax, dword [edx + 0x38]
movzx edi, byte [edx + 9]
lea ebp, [edi + eax]
mov dword [esp + 0x24], eax
mov dword [ebx + 0x20], str.Tree__u_page__u_cell__u:
movzx ecx, byte [ebp + 5]
movzx eax, byte [ebp + 6]
mov dl, byte [edx + 8]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x30], ebp
movzx ebp, byte [ebp + 3]
dec ecx
movzx eax, cx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
shl ebp, 8
movzx eax, byte [ecx + 4]
mov ecx, 3
or ebp, eax
movzx eax, dl
sub ecx, eax
lea eax, [edi + ecx*4]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x58], eax
lea eax, [eax + ebp*2]
lea edi, [ecx - 2]
add edi, eax
mov dword [esp + 0x1c], edi
test dl, dl
jne 0x10047544
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 8]
mov eax, dword [esp + 0x38]
bswap edi
cmp byte [eax + 0x11], dl
je 0x10047514
push dword [esp + 0x18]
mov edx, edi
mov dword [ebx + 0x20], str.Tree__u_page__u_right_child:
push 5
mov ecx, ebx
call fcn.10046fd0
add esp, 8
push dword [esp + 0x8c]
lea eax, [esp + 0x8c]
mov edx, edi
push dword [esp + 0x8c]
mov ecx, ebx
push eax
call fcn.10047280
mov edi, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], esi
jmp 0x1004754d
mov esi, dword [ebx + 0x48]
mov dword [esi], 0
add ebp, 0xffffffff
mov dword [esp + 0x4c], ebp
mov eax, ebp
mov dword [esp + 0x48], ebp
js 0x100475ff
cmp dword [ebx + 0x10], 0
je 0x100475fb
mov dword [ebx + 0x2c], eax
mov ax, word [edi]
sub edi, 2
mov ch, al
mov dword [esp + 0x1c], edi
mov cl, ah
mov eax, dword [esp + 0x20]
movzx ebp, cx
add eax, 0xfffffffc
mov ecx, dword [esp + 0x2c]
inc ecx
cmp ebp, ecx
jb 0x10047934
cmp ebp, eax
ja 0x10047934
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x68]
add eax, ebp
push ecx
push eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [eax + 0x50]
call eax
mov di, word [esp + 0x86]
add esp, 0xc
mov edx, dword [esp + 0x20]
movzx eax, di
add eax, ebp
cmp eax, edx
jbe 0x100477a0
push str.Extends_off_end_of_page
push ebx
call fcn.10046ed0
add esp, 8
mov dword [esp + 0x3c], 0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
sub eax, 1
mov dword [esp + 0x48], eax
jns 0x10047560
mov ebp, dword [esp + 0x4c]
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [ebx + 0x20], 0
je 0x100479c5
cmp dword [ebx + 0x10], 0
jle 0x10047444
mov edx, dword [esp + 0x14]
cmp byte [edx + 8], 0
jne 0x100476b9
mov esi, dword [ebx + 0x48]
mov dword [esi], 0
test ebp, ebp
js 0x100476b9
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
lea ebp, [eax + ebx*2]
add ebp, dword [esp + 0x24]
nop dword [eax + eax]
mov ax, word [ebp]
mov ch, al
mov cl, ah
mov eax, dword [esp + 0x24]
movzx edi, cx
add eax, edi
push eax
mov eax, dword [edx + 0x4c]
push edx
call eax
inc dword [esi]
add esp, 8
movzx eax, ax
dec eax
add eax, edi
shl edi, 0x10
or eax, edi
mov edi, dword [esi]
mov dword [esi + edi*4], eax
mov eax, edi
shr eax, 1
je 0x100476a9
mov ecx, dword [esi + eax*4]
mov edx, dword [esi + edi*4]
cmp ecx, edx
jbe 0x100476a9
mov dword [esi + eax*4], edx
mov dword [esi + edi*4], ecx
mov edi, eax
shr eax, 1
jne 0x10047693
mov edx, dword [esp + 0x14]
sub ebp, 2
sub ebx, 1
jns 0x10047660
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
or edx, eax
jbe 0x10047721
mov ebx, dword [esp + 0x24]
movzx ecx, byte [edx + ebx + 2]
lea ebp, [edx + ebx]
movzx eax, byte [ebp + 3]
inc dword [esi]
mov edi, dword [esi]
shl ecx, 8
or ecx, eax
lea eax, [edx - 1]
add eax, ecx
shl edx, 0x10
or eax, edx
mov dword [esi + edi*4], eax
mov eax, edi
shr eax, 1
je 0x1004770e
mov ecx, dword [esi + eax*4]
mov edx, dword [esi + edi*4]
cmp ecx, edx
jbe 0x1004770e
mov dword [esi + eax*4], edx
mov dword [esi + edi*4], ecx
mov edi, eax
shr eax, 1
jne 0x100476f8
movzx edx, byte [ebp]
movzx eax, byte [ebp + 1]
shl edx, 8
or edx, eax
ja 0x100476d0
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esi]
mov dword [esp + 0x40], edx
test ecx, ecx
je 0x10047981
mov eax, dword [esi + ecx*4]
mov edi, 1
mov ebp, dword [esi + 4]
mov dword [esi + 4], eax
mov dword [esi + ecx*4], 0xffffffff
mov ecx, 2
dec dword [esi]
cmp dword [esi], ecx
jb 0x1004777f
mov eax, dword [esi + ecx*4 + 4]
lea edx, [ecx + 1]
cmp dword [esi + ecx*4], eax
mov eax, dword [esi + edi*4]
cmovbe edx, ecx
mov ecx, dword [esi + edx*4]
cmp eax, ecx
jb 0x1004777b
mov dword [esi + edi*4], ecx
mov edi, edx
mov dword [esi + edx*4], eax
lea ecx, [edi + edi]
cmp ecx, dword [esi]
jbe 0x10047755
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
mov eax, ebp
shr eax, 0x10
movzx ecx, di
cmp ecx, eax
jae 0x10047952
sub eax, ecx
dec eax
add edx, eax
mov eax, ebp
mov dword [esp + 0x2c], eax
jmp 0x10047727
mov eax, dword [esp + 0x14]
cmp byte [eax + 1], 0
je 0x1004781a
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
je 0x100477cf
cmp eax, dword [esp + 0x8c]
jl 0x10047804
jg 0x100477e3
cmp ecx, dword [esp + 0x88]
jbe 0x10047804
jmp 0x100477e3
cmp eax, dword [esp + 0x8c]
jl 0x10047804
jg 0x100477e3
cmp ecx, dword [esp + 0x88]
jb 0x10047804
push eax
push ecx
push str.Rowid__lld_out_of_order
push ebx
call fcn.10046ed0
mov eax, dword [esp + 0x7c]
add esp, 0x10
mov ecx, dword [esp + 0x68]
mov di, word [esp + 0x7a]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x28], 0
movzx ecx, word [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp eax, ecx
jbe 0x1004787c
sub eax, ecx
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
add eax, 0xfffffffb
add eax, edx
xor edx, edx
lea ecx, [ecx - 4]
div ecx
movzx ecx, di
mov edi, dword [esp + 0x44]
mov dword [esp + 0x54], eax
mov edi, dword [ecx + edi - 4]
mov ecx, dword [esp + 0x38]
bswap edi
cmp byte [ecx + 0x11], 0
je 0x1004786e
push dword [esp + 0x18]
mov edx, edi
mov ecx, ebx
push 3
call fcn.10046fd0
mov eax, dword [esp + 0x5c]
add esp, 8
push eax
push edi
xor edx, edx
mov ecx, ebx
call fcn.10047070
add esp, 8
mov eax, dword [esp + 0x14]
cmp byte [eax + 8], 0
jne 0x100478f7
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
mov eax, dword [esp + 0x38]
bswap edi
cmp byte [eax + 0x11], 0
je 0x100478aa
push dword [esp + 0x18]
mov edx, edi
mov ecx, ebx
push 5
call fcn.10046fd0
add esp, 8
push dword [esp + 0x8c]
lea eax, [esp + 0x8c]
mov edx, edi
push dword [esp + 0x8c]
mov ecx, ebx
push eax
call fcn.10047280
mov edi, eax
mov dword [esp + 0x34], 0
add esp, 0xc
cmp edi, dword [esp + 0x34]
je 0x100475e6
push str.Child_page_depth_differs
push ebx
call fcn.10046ed0
add esp, 8
mov dword [esp + 0x34], edi
jmp 0x100475e6
movzx eax, word [esp + 0x7a]
inc dword [esi]
dec eax
mov edi, dword [esi]
add eax, ebp
shl ebp, 0x10
or eax, ebp
mov dword [esi + edi*4], eax
mov eax, edi
shr eax, 1
je 0x100475e6
mov ecx, dword [esi + eax*4]
mov edx, dword [esi + edi*4]
cmp ecx, edx
jbe 0x100475e6
mov dword [esi + eax*4], edx
mov dword [esi + edi*4], ecx
mov edi, eax
shr eax, 1
jne 0x10047915
jmp 0x100475e6
push eax
push ecx
push ebp
push str.Offset__u_out_of_range__u.._u
push ebx
call fcn.10046ed0
add esp, 0x14
mov dword [esp + 0x3c], 0
jmp 0x100475ea
mov ebp, dword [esp + 0x18]
push ebp
push eax
push str.Multiple_uses_for_byte__u_of_page__u
push ebx
call fcn.10046ed0
mov ecx, dword [esp + 0x30]
add esp, 0x10
movzx eax, di
sub ecx, eax
mov eax, dword [esp + 0x40]
dec eax
add eax, ecx
cmp dword [esi], 0
jne 0x10047444
jmp 0x10047993
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
movzx eax, ax
sub ecx, eax
lea eax, [edx - 1]
add eax, ecx
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 7]
cmp eax, ecx
je 0x10047444
push ebp
push ecx
push eax
push str.Fragmentation_of__u_bytes_reported_as__u_on_page__u
push ebx
call fcn.10046ed0
mov edi, dword [esp + 0x28]
add esp, 0x14
mov ecx, dword [edi + 0x48]
call fcn.100365d0
jmp 0x100473cf
mov edi, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov byte [edi], al
mov ecx, dword [edi + 0x48]
call fcn.100365d0
jmp 0x100473cf
push dword [esp + 0x18]
mov eax, str.invalid_page_number__u
push eax
push ebx
call fcn.10046ed0
add esp, 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret