Function at 0x10028c30
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004ee47
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2d34
call fcn.1003dcd0
mov eax, dword [0x10063790]
xor eax, esp
mov dword [esp + 0x2d30], eax
push ebx
push esi
push edi
mov eax, dword [0x10063790]
xor eax, esp
push eax
lea eax, [esp + 0x2d48]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [esp + 0x95c]
mov dword [esp + 0x18], 1
call fcn.1002a010
xor esi, esi
lea ecx, [esp + 0x1b4c]
mov dword [esp + 0x2d50], esi
call fcn.1002a010
lea ecx, [esp + 0x1254]
mov byte [esp + 0x2d50], 1
call fcn.1002a010
lea ecx, [esp + 0x2444]
mov byte [esp + 0x2d50], 2
call fcn.1002a010
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
mov ebx, dword [edi + 0x30]
mov dword [esp + 0x14], esi
mov byte [esp + 0x2d50], 3
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
lea esi, [edi + 0xc]
nop
mov eax, dword [esi + 4]
test eax, eax
je 0x10028e6d
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x1c8b265b
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x14], eax
jae 0x10028e6d
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.100031f0
push eax
lea ecx, [esp + 0x1258]
call fcn.1002a180
mov ecx, dword [esp + 0x126c]
or ecx, dword [esp + 0x1270]
je 0x10028e63
cmp dword [esp + 0x1afc], 0
je 0x10028e63
mov edx, dword [esp + 0x1264]
mov eax, edx
sub eax, ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1268]
mov ecx, eax
sbb ecx, dword [esp + 0x30]
cmp ecx, dword [edi + 0x2c]
jl 0x10028e4f
jg 0x10028d8a
mov edx, dword [esp + 0x44]
cmp edx, dword [edi + 0x28]
jbe 0x10028e48
mov eax, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0xda0], eax
add eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x964], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x968], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x1214], eax
mov dword [esp + 0xda4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x970], eax
push ecx
mov eax, 1
mov dword [esp + 0x1204], eax
mov dword [esp + 0x1208], eax
mov eax, dword [esp + 0x48]
push eax
mov dword [esp + 0x980], ecx
mov ecx, dword [esp + 0x38]
push ecx
mov dword [esp + 0x980], eax
mov eax, dword [esp + 0x1218]
push ebx
push eax
push edx
push str.Primary_unallocated_space__d___u____Start:__I64u___Size:__I64u
mov dword [esp + 0x122c], edx
mov dword [esp + 0x988], ebx
mov byte [esp + 0x1214], 0
call fcn.10030090
push eax
call fcn.1002f970
add esp, 0x20
lea ecx, [esp + 0x95c]
push ecx
lea edx, [esp + 0x38]
push edx
mov ecx, edi
call fcn.10028bd0
mov eax, dword [esp + 0x1268]
mov edx, dword [esp + 0x1264]
add edx, dword [esp + 0x126c]
adc eax, dword [esp + 0x1270]
mov ebx, edx
mov dword [esp + 0x30], eax
add dword [esp + 0x14], 1
jmp 0x10028cf0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
sub eax, ebx
sbb edx, dword [esp + 0x30]
mov dword [esp + 0x34], eax
cmp edx, dword [edi + 0x2c]
jl 0x10028f8d
jg 0x10028e93
cmp eax, dword [edi + 0x28]
jbe 0x10028f8d
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0xda0], eax
add eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x964], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x968], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x1214], eax
mov dword [esp + 0xda4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x970], eax
push edx
mov eax, 1
mov dword [esp + 0x1204], eax
mov dword [esp + 0x1208], eax
mov eax, dword [esp + 0x38]
push eax
mov dword [esp + 0x980], edx
mov edx, dword [esp + 0x38]
push edx
mov dword [esp + 0x980], eax
mov eax, dword [esp + 0x1218]
push ebx
push eax
push ecx
push str.Primary_unallocated_space__d___u____Start:__I64u___Size:__I64u
mov dword [esp + 0x122c], ecx
mov dword [esp + 0x988], ebx
mov byte [esp + 0x1214], 0
call fcn.10030090
push eax
call fcn.1002f970
add esp, 0x20
lea ecx, [esp + 0x95c]
push ecx
mov ecx, edi
call fcn.10028750
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
mov dword [esp + 0x1c], eax
jbe 0x10028f5a
call fcn.1003c54f
mov eax, dword [esp + 0x1c]
imul eax, eax, 0x8f8
mov dword [esp + 0x38], ebx
add ebx, eax
cmp ebx, dword [esi + 8]
ja 0x10028f70
cmp ebx, dword [esi + 4]
jae 0x10028f75
call fcn.1003c54f
lea edx, [esp + 0x95c]
push edx
push ebx
mov eax, esi
push eax
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.10028a40
mov eax, dword [esi + 4]
test eax, eax
je 0x100291ca
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x1c8b265b
imul ecx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x100291ca
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov edi, edi
mov eax, dword [esi + 4]
test eax, eax
je 0x10028fdd
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x1c8b265b
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, 0xffffffff
cmp dword [esp + 0x14], eax
jae 0x100291ca
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x100291c5
mov ecx, dword [esi + 8]
sub ecx, ebx
mov eax, 0x1c8b265b
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x14]
jbe 0x100291c5
cmp ebx, dword [esi + 8]
jbe 0x1002901f
call fcn.1003c54f
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ebx
add ebx, edx
cmp ebx, dword [esi + 8]
ja 0x10029033
cmp ebx, dword [esi + 4]
jae 0x10029038
call fcn.1003c54f
mov eax, esi
cmp ebx, dword [eax + 8]
jb 0x10029044
call fcn.1003c54f
push ebx
lea ecx, [esp + 0x960]
call fcn.1002a180
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x100291c5
mov ecx, dword [esi + 8]
sub ecx, ebx
mov eax, 0x1c8b265b
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 8
mov eax, edx
shr eax, 0x1f
add ecx, 1
add eax, edx
cmp eax, ecx
mov dword [esp + 0x1c], ecx
jbe 0x100291c5
cmp ebx, dword [esi + 8]
jbe 0x1002908f
call fcn.1003c54f
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], ebx
lea ebx, [ebx + eax + 0x8f8]
cmp ebx, dword [esi + 8]
ja 0x100290a8
cmp ebx, dword [esi + 4]
jae 0x100290ad
call fcn.1003c54f
mov eax, esi
cmp ebx, dword [eax + 8]
jb 0x100290b9
call fcn.1003c54f
push ebx
lea ecx, [esp + 0x1b50]
call fcn.1002a180
mov edx, dword [esp + 0x974]
mov ecx, edx
or ecx, dword [esp + 0x978]
je 0x100291b0
mov ebx, dword [esp + 0x1b64]
mov eax, ebx
or eax, dword [esp + 0x1b68]
je 0x100291b0
cmp dword [esp + 0x1200], 0
je 0x100291b0
cmp dword [esp + 0x23f0], 0
je 0x100291b0
cmp dword [esp + 0x1204], 0
je 0x100291b0
cmp dword [esp + 0x23f4], 0
je 0x100291b0
mov ecx, dword [esp + 0x1b5c]
mov eax, dword [esp + 0x1b60]
sub ecx, edx
sbb eax, dword [esp + 0x978]
sub ecx, dword [esp + 0x96c]
sbb eax, dword [esp + 0x970]
cmp eax, dword [edi + 0x2c]
jg 0x100291b0
jl 0x1002915b
cmp ecx, dword [edi + 0x28]
jae 0x100291b0
mov ecx, dword [esp + 0x1b68]
mov eax, dword [esp + 0x14]
add edx, ebx
adc dword [esp + 0x978], ecx
push 1
mov dword [esp + 0x978], edx
lea edx, [esp + 0x58]
push edx
push eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x5c]
push edx
mov ecx, esi
call fcn.10003350
mov ecx, eax
call fcn.10003400
mov ecx, eax
call fcn.10003400
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call fcn.10027e40
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x28], 0x8f8
mov dword [esp + 0x14], ecx
jmp 0x10028fc0
jmp fcn.10003380
lea edx, [esp + 0x64]
push edx
mov ecx, edi
call fcn.100287f0
push eax
lea ecx, [esp + 0x2448]
mov byte [esp + 0x2d54], 4
call fcn.1002a180
lea ecx, [esp + 0x64]
mov byte [esp + 0x2d50], 3
call fcn.1002a110
mov eax, dword [esp + 0x245c]
or eax, dword [esp + 0x2460]
je 0x100297ee
mov eax, dword [esp + 0x2454]
mov edx, dword [esp + 0x2458]
mov ebx, eax
add ebx, dword [edi + 0x30]
mov ecx, edx
adc ecx, dword [edi + 0x34]
add eax, dword [esp + 0x245c]
mov dword [esp + 0x30], ecx
adc edx, dword [esp + 0x2460]
mov ecx, eax
xor eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov edi, edi
mov eax, dword [esi + 4]
test eax, eax
je 0x10029482
mov edx, dword [esi + 8]
sub edx, eax
mov eax, 0x1c8b265b
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x14], eax
jae 0x10029482
mov ecx, dword [esi + 4]
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x100291c5
mov edx, dword [esi + 8]
sub edx, ecx
mov eax, 0x1c8b265b
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x14]
jbe 0x100291c5
cmp ecx, dword [esi + 8]
jbe 0x100292b8
call fcn.1003c54f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
lea eax, [ecx + edx]
cmp eax, dword [esi + 8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1c], eax
ja 0x100292d1
cmp eax, dword [esi + 4]
jae 0x100292da
call fcn.1003c54f
mov eax, dword [esp + 0x1c]
mov ecx, esi
cmp eax, dword [ecx + 8]
jb 0x100292e6
call fcn.1003c54f
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x1258]
call fcn.1002a180
mov ecx, dword [esp + 0x126c]
or ecx, dword [esp + 0x1270]
je 0x1002946c
cmp dword [esp + 0x1afc], 0
jne 0x1002946c
mov edx, dword [esp + 0x1264]
mov eax, edx
sub eax, ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1268]
mov ecx, eax
sbb ecx, dword [esp + 0x30]
cmp ecx, dword [edi + 0x2c]
jl 0x10029458
jg 0x1002934d
mov edx, dword [esp + 0x44]
cmp edx, dword [edi + 0x28]
jbe 0x10029451
mov eax, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0xda0], eax
add eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x964], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x968], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x1214], eax
mov dword [esp + 0xda4], eax
mov eax, dword [esp + 0x30]
push ecx
mov dword [esp + 0x974], eax
mov eax, dword [esp + 0x48]
push eax
mov dword [esp + 0x980], ecx
mov ecx, dword [esp + 0x38]
push ecx
mov dword [esp + 0x980], eax
mov eax, dword [esp + 0x1218]
push ebx
push eax
push edx
push str.Logical_unallocated_space__d___u____Start:__I64u___Size:__I64u
mov dword [esp + 0x122c], edx
mov byte [esp + 0x1214], 0
mov dword [esp + 0x988], ebx
mov dword [esp + 0x121c], 1
mov dword [esp + 0x1220], 0
call fcn.10030090
push eax
call fcn.1002f970
add esp, 0x20
lea ecx, [esp + 0x95c]
push ecx
mov ecx, edi
call fcn.10028750
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
mov dword [esp + 0x1c], eax
jbe 0x10029417
call fcn.1003c54f
mov eax, dword [esp + 0x1c]
imul eax, eax, 0x8f8
mov dword [esp + 0x40], ebx
add ebx, eax
cmp ebx, dword [esi + 8]
ja 0x1002942d
cmp ebx, dword [esi + 4]
jae 0x10029432
call fcn.1003c54f
lea edx, [esp + 0x95c]
push edx
push ebx
mov eax, esi
push eax
lea eax, [esp + 0x58]
push eax
mov ecx, esi
call fcn.10028a40
mov eax, dword [esp + 0x1268]
mov edx, dword [esp + 0x1264]
add edx, dword [esp + 0x126c]
adc eax, dword [esp + 0x1270]
mov ebx, edx
mov dword [esp + 0x30], eax
add dword [esp + 0x14], 1
add dword [esp + 0x28], 0x8f8
mov ecx, dword [esp + 0x34]
jmp 0x10029250
mov edx, dword [esp + 0x38]
sub ecx, ebx
sbb edx, dword [esp + 0x30]
mov dword [esp + 0x44], ecx
cmp edx, dword [edi + 0x2c]
jl 0x10029598
jg 0x100294a4
cmp ecx, dword [edi + 0x28]
jbe 0x10029598
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x964], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x968], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x1214], eax
mov dword [esp + 0xda4], eax
mov eax, dword [esp + 0x30]
push edx
mov dword [esp + 0x974], eax
mov eax, dword [esp + 0x48]
push eax
mov dword [esp + 0x980], edx
mov edx, dword [esp + 0x38]
push edx
mov dword [esp + 0x980], eax
mov eax, dword [esp + 0x1218]
push ebx
push eax
push ecx
push str.Logical_unallocated_space__d___u____Start:__I64u___Size:__I64u
mov dword [esp + 0x122c], ecx
mov dword [esp + 0xdbc], ecx
mov byte [esp + 0x1214], 0
mov dword [esp + 0x988], ebx
mov dword [esp + 0x121c], 1
mov dword [esp + 0x1220], 0
call fcn.10030090
push eax
call fcn.1002f970
add esp, 0x20
lea ecx, [esp + 0x95c]
push ecx
mov ecx, edi
call fcn.10028750
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
mov dword [esp + 0x1c], eax
jbe 0x10029565
call fcn.1003c54f
mov eax, dword [esp + 0x1c]
imul eax, eax, 0x8f8
mov dword [esp + 0x40], ebx
add ebx, eax
cmp ebx, dword [esi + 8]
ja 0x1002957b
cmp ebx, dword [esi + 4]
jae 0x10029580
call fcn.1003c54f
lea edx, [esp + 0x95c]
push edx
push ebx
mov eax, esi
push eax
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.10028a40
mov eax, dword [esi + 4]
test eax, eax
je 0x100297ee
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x1c8b265b
imul ecx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x100297ee
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
lea esp, [esp]
mov eax, dword [esi + 4]
test eax, eax
je 0x100295ed
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x1c8b265b
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, 0xffffffff
cmp dword [esp + 0x14], eax
jae 0x100297ee
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x100291c5
mov ecx, dword [esi + 8]
sub ecx, ebx
mov eax, 0x1c8b265b
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x14]
jbe 0x100291c5
cmp ebx, dword [esi + 8]
jbe 0x1002962f
call fcn.1003c54f
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], ebx
add ebx, edx
cmp ebx, dword [esi + 8]
ja 0x10029643
cmp ebx, dword [esi + 4]
jae 0x10029648
call fcn.1003c54f
mov eax, esi
cmp ebx, dword [eax + 8]
jb 0x10029654
call fcn.1003c54f
push ebx
lea ecx, [esp + 0x960]
call fcn.1002a180
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x100291c5
mov ecx, dword [esi + 8]
sub ecx, ebx
mov eax, 0x1c8b265b
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 8
mov eax, edx
shr eax, 0x1f
add ecx, 1
add eax, edx
cmp eax, ecx
mov dword [esp + 0x1c], ecx
jbe 0x100291c5
cmp ebx, dword [esi + 8]
jbe 0x1002969f
call fcn.1003c54f
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], ebx
lea ebx, [ebx + eax + 0x8f8]
cmp ebx, dword [esi + 8]
ja 0x100296b8
cmp ebx, dword [esi + 4]
jae 0x100296bd
call fcn.1003c54f
mov eax, esi
cmp ebx, dword [eax + 8]
jb 0x100296c9
call fcn.1003c54f
push ebx
lea ecx, [esp + 0x1b50]
call fcn.1002a180
mov edx, dword [esp + 0x974]
mov ecx, edx
or ecx, dword [esp + 0x978]
je 0x100297d9
mov ebx, dword [esp + 0x1b64]
mov eax, ebx
or eax, dword [esp + 0x1b68]
je 0x100297d9
cmp dword [esp + 0x1200], 0
je 0x100297d9
cmp dword [esp + 0x23f0], 0
je 0x100297d9
cmp dword [esp + 0x1204], 0
jne 0x100297d9
cmp dword [esp + 0x23f4], 0
jne 0x100297d9
mov ecx, dword [esp + 0x1b5c]
mov eax, dword [esp + 0x1b60]
sub ecx, edx
sbb eax, dword [esp + 0x978]
sub ecx, dword [esp + 0x96c]
sbb eax, dword [esp + 0x970]
cmp eax, dword [edi + 0x2c]
jg 0x100297d9
jl 0x1002976b
cmp ecx, dword [edi + 0x28]
jae 0x100297d9
mov ecx, dword [esp + 0x1b68]
add edx, ebx
mov ebx, dword [esi + 4]
adc dword [esp + 0x978], ecx
cmp ebx, dword [esi + 8]
mov dword [esp + 0x974], edx
jbe 0x1002978f
call fcn.1003c54f
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], ebx
add ebx, edx
cmp ebx, dword [esi + 8]
ja 0x100297a3
cmp ebx, dword [esi + 4]
jae 0x100297a8
call fcn.1003c54f
mov eax, esi
mov dword [esp + 0x38], ebx
add ebx, 0x8f8
cmp ebx, dword [eax + 8]
mov dword [esp + 0x34], eax
ja 0x100297c2
cmp ebx, dword [eax + 4]
jae 0x100297c7
call fcn.1003c54f
mov eax, dword [esp + 0x34]
push ebx
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
call fcn.10027e40
mov edx, dword [esp + 0x1c]
add dword [esp + 0x18], 0x8f8
mov dword [esp + 0x14], edx
jmp 0x100295d0
lea ecx, [esp + 0x2444]
mov byte [esp + 0x2d50], 2
call fcn.1002a110
lea ecx, [esp + 0x1254]
mov byte [esp + 0x2d50], 1
call fcn.1002a110
lea ecx, [esp + 0x1b4c]
mov byte [esp + 0x2d50], 0
call fcn.1002a110
lea ecx, [esp + 0x95c]
mov dword [esp + 0x2d50], 0xffffffff
call fcn.1002a110
mov ecx, dword [esp + 0x2d48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2d30]
xor ecx, esp
call fcn.1003c13d
mov esp, ebp
pop ebp
ret