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

Disassembly:
sub esp, 0x70
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x10], 0
push esi
push edi
mov edi, edx
mov dword [esp + 0x50], ebp
mov eax, dword [ebp + 0x1c]
xor esi, esi
mov ebx, dword [ebp]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x38], 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], eax
test edi, edi
je 0x10214ac6
call fcn.10214d90
test eax, eax
jne 0x10214ac6
push eax
lea eax, [esp + 0x1c]
mov dword [ebp + 0x1c], str.Page__u:
push eax
mov edx, edi
mov dword [ebp + 0x20], edi
mov ecx, ebx
call fcn.1021e800
add esp, 8
test eax, eax
je 0x1021459e
push eax
push str.unable_to_get_the_page._error_code_d
push ebp
call fcn.10214e60
add esp, 0xc
mov edi, dword [esp + 0x18]
test edi, edi
je 0x1021457c
mov ecx, dword [edi + 0x48]
call fcn.10225bb0
mov eax, dword [esp + 0x5c]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x30]
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov eax, dword [esp + 0x18]
mov cl, byte [eax]
mov byte [esp + 0x17], cl
mov ecx, eax
mov byte [eax], 0
call fcn.1021e960
test eax, eax
je 0x102145be
push eax
push str.btreeInitPage___returns_error_code__d
jmp 0x10214563
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.1021eb60
test eax, eax
je 0x102145de
push eax
push str.free_space_corruption
push ebp
call fcn.10214e60
add esp, 0xc
jmp 0x10214570
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x38]
movzx edi, byte [edx + 9]
lea ebx, [edi + eax]
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x1c], str.On_tree_page__u_cell__d:
movzx ecx, byte [ebx + 5]
movzx eax, byte [ebx + 6]
mov dl, byte [edx + 8]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x40], ebx
movzx ebx, byte [ebx + 3]
dec ecx
movzx eax, cx
mov ecx, 3
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
shl ebx, 8
movzx eax, byte [eax + 4]
or ebx, eax
movzx eax, dl
sub ecx, eax
lea eax, [edi + ecx*4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
lea eax, [eax + ebx*2]
add eax, 0xfffffffe
add eax, ecx
mov dword [esp + 0x44], eax
test dl, dl
jne 0x1021469f
lea eax, [edi + ecx]
mov edi, dword [eax + 8]
mov eax, dword [esp + 0x34]
bswap edi
cmp byte [eax + 0x11], dl
je 0x10214673
push dword [esp + 0x20]
mov edx, edi
mov dword [ebp + 0x1c], str.On_page__u_at_right_child:
push 5
mov ecx, ebp
call fcn.10214d00
add esp, 8
push dword [esp + 0x8c]
lea eax, [esp + 0x8c]
mov edx, edi
push dword [esp + 0x8c]
mov ecx, ebp
push eax
call fcn.102144d0
add esp, 0xc
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], esi
jmp 0x102146a8
mov esi, dword [ebp + 0x40]
mov dword [esi], 0
lea edx, [ebx - 1]
mov eax, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x4c], eax
test eax, eax
js 0x102148e0
nop dword [eax]
cmp dword [ebp + 0x10], 0
je 0x102148dc
mov edx, dword [esp + 0x44]
mov dword [ebp + 0x24], eax
mov ax, word [edx]
sub edx, 2
mov ch, al
mov dword [esp + 0x44], edx
mov cl, ah
mov eax, dword [esp + 0x24]
movzx edi, cx
add eax, 0xfffffffc
mov ecx, dword [esp + 0x2c]
inc ecx
cmp edi, ecx
jb 0x102148b2
cmp edi, eax
ja 0x102148b2
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x68]
add eax, edi
push ecx
push eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [eax + 0x50]
call eax
mov bx, word [esp + 0x86]
add esp, 0xc
mov edx, dword [esp + 0x24]
movzx eax, bx
add eax, edi
cmp eax, edx
jbe 0x10214743
push str.Extends_off_end_of_page
push ebp
call fcn.10214e60
add esp, 8
jmp 0x102148c3
mov eax, dword [esp + 0x18]
cmp byte [eax + 1], 0
je 0x102147c0
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
je 0x10214772
cmp eax, dword [esp + 0x8c]
jl 0x102147aa
jg 0x10214786
cmp ecx, dword [esp + 0x88]
jbe 0x102147aa
jmp 0x10214786
cmp eax, dword [esp + 0x8c]
jl 0x102147aa
jg 0x10214786
cmp ecx, dword [esp + 0x88]
jb 0x102147aa
push eax
push ecx
push str.Rowid__lld_out_of_order
push ebp
call fcn.10214e60
mov bx, word [esp + 0x8a]
add esp, 0x10
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
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 0x1021482a
sub eax, ecx
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
add eax, 0xfffffffb
add eax, edx
xor edx, edx
lea ecx, [ecx - 4]
div ecx
movzx ecx, bx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x54], eax
mov ebx, dword [ecx + ebx - 4]
mov ecx, dword [esp + 0x34]
bswap ebx
cmp byte [ecx + 0x11], 0
je 0x10214814
push dword [esp + 0x20]
mov edx, ebx
mov ecx, ebp
push 3
call fcn.10214d00
mov eax, dword [esp + 0x5c]
add esp, 8
push eax
push ebx
xor edx, edx
mov ecx, ebp
call fcn.10214b60
mov bx, word [esp + 0x82]
add esp, 8
mov eax, dword [esp + 0x18]
cmp byte [eax + 8], 0
jne 0x1021489e
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
mov eax, dword [esp + 0x34]
bswap edi
cmp byte [eax + 0x11], 0
je 0x10214858
push dword [esp + 0x20]
mov edx, edi
mov ecx, ebp
push 5
call fcn.10214d00
add esp, 8
push dword [esp + 0x8c]
lea eax, [esp + 0x8c]
mov edx, edi
push dword [esp + 0x8c]
mov ecx, ebp
push eax
call fcn.102144d0
mov edi, eax
mov dword [esp + 0x34], 0
add esp, 0xc
cmp edi, dword [esp + 0x30]
je 0x102148cb
push str.Child_page_depth_differs
push ebp
call fcn.10214e60
add esp, 8
mov dword [esp + 0x30], edi
jmp 0x102148cb
movzx edx, bx
mov ecx, esi
dec edx
add edx, edi
shl edi, 0x10
or edx, edi
call fcn.10214b30
jmp 0x102148cb
push eax
push ecx
push edi
push str.Offset__d_out_of_range__d.._d
push ebp
call fcn.10214e60
add esp, 0x14
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x4c]
sub eax, 1
mov dword [esp + 0x4c], eax
jns 0x102146c0
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x8c]
mov dword [ecx + 4], eax
mov dword [ebp + 0x1c], 0
je 0x10214ab7
cmp dword [ebp + 0x10], 0
jle 0x1021456c
mov eax, dword [esp + 0x18]
cmp byte [eax + 8], 0
jne 0x1021497b
mov esi, dword [ebp + 0x40]
mov dword [esi], 0
test edx, edx
js 0x1021497b
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x18]
lea ebx, [eax + edx*2]
mov edx, dword [esp + 0x1c]
add ebx, edx
nop
mov ax, word [ebx]
mov ch, al
mov cl, ah
movzx edi, cx
lea eax, [edi + edx]
push eax
mov eax, dword [ebp + 0x4c]
push ebp
call eax
movzx edx, ax
add esp, 8
dec edx
mov ecx, esi
add edx, edi
shl edi, 0x10
or edx, edi
call fcn.10214b30
sub dword [esp + 0x3c], 1
lea ebx, [ebx - 2]
mov edx, dword [esp + 0x1c]
jns 0x10214940
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
movzx ebx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ebx, 8
or ebx, eax
jbe 0x102149e4
mov edx, dword [esp + 0x1c]
movzx ecx, byte [edx + ebx + 2]
movzx eax, byte [edx + ebx + 3]
inc dword [esi]
mov edi, dword [esi]
shl ecx, 8
or ecx, eax
mov eax, ebx
dec ecx
shl eax, 0x10
add ecx, ebx
or ecx, eax
mov eax, edi
shr eax, 1
mov dword [esi + edi*4], ecx
je 0x102149d2
mov ecx, dword [esi + eax*4]
mov edx, dword [esi + edi*4]
cmp ecx, edx
jbe 0x102149ce
mov dword [esi + eax*4], edx
mov dword [esi + edi*4], ecx
mov edi, eax
shr eax, 1
jne 0x102149b8
mov edx, dword [esp + 0x1c]
movzx ecx, byte [ebx + edx]
movzx eax, byte [edx + ebx + 1]
shl ecx, 8
mov ebx, ecx
or ebx, eax
ja 0x10214992
xor edx, edx
mov ecx, dword [esi]
mov dword [esp + 0x3c], edx
test ecx, ecx
je 0x10214a75
mov eax, dword [esi + ecx*4]
mov edi, 1
mov ebx, 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 0x10214a3e
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 0x10214a3a
mov dword [esi + edi*4], ecx
mov edi, edx
mov dword [esi + edx*4], eax
lea ecx, [edi + edi]
cmp ecx, dword [esi]
jbe 0x10214a14
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
mov eax, ebx
shr eax, 0x10
movzx ecx, cx
cmp ecx, eax
jae 0x10214a59
sub eax, ecx
mov dword [esp + 0x2c], ebx
dec edx
add edx, eax
jmp 0x102149e6
mov ebx, dword [esp + 0x20]
push ebx
push eax
push str.Multiple_uses_for_byte__u_of_page__u
push ebp
call fcn.10214e60
mov ecx, dword [esi]
add esp, 0x10
mov edx, dword [esp + 0x3c]
jmp 0x10214a79
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
movzx eax, ax
sub esi, eax
dec esi
add edx, esi
test ecx, ecx
jne 0x1021456c
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 7]
cmp edx, eax
je 0x1021456c
push ebx
push eax
push edx
push str.Fragmentation_of__d_bytes_reported_as__d_on_page__u
push ebp
call fcn.10214e60
add esp, 0x14
jmp 0x1021456c
mov edi, dword [esp + 0x18]
mov al, byte [esp + 0x17]
mov byte [edi], al
jmp 0x10214570
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret