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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a7123
mov eax, dword fs:[0]
push eax
sub esp, 0x680
mov eax, dword [0x4d3a00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x688], 0
call fcn.0040224a
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x46bea9
push 0x80004005
call fcn.004046a6
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x66c], eax
push 0
mov dword [ebp - 4], 1
call fcn.0047eb0c
push eax
call fcn.0047eafc
call fcn.0047eadb
push eax
lea eax, [ebp - 0x66c]
push 0x4a988c
push eax
call fcn.00455b63
add esp, 0x14
lea eax, [ebp - 0x554]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
push 0x103
lea eax, [ebp - 0x33b]
mov byte [ebp - 0x33c], 0
push 0
push eax
call fcn.00482250
add esp, 0xc
lea edx, [ebp - 0x554]
mov ecx, 0x4acddc
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x46bf34
add ecx, 4
add edx, 4
sub esi, 4
jae 0x46bf21
jmp 0x46bf9e
movzx eax, byte [ebp - 0x545]
push eax
movzx eax, byte [ebp - 0x546]
push eax
movzx eax, byte [ebp - 0x547]
push eax
movzx eax, byte [ebp - 0x548]
push eax
movzx eax, byte [ebp - 0x549]
push eax
movzx eax, byte [ebp - 0x54a]
push eax
movzx eax, byte [ebp - 0x54b]
push eax
movzx eax, byte [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x54e]
push eax
movzx eax, word [ebp - 0x550]
push eax
push dword [ebp - 0x554]
lea eax, [ebp - 0x33c]
push str._08lX_04X_04x_02X_02X_02X_02X_02X_02X_02X_02X
push eax
call fcn.0047c38d
add esp, 0x34
lea eax, [ebp - 0x664]
mov dword [ebp - 0x668], eax
lea ecx, [ebp - 0x668]
push 3
lea eax, [ebp - 0x33c]
push eax
call fcn.004559e8
mov edx, dword [ebp - 0x668]
mov byte [ebp - 4], 2
test edx, edx
jne 0x46bfd0
xor ecx, ecx
jmp 0x46bfe4
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46bfd5
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x66c]
call fcn.004130ec
mov eax, dword [ebp - 0x668]
lea ecx, [ebp - 0x664]
mov byte [ebp - 4], 1
cmp eax, ecx
je 0x46c00e
push eax
call fcn.0047b62c
add esp, 4
lea eax, [ebp - 0x564]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call fcn.0040224a
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x46c037
push 0x80004005
call fcn.004046a6
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x674], eax
movzx eax, word [ebp - 0x562]
push eax
movzx eax, word [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x55c]
push eax
movzx eax, word [ebp - 0x564]
push eax
movzx eax, word [ebp - 0x55e]
push eax
movzx eax, word [ebp - 0x55a]
push eax
movzx eax, word [ebp - 0x556]
push eax
lea eax, [ebp - 0x674]
mov byte [ebp - 4], 3
push str._03d_02d_02d_04d_02d_02d_02d
push eax
call fcn.0041d4c7
mov edi, dword [ebp - 0x674]
lea ecx, [ebp - 0x66c]
add esp, 0x24
push dword [edi - 0xc]
push edi
call fcn.004130ec
push 0x103
lea eax, [ebp - 0x237]
mov byte [ebp - 0x238], 0
push 0
push eax
call fcn.00482250
add esp, 0xc
mov dword [ebp - 0x684], 0x104
lea eax, [ebp - 0x684]
push eax
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
xorps xmm0, xmm0
mov byte [ebp - 0x30], 0
lea ecx, [ebp - 0x238]
movq qword [ebp - 0x1f], xmm0
movdqu xmmword [ebp - 0x2f], xmm0
mov dword [ebp - 0x17], 0
lea edx, [ecx + 1]
mov word [ebp - 0x13], 0
mov byte [ebp - 0x11], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46c112
sub ecx, edx
lea eax, [ebp - 0x238]
push ecx
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0041b0bd
add esp, 0xc
call fcn.0040224a
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x46c14b
push 0x80004005
call fcn.004046a6
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, dword [ebp - 0x670]
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 0x688], 1
xor esi, esi
lea esp, [esp]
movzx eax, byte [ebp + esi - 0x30]
push eax
push 0x4a9904
push edi
call fcn.00455b63
inc esi
add esp, 0xc
cmp esi, 0x10
jl 0x46c170
mov eax, dword [edi]
lea ecx, [ebp - 0x66c]
push dword [eax - 0xc]
push eax
call fcn.004130ec
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x544], ax
lea eax, [ebp - 0x542]
push eax
call fcn.00482250
add esp, 0xc
lea eax, [ebp - 0x544]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [ebp - 0x67c]
mov dword [ebp - 0x67c], 0
push eax
push 0
push 0
lea eax, [ebp - 0x544]
mov dword [ebp - 0x678], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
push dword [ebp - 0x67c]
lea eax, [ebp - 0x66c]
push str._010lu
push eax
call fcn.00455b63
push 0x103
lea eax, [ebp - 0x133]
mov byte [ebp - 0x134], 0
push 0
push eax
call fcn.00482250
mov esi, dword [ebp - 0x66c]
lea eax, [ebp - 0x5e4]
add esp, 0x18
mov dword [ebp - 0x5e8], eax
lea ecx, [ebp - 0x5e8]
push 3
push esi
call fcn.00455a9a
push dword [ebp - 0x5e8]
lea eax, [ebp - 0x134]
push 0x104
push eax
call fcn.00482397
mov eax, dword [ebp - 0x5e8]
lea ecx, [ebp - 0x5e4]
add esp, 0xc
cmp eax, ecx
je 0x46c27e
push eax
call fcn.0047b62c
add esp, 4
lea ecx, [ebp - 0x134]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46c287
sub ecx, edx
lea eax, [ebp - 0x134]
push ecx
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0041b0bd
mov eax, dword [ebp - 0x670]
add esp, 0xc
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
lea edx, [ecx - 0x10]
mov esi, dword [edx]
je 0x46c308
cmp dword [edx + 0xc], 0
jge 0x46c2dd
cmp dword [ecx - 8], 0
jge 0x46c2cd
push 0x80070057
call fcn.004046a6
mov dword [ecx - 0xc], 0
xor ecx, ecx
mov eax, dword [eax]
mov word [eax], cx
jmp 0x46c308
or eax, 0xffffffff
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x46c2f4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [ebp - 0x670]
add eax, 0x10
mov dword [ecx], eax
mov edi, dword [ebp - 0x670]
xor esi, esi
movzx eax, byte [ebp + esi - 0x30]
push eax
push 0x4a9904
push edi
call fcn.00455b63
inc esi
add esp, 0xc
cmp esi, 0x10
jl 0x46c310
mov edx, dword [ebp - 0x674]
or edi, 0xffffffff
add edx, 0xfffffff0
mov byte [ebp - 4], 1
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
mov esi, dword [ebp - 0x66c]
test ecx, ecx
jg 0x46c356
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x46c371
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x670]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047aabf
mov esp, ebp
pop ebp
ret