Function at 0x554cf0
Capabilities:
Create directory
Get disk information
Get disk size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38c
mov eax, dword [0x5cf004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword fs:[0x2c]
push ebx
push esi
push edi
mov edx, dword [eax]
mov ebx, ecx
mov eax, dword [0x5da5b0]
cmp eax, dword [edx + 4]
jle 0x554d77
push 0x5da5b0
call fcn.00531eab
add esp, 4
cmp dword [0x5da5b0], 0xffffffff
jne 0x554d77
call fcn.00407579
test eax, eax
je 0x555293
mov edx, dword [eax]
cmp edx, vtable.ATL::CAtlStringMgr.0
jne 0x55529d
lock inc dword [eax + 0x14]
add eax, 8
add eax, 0x10
push 0x572030
mov dword [0x5da5b4], eax
call fcn.00532228
add esp, 4
push 0x5da5b0
call fcn.00531e6c
add esp, 4
mov eax, dword [ebx + 0x454]
cmp dword [eax - 0xc], 0
jl 0x5552a7
movzx eax, word [eax]
push eax
push 0x5a6adc
push 0x5da5b4
mov dword [ebp - 0x334], eax
call fcn.00402f90
add esp, 0xc
lea eax, [ebp - 0x350]
push eax
lea eax, [ebp - 0x348]
push eax
lea eax, [ebp - 0x378]
push eax
push dword [0x5da5b4]
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x348]
cmp edx, 2
ja 0x554e80
jb 0x554de3
test eax, eax
jae 0x554e80
mov edi, eax
mov esi, edx
sub edi, dword [ebp - 0x350]
mov ecx, eax
sbb esi, dword [ebp - 0x34c]
shrd ecx, edx, 0xa
shr edx, 0xa
call fcn.00562cb0
mulsd xmm0, qword [0x5ae898]
sub esp, 8
mov ecx, edi
mov edx, esi
shrd ecx, edx, 0xa
shr edx, 0xa
movsd qword [esp], xmm0
call fcn.00562cb0
mulsd xmm0, qword [0x5ae898]
sub esp, 8
mov edx, esi
mov ecx, edi
movsd qword [esp], xmm0
call fcn.00562cb0
mov edx, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x348]
movsd qword [ebp - 0x340], xmm0
call fcn.00562cb0
movsd xmm1, qword [ebp - 0x340]
sub esp, 8
divsd xmm1, xmm0
mov esi, dword [ebp - 0x334]
mulsd xmm1, qword [0x5ae8c8]
movsd qword [esp], xmm1
push esi
push str._C:__.1f_____.1f__.1f_MiB_
jmp 0x554f18
mov edi, eax
mov esi, edx
sub edi, dword [ebp - 0x350]
mov ecx, eax
sbb esi, dword [ebp - 0x34c]
shrd ecx, edx, 0x14
shr edx, 0x14
call fcn.00562cb0
mulsd xmm0, qword [0x5ae898]
sub esp, 8
mov ecx, edi
mov edx, esi
shrd ecx, edx, 0x14
shr edx, 0x14
movsd qword [esp], xmm0
call fcn.00562cb0
mulsd xmm0, qword [0x5ae898]
sub esp, 8
mov edx, esi
mov ecx, edi
movsd qword [esp], xmm0
call fcn.00562cb0
mov edx, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x348]
movsd qword [ebp - 0x340], xmm0
call fcn.00562cb0
movsd xmm1, qword [ebp - 0x340]
sub esp, 8
divsd xmm1, xmm0
mov esi, dword [ebp - 0x334]
mulsd xmm1, qword [0x5ae8c8]
movsd qword [esp], xmm1
push esi
push str._C:__.1f_____.1f__.1f_GiB_
lea eax, [ebx + 0x460]
push eax
call fcn.00402f90
add esp, 0x24
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.00534597
add esp, 8
test eax, eax
je 0x554f55
xor ecx, ecx
mov word [eax], cx
push str.CdmResourcediskspddiskspd32.exe
lea eax, [ebp - 0x218]
push eax
push 0x5a6b54
push 0x5da27c
call fcn.00402f90
push 0x5abba0
push dword [0x5da27c]
lea eax, [ebp - 0x354]
push eax
call fcn.00539b1c
add esp, 0x1c
test eax, eax
jne 0x555267
mov eax, dword [ebp - 0x354]
test eax, eax
je 0x555267
push eax
call fcn.00539dc0
mov eax, dword [ebx + 0x46c]
add esp, 4
inc eax
mov dword [0x5da37c], eax
push dword [ebx + 0x45c]
call fcn.0053b03b
add esp, 4
cdq
mov dword [0x5da380], eax
lea eax, [ebp - 0xc]
mov dword [0x5da384], edx
push esi
push str._c:_
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
add esp, 0xc
call esi
push eax
lea eax, [ebp - 0xc]
push eax
push str._sCrystalDiskMark_08X
push 0x5da278
call fcn.00402f90
add esp, 0x10
push 0
push dword [0x5da278]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call esi
push eax
push dword [0x5da278]
push str._sCrystalDiskMark_08X.tmp
push 0x5da274
call fcn.00402f90
add esp, 0x10
lea eax, [ebp - 0x36c]
push 0
push 0
push eax
push 0
push 0
push 0
push 0
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea eax, [ebp - 0x330]
mov dword [ebp - 0x330], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x368]
push eax
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x388]
push eax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov ecx, dword [ebp - 0x368]
mov eax, dword [ebp - 0x364]
shrd ecx, eax, 0x14
shr eax, 0x14
cmp dword [0x5da384], eax
jb 0x5550b1
ja 0x5550a2
cmp dword [0x5da380], ecx
jbe 0x5550b1
push 0
push 0
push dword [ebx + 0x490]
jmp 0x555271
push 0
push 0x28000080
push 2
push 0
push 0
push 0xc0000000
push dword [0x5da274]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x5da378], eax
push 0
cmp eax, 0xffffffff
jne 0x5550e8
push 0
push dword [ebx + 0x4a0]
jmp 0x555271
lea ecx, [ebp - 0x358]
mov dword [ebp - 0x35c], 0
push ecx
push 0
push 0
push 2
lea ecx, [ebp - 0x35c]
mov dword [ebp - 0x358], 0
push ecx
push 0x9c040
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [0x5da380]
push 4
push 0x3000
push 0x100000
push 0
mov dword [ebp - 0x334], eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
mov dword [ebp - 0x360], edi
test edi, edi
jne 0x555153
push eax
push eax
push str.Failed_VirtualAlloc__.
jmp 0x555271
push ecx
mov ecx, esp
push str.Fill_Buffer___START
call fcn.00402210
call fcn.00554150
add esp, 4
cmp dword [ebx + 0x48c], 1
jne 0x555182
mov ecx, 0x40000
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x360]
jmp 0x5551a3
xor esi, esi
call fcn.0053b08f
and eax, 0x800000ff
jns 0x555197
dec eax
or eax, 0xffffff00
inc eax
mov byte [esi + edi], al
inc esi
cmp esi, 0x100000
jl 0x555184
push ecx
mov ecx, esp
push str.Fill_Buffer___END
call fcn.00402210
call fcn.00554150
mov ecx, esp
push str.Fill_Test_File___START
call fcn.00402210
call fcn.00554150
xor esi, esi
add esp, 4
cmp dword [ebp - 0x334], esi
jle 0x555200
cmp dword [ebx + 0x40c], 0
je 0x555248
push 0
lea eax, [ebp - 0x370]
push eax
push 0x100000
push edi
push dword [0x5da378]
call dword [sym.imp.KERNEL32.dll_WriteFile]
inc esi
cmp esi, dword [ebp - 0x334]
jl 0x5551d3
push ecx
mov ecx, esp
push str.Fill_Test_File___END
call fcn.00402210
call fcn.00554150
add esp, 4
push 0x8000
push 0x100000
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
push dword [0x5da378]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531d62
mov esp, ebp
pop ebp
ret
push dword [0x5da378]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x8000
push 0x100000
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x555276
push 0
push 0
push dword [ebx + 0x4a4]
call fcn.00410f79
mov dword [ebx + 0x40c], 0
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00531d62
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004027b0
mov ecx, eax
call dword [edx + 0xc]
jmp 0x554d55
push 0x80070057
call fcn.004027b0
int3