Function at 0x4084e0
Capabilities:
Get common file path
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41a7b2
mov eax, dword fs:[0]
push eax
sub esp, 0x308
mov eax, dword [0x50e008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x290]
call fcn.00403100
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2a8]
call fcn.00403100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x278]
call fcn.00403100
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x260]
call fcn.00403100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x248]
call fcn.00403100
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x230]
call fcn.00403100
mov byte [ebp - 4], 5
call fcn.00403420
call fcn.00406f30
call fcn.00407060
mov dword [ebp - 0x2b4], 0
jmp 0x408592
mov eax, dword [ebp - 0x2b4]
add eax, 1
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
cmp ecx, dword [0x50f300]
jge 0x4085bb
mov edx, dword [ebp - 0x2b4]
mov eax, dword [edx*4 + 0x510690]
push eax
lea ecx, [ebp - 0x290]
call fcn.00408930
jmp 0x408583
mov dword [ebp - 0x2b0], 0
jmp 0x4085d6
mov ecx, dword [ebp - 0x2b0]
add ecx, 1
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x2b0]
cmp edx, dword [0x50f2fc]
jge 0x4085ff
mov eax, dword [ebp - 0x2b0]
mov ecx, dword [eax*4 + 0x510650]
push ecx
lea ecx, [ebp - 0x2a8]
call fcn.00408930
jmp 0x4085c7
mov dword [ebp - 0x2ac], 0
jmp 0x40861a
mov edx, dword [ebp - 0x2ac]
add edx, 1
mov dword [ebp - 0x2ac], edx
mov eax, dword [ebp - 0x2ac]
cmp eax, dword [0x50f2f8]
jge 0x408643
mov ecx, dword [ebp - 0x2ac]
mov edx, dword [ecx*4 + 0x510368]
push edx
lea ecx, [ebp - 0x278]
call fcn.00408930
jmp 0x40860b
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x2e4]
push ecx
call fcn.00407e70
add esp, 8
mov dword [ebp - 0x2c8], eax
mov edx, dword [ebp - 0x2c8]
push edx
lea ecx, [ebp - 0x260]
call fcn.00408880
lea ecx, [ebp - 0x2e4]
call fcn.004017c0
lea eax, [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x314]
push ecx
call fcn.00407e70
add esp, 8
mov dword [ebp - 0x2c4], eax
mov edx, dword [ebp - 0x2c4]
push edx
lea ecx, [ebp - 0x248]
call fcn.00408880
lea ecx, [ebp - 0x314]
call fcn.004017c0
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0x2fc]
push ecx
call fcn.00407e70
add esp, 8
mov dword [ebp - 0x2cc], eax
mov edx, dword [ebp - 0x2cc]
push edx
lea ecx, [ebp - 0x230]
call fcn.00408880
lea ecx, [ebp - 0x2fc]
call fcn.004017c0
push 0x208
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.00413280
add esp, 0xc
push 0
push 0x1c
lea ecx, [ebp - 0x218]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov dword [ebp - 0x2bc], eax
lea ecx, [ebp - 0x248]
call fcn.004018c0
push eax
lea ecx, [ebp - 0x248]
call fcn.00403130
push eax
lea ecx, [ebp - 0x230]
call fcn.004018c0
push eax
lea ecx, [ebp - 0x230]
call fcn.00403130
push eax
lea edx, [ebp - 0x218]
push edx
call fcn.00408170
add esp, 0x14
mov eax, dword [0x511238]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
lea ecx, [ebp - 0x260]
call fcn.004018c0
push eax
lea ecx, [ebp - 0x260]
call fcn.00403130
push eax
call fcn.00402b50
add esp, 8
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2b8]
push ecx
call fcn.004030c0
add esp, 4
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2c0], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x230]
call fcn.004017c0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x248]
call fcn.004017c0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x260]
call fcn.004017c0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x278]
call fcn.004017c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2a8]
call fcn.004017c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x290]
call fcn.004017c0
mov eax, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040a10c
mov esp, ebp
pop ebp
ret