Function at 0x40308c
Capabilities:
Get common file path
Get disk size
Get hostname

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x678
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call fcn.0040129e
push eax
lea ecx, [esp + 0x14]
call fcn.004028e5
xor ebx, ebx
push ebx
call dword [sym.imp.msvcrt.dll__time64]
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_srand]
pop ecx
call dword [sym.imp.msvcrt.dll_rand]
push eax
lea eax, [esp + 0x14]
push str._05ld
push eax
call fcn.004039f3
add esp, 0xc
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
push 0x103
lea eax, [esp + 0x37d]
mov byte [esp + 0x37c], bl
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea edi, [esp + 0x18]
mov edx, 0x44d9a8
mov ecx, ebx
mov eax, dword [edx + ecx*4]
mov esi, 0x104
cmp eax, dword [edi + ecx*4]
jne 0x403120
inc ecx
cmp ecx, 4
jne 0x40310b
jmp 0x403176
movzx eax, byte [esp + 0x27]
push eax
movzx eax, byte [esp + 0x2a]
push eax
movzx eax, byte [esp + 0x2d]
push eax
movzx eax, byte [esp + 0x30]
push eax
movzx eax, byte [esp + 0x33]
push eax
movzx eax, byte [esp + 0x36]
push eax
movzx eax, byte [esp + 0x39]
push eax
movzx eax, byte [esp + 0x3c]
push eax
movzx eax, word [esp + 0x3e]
push eax
movzx eax, word [esp + 0x40]
push eax
push dword [esp + 0x40]
lea eax, [esp + 0x3a4]
push str._08lX_04X_04x_02X_02X_02X_02X_02X_02X_02X_02X
push esi
push eax
call fcn.00402f40
add esp, 0x38
lea eax, [esp + 0x68]
mov dword [esp + 0x64], eax
lea ecx, [esp + 0x64]
push 3
lea eax, [esp + 0x37c]
push eax
call fcn.0040383b
mov ecx, dword [esp + 0x64]
call fcn.00401bae
push eax
push dword [esp + 0x68]
lea ecx, [esp + 0x18]
call fcn.00401a0b
lea eax, [esp + 0x68]
cmp dword [esp + 0x64], eax
je 0x4031bd
push dword [esp + 0x64]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call fcn.0040129e
push eax
lea ecx, [esp + 0x18]
call fcn.004028e5
movzx eax, word [esp + 0x2a]
push eax
movzx eax, word [esp + 0x38]
push eax
movzx eax, word [esp + 0x38]
push eax
movzx eax, word [esp + 0x34]
push eax
movzx eax, word [esp + 0x3e]
push eax
movzx eax, word [esp + 0x46]
push eax
movzx eax, word [esp + 0x4e]
push eax
lea eax, [esp + 0x30]
push str._03d_02d_02d_04d_02d_02d_02d
push eax
call fcn.0040399e
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x34]
add esp, 0x24
push dword [eax - 0xc]
push eax
call fcn.00401a0b
push 0x103
lea eax, [esp + 0x275]
mov byte [esp + 0x274], bl
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x40], esi
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x274]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
push 7
mov byte [esp + 0x48], bl
lea edi, [esp + 0x49]
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x270]
lea edx, [ecx + 1]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403274
sub ecx, edx
lea edx, [esp + 0x270]
push ecx
lea ecx, [esp + 0x48]
call fcn.004042be
pop ecx
call fcn.0040129e
push eax
mov ecx, ebp
call fcn.004028e5
mov esi, ebx
movzx eax, byte [esp + esi + 0x44]
push eax
push str._02x
push ebp
call fcn.004039f3
add esp, 0xc
inc esi
cmp esi, 0x10
jl 0x40329e
mov eax, dword [ebp]
lea ecx, [esp + 0x10]
push dword [eax - 0xc]
push eax
call fcn.00401a0b
xor eax, eax
push 0x206
mov word [esp + 0x484], ax
lea eax, [esp + 0x486]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0x480]
mov edi, 0x104
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [esp + 0x38]
mov dword [esp + 0x38], ebx
push eax
push ebx
push ebx
lea eax, [esp + 0x48c]
mov dword [esp + 0x48], ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
push dword [esp + 0x38]
lea eax, [esp + 0x14]
push str._010lu
push eax
call fcn.004039f3
add esp, 0xc
mov byte [esp + 0x168], bl
lea eax, [esp + 0x169]
push 0x103
push ebx
push eax
call sub.msvcrt.dll_memset
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x74]
add esp, 0xc
mov dword [esp + 0x64], eax
lea ecx, [esp + 0x64]
push 3
push esi
call fcn.004038e2
push dword [esp + 0x64]
mov edx, edi
lea ecx, [esp + 0x16c]
call fcn.00402d5f
lea eax, [esp + 0x68]
cmp dword [esp + 0x64], eax
je 0x40338b
push dword [esp + 0x64]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
lea ecx, [esp + 0x168]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403395
sub ecx, edx
lea edx, [esp + 0x168]
push ecx
lea ecx, [esp + 0x48]
call fcn.004042be
pop ecx
mov ecx, ebp
call fcn.00401a9e
movzx eax, byte [esp + ebx + 0x44]
push eax
push str._02x
push ebp
call fcn.004039f3
add esp, 0xc
inc ebx
cmp ebx, 0x10
jl 0x4033b7
mov ecx, dword [esp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.0040169b
lea ecx, [esi - 0x10]
call fcn.0040169b
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret