Function at 0x4478a0
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x528c42
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x58ce34]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x118], esi
push 0x104
mov dword [ebp - 0x114], 0
call fcn.005028ec
add esp, 4
mov edi, eax
push 0
push 0x24
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x447a14
mov ecx, edi
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x447924
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x2c]
call fcn.00449f70
push edi
mov dword [ebp - 4], 0
call fcn.00502886
mov eax, dword [ebp - 0x1c]
lea edi, [ebp - 0x2c]
add esp, 4
cmp dword [ebp - 0x18], 0x10
cmovae edi, dword [ebp - 0x2c]
setae byte [ebp - 0x10d]
test eax, eax
je 0x447974
push eax
push 0x5c
push edi
call fcn.00504820
add esp, 0xc
test eax, eax
je 0x447974
sub eax, edi
jmp 0x447977
or eax, 0xffffffff
lea ecx, [eax + 1]
mov dword [ebp - 0x5c], 0
cmp dword [ebp - 0x1c], ecx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x4c], 0
cmovb ecx, dword [ebp - 0x1c]
cmp byte [ebp - 0x10d], 0
push ecx
cmovne eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x5c]
push eax
mov dword [ebp - 0x48], 0xf
call fcn.00449f70
movups xmm0, xmmword [ebp - 0x5c]
mov edi, 6
movups xmmword [ebp - 0x44], xmm0
movq xmm0, qword [ebp - 0x4c]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
movq qword [ebp - 0x34], xmm0
cmp edx, 0x10
jb 0x447a00
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4479f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x447bca
push edx
push ecx
call fcn.005028bb
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
jmp 0x447a41
push 3
mov dword [ebp - 0x44], 0
lea ecx, [ebp - 0x44]
push 0x588c5c
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.00449f70
mov edi, 2
push 0
push 0
push 0
push 0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x14]
cmp dword [ebp - 0x30], 0x10
lea eax, [ebp - 0x44]
push ecx
cmovae eax, dword [ebp - 0x44]
push 0
push 0
push eax
mov dword [ebp - 0x14], 0
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationA]
push 0xb0
lea eax, [ebp - 0x10c]
push 0
push eax
call fcn.00504450
add esp, 8
lea ecx, [ebp - 0x10c]
call fcn.00448950
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xe8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx], eax
lea ecx, [ebp - 0xfc]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 4]
or dword [ebp + eax - 0xe8], 4
push dword [ebp - 0x14]
call fcn.00448c50
mov byte [ebp - 4], 3
or edi, 0x10
mov edx, dword [ebp - 0xb8]
xorps xmm0, xmm0
mov eax, edx
mov dword [esi], 0
and al, 0x22
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [ebp - 0x114], edi
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], 0
cmp al, 2
je 0x447b3a
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
test ecx, ecx
je 0x447b3a
mov eax, dword [ebp - 0xe4]
cmp ecx, dword [ebp - 0xbc]
cmovb ecx, dword [ebp - 0xbc]
mov edx, dword [eax]
sub ecx, edx
jmp 0x447b65
test dl, 4
jne 0x447b5f
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax]
test ecx, ecx
je 0x447b5f
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
sub ecx, edx
mov eax, dword [ebp - 0xc8]
add ecx, dword [eax]
jmp 0x447b65
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x447b72
push ecx
push edx
mov ecx, esi
call fcn.00449f70
lea ecx, [ebp - 0x10c]
call fcn.00447be0
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x447bad
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x447ba3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x447bcf
push edx
push ecx
call fcn.005028bb
add esp, 8
mov eax, esi
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.00502878
mov esp, ebp
pop ebp
ret
call fcn.0050a6e9
call fcn.0050a6e9
int3