Function at 0x10017c20
Capabilities:
Access peb ldr_data
Get disk information
Get disk size
Get ntdll base address
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1009e2b6
mov eax, dword fs:[0]
push eax
sub esp, 0x580
mov eax, dword [0x100cc144]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor ecx, ecx
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x4f4], esi
mov dword [ebp - 0x4a0], 0
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 7
mov word [esi + 0x20], cx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x4c], 7
mov word [esi + 0x38], cx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x4a0], 1
cmp dword [edi + 0x10], ecx
je 0x1001872f
cmp dword [edi + 0x14], 8
mov eax, edi
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x488], ecx
jb 0x10017ce9
mov eax, dword [edi]
push 0
push 0
lea ecx, [ebp - 0x488]
push ecx
lea ecx, [ebp - 0x48c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1001800f
call ebx
mov dword [ebp - 0x4a4], eax
call fcn.10031890
mov ecx, eax
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1001800f
push 0x54
push str.d:jenkins.jenkinsworkspacedefragger_defragdefragdefrag_file_system_fs_utils.cc
lea ecx, [ebp - 0x4ec]
mov dword [ebp - 0x4dc], eax
mov dword [ebp - 0x4d8], 0xf
mov byte [ebp - 0x4ec], al
call fcn.10007190
push 3
push 0x100a57c0
lea ecx, [ebp - 0x4d4]
mov dword [ebp - 4], 1
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], 0
call fcn.10007190
push 1
push 2
lea ecx, [ebp - 0x58c]
mov byte [ebp - 4], 2
call fcn.10003460
push 0xffffffffffffffff
push 0x100a5664
lea ecx, [ebp - 0x4ec]
mov byte [ebp - 4], 3
call fcn.10007ab0
push 0xffffffffffffffff
push 0x100a5668
lea ecx, [ebp - 0x4ec]
mov dword [ebp - 0x4f0], eax
call fcn.10007ab0
push 0x64
mov ebx, eax
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.10071620
add esp, 0xc
cmp ebx, 0xffffffff
je 0x10017ee4
mov ecx, dword [ebp - 0x4f0]
lea eax, [ebx - 1]
cmp ecx, eax
jae 0x10017ee4
mov eax, dword [ebp - 0x4dc]
lea edx, [ecx + 1]
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x4a8], 0xf
mov byte [ebp - 0x4bc], 0
cmp eax, edx
jb 0x1001874d
sub ebx, ecx
sub eax, edx
lea ecx, [ebx - 1]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x4d8], 0x10
lea eax, [ebp - 0x4ec]
cmovae eax, dword [ebp - 0x4ec]
push ecx
add eax, edx
lea ecx, [ebp - 0x4bc]
push eax
call fcn.10007190
cmp dword [ebp - 0x4a8], 0x10
lea eax, [ebp - 0x4bc]
mov dword [ebp - 0x4a0], 3
cmovae eax, dword [ebp - 0x4bc]
push eax
push 0x144
lea eax, [ebp - 0x74]
push str.__4d___s_
push eax
call fcn.10003270
mov edx, dword [ebp - 0x4a8]
add esp, 0x10
cmp edx, 0x10
jb 0x10017ec7
mov ecx, dword [ebp - 0x4bc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10017ebd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018752
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x4a8], 0xf
mov byte [ebp - 0x4bc], 0
jmp 0x10017efa
push 0x144
lea eax, [ebp - 0x74]
push str.__4d_
push eax
call fcn.10003270
add esp, 0xc
cmp dword [ebp - 0x4c0], 0x10
lea eax, [ebp - 0x4d4]
cmovae eax, dword [ebp - 0x4d4]
push eax
lea eax, [ebp - 0x58c]
push eax
call fcn.10004a70
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x58c]
push eax
call fcn.10004a70
lea eax, [ebp - 0x58c]
mov byte [ebp - 4], 4
push str._error__get_sector__cluster_info_failed__err:
push eax
call fcn.10004a70
add esp, 0x18
lea ecx, [ebp - 0x58c]
push dword [ebp - 0x4a4]
call fcn.10009b90
call fcn.10031890
lea ecx, [ebp - 0x58c]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x1c]
lea ecx, [ebp - 0x58c]
call fcn.10004b90
mov edx, dword [ebp - 0x4c0]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x10017fb0
mov ecx, dword [ebp - 0x4d4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10017fa6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018757
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov edx, dword [ebp - 0x4d8]
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], 0
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x10018009
mov ecx, dword [ebp - 0x4ec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10017fff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001875c
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebp - 0x488]
xorps xmm0, xmm0
mov dword [esi + 0x10], eax
imul eax, dword [ebp - 0x48c]
mov dword [esi + 0x14], 0
mov dword [esi + 0x1c], 0
movq qword [ebp - 0x494], xmm0
movq qword [ebp - 0x49c], xmm0
mov dword [esi + 0x18], eax
mov eax, edi
cmp dword [edi + 0x14], 8
jb 0x1001804d
mov eax, dword [edi]
lea ecx, [ebp - 0x49c]
push ecx
lea ecx, [ebp - 0x494]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x10018362
call ebx
mov dword [ebp - 0x4f0], eax
call fcn.10031890
mov ecx, eax
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10018362
push 0x54
push str.d:jenkins.jenkinsworkspacedefragger_defragdefragdefrag_file_system_fs_utils.cc
lea ecx, [ebp - 0x4bc]
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4a8], 0xf
mov byte [ebp - 0x4bc], al
call fcn.10007190
push 3
push 0x100a57c0
lea ecx, [ebp - 0x4d4]
mov dword [ebp - 4], 5
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], 0
call fcn.10007190
push 1
push 2
lea ecx, [ebp - 0x58c]
mov byte [ebp - 4], 6
call fcn.10003460
push 0xffffffffffffffff
push 0x100a5664
lea ecx, [ebp - 0x4bc]
mov byte [ebp - 4], 7
call fcn.10007ab0
push 0xffffffffffffffff
push 0x100a5668
lea ecx, [ebp - 0x4bc]
mov dword [ebp - 0x4a4], eax
call fcn.10007ab0
push 0x64
mov ebx, eax
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.10071620
add esp, 0xc
cmp ebx, 0xffffffff
je 0x1001823d
mov ecx, dword [ebp - 0x4a4]
lea eax, [ebx - 1]
cmp ecx, eax
jae 0x1001823d
mov eax, dword [ebp - 0x4ac]
lea edx, [ecx + 1]
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 0xf
mov byte [ebp - 0x4ec], 0
cmp eax, edx
jb 0x10018761
sub ebx, ecx
sub eax, edx
lea ecx, [ebx - 1]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x4a8], 0x10
lea eax, [ebp - 0x4bc]
cmovae eax, dword [ebp - 0x4bc]
push ecx
add eax, edx
lea ecx, [ebp - 0x4ec]
push eax
call fcn.10007190
or dword [ebp - 0x4a0], 4
lea eax, [ebp - 0x4ec]
cmp dword [ebp - 0x4d8], 0x10
cmovae eax, dword [ebp - 0x4ec]
push eax
push 0x14e
lea eax, [ebp - 0x74]
push str.__4d___s_
push eax
call fcn.10003270
mov edx, dword [ebp - 0x4d8]
add esp, 0x10
cmp edx, 0x10
jb 0x10018220
mov ecx, dword [ebp - 0x4ec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10018216
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018766
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 0xf
mov byte [ebp - 0x4ec], 0
jmp 0x10018253
push 0x14e
lea eax, [ebp - 0x74]
push str.__4d_
push eax
call fcn.10003270
add esp, 0xc
cmp dword [ebp - 0x4c0], 0x10
lea eax, [ebp - 0x4d4]
cmovae eax, dword [ebp - 0x4d4]
push eax
lea eax, [ebp - 0x58c]
push eax
call fcn.10004a70
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x58c]
push eax
call fcn.10004a70
lea eax, [ebp - 0x58c]
mov byte [ebp - 4], 8
push str._error__get_disk_size_info_failed__err:
push eax
call fcn.10004a70
add esp, 0x18
lea ecx, [ebp - 0x58c]
push dword [ebp - 0x4f0]
call fcn.10009b90
call fcn.10031890
lea ecx, [ebp - 0x58c]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x1c]
lea ecx, [ebp - 0x58c]
call fcn.10004b90
mov edx, dword [ebp - 0x4c0]
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x10018309
mov ecx, dword [ebp - 0x4d4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100182ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001876b
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov edx, dword [ebp - 0x4a8]
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], 0
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x10018362
mov ecx, dword [ebp - 0x4bc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10018358
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018770
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov eax, dword [ebp - 0x494]
mov dword [esi], eax
mov eax, dword [ebp - 0x490]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x49c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x498]
push 0x208
mov dword [esi + 0xc], eax
lea eax, [ebp - 0x27c]
push 0
push eax
call fcn.10071620
push 0x208
lea eax, [ebp - 0x484]
push 0
push eax
call fcn.10071620
add esp, 0x18
cmp dword [edi + 0x14], 8
jb 0x100183b6
mov edi, dword [edi]
push 0x104
lea eax, [ebp - 0x484]
push eax
push 0
push 0
push 0
push 0x104
lea eax, [ebp - 0x27c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x100186d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x4a4], eax
call fcn.10031890
mov ecx, eax
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x100186d3
push 0x54
push str.d:jenkins.jenkinsworkspacedefragger_defragdefragdefrag_file_system_fs_utils.cc
lea ecx, [ebp - 0x4bc]
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4a8], 0xf
mov byte [ebp - 0x4bc], al
call fcn.10007190
push 3
push 0x100a57c0
lea ecx, [ebp - 0x4d4]
mov dword [ebp - 4], 9
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], 0
call fcn.10007190
push 1
push 2
lea ecx, [ebp - 0x58c]
mov byte [ebp - 4], 0xa
call fcn.10003460
push 0xffffffffffffffff
push 0x100a5664
lea ecx, [ebp - 0x4bc]
mov byte [ebp - 4], 0xb
call fcn.10007ab0
push 0xffffffffffffffff
push 0x100a5668
lea ecx, [ebp - 0x4bc]
mov ebx, eax
call fcn.10007ab0
push 0x64
mov edi, eax
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.10071620
add esp, 0xc
cmp edi, 0xffffffff
je 0x100185ae
lea eax, [edi - 1]
cmp ebx, eax
jae 0x100185ae
mov eax, dword [ebp - 0x4ac]
lea edx, [ebx + 1]
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 0xf
mov byte [ebp - 0x4ec], 0
cmp eax, edx
jb 0x10018775
sub edi, ebx
sub eax, edx
lea ecx, [edi - 1]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x4a8], 0x10
lea eax, [ebp - 0x4bc]
cmovae eax, dword [ebp - 0x4bc]
push ecx
add eax, edx
lea ecx, [ebp - 0x4ec]
push eax
call fcn.10007190
or dword [ebp - 0x4a0], 8
lea eax, [ebp - 0x4ec]
cmp dword [ebp - 0x4d8], 0x10
cmovae eax, dword [ebp - 0x4ec]
push eax
push 0x15f
lea eax, [ebp - 0x74]
push str.__4d___s_
push eax
call fcn.10003270
mov edx, dword [ebp - 0x4d8]
add esp, 0x10
cmp edx, 0x10
jb 0x10018591
mov ecx, dword [ebp - 0x4ec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10018587
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001877a
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 0xf
mov byte [ebp - 0x4ec], 0
jmp 0x100185c4
push 0x15f
lea eax, [ebp - 0x74]
push str.__4d_
push eax
call fcn.10003270
add esp, 0xc
cmp dword [ebp - 0x4c0], 0x10
lea eax, [ebp - 0x4d4]
cmovae eax, dword [ebp - 0x4d4]
push eax
lea eax, [ebp - 0x58c]
push eax
call fcn.10004a70
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x58c]
push eax
call fcn.10004a70
lea eax, [ebp - 0x58c]
mov byte [ebp - 4], 0xc
push str._error__get_volume_info_failed__err:
push eax
call fcn.10004a70
add esp, 0x18
lea ecx, [ebp - 0x58c]
push dword [ebp - 0x4a4]
call fcn.10009b90
call fcn.10031890
lea ecx, [ebp - 0x58c]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x1c]
lea ecx, [ebp - 0x58c]
call fcn.10004b90
mov edx, dword [ebp - 0x4c0]
mov byte [ebp - 4], 9
cmp edx, 0x10
jb 0x1001867a
mov ecx, dword [ebp - 0x4d4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10018670
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001877f
push edx
push ecx
call fcn.10039c3d
add esp, 8
mov edx, dword [ebp - 0x4a8]
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], 0
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x100186d3
mov ecx, dword [ebp - 0x4bc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100186c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018784
push edx
push ecx
call fcn.10039c3d
add esp, 8
lea edx, [ebp - 0x27c]
lea edi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x100186e0
sub edx, edi
lea eax, [ebp - 0x27c]
sar edx, 1
lea ecx, [esi + 0x20]
push edx
push eax
call fcn.1000e930
lea edx, [ebp - 0x484]
lea edi, [edx + 2]
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x10018710
sub edx, edi
lea eax, [ebp - 0x484]
sar edx, 1
lea ecx, [esi + 0x38]
push edx
push eax
call fcn.1000e930
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10039fbc
mov esp, ebp
pop ebp
ret
call fcn.10006be0
call fcn.10074abc
call fcn.10074abc
call fcn.10074abc
call fcn.10006be0
call fcn.10074abc
call fcn.10074abc
call fcn.10074abc
call fcn.10006be0
call fcn.10074abc
call fcn.10074abc
call fcn.10074abc
int3