Function at 0x4013b0
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x450
mov eax, dword [0x40d010]
xor eax, esp
mov dword [esp + 0x44c], eax
push esi
push edi
mov edi, dword [esp + 0x45c]
push 0x103
lea eax, [esp + 0x355]
push 0
push eax
mov byte [esp + 0x35c], 0
call fcn.00401760
push 0x103
lea ecx, [esp + 0x25d]
push 0
push ecx
mov byte [esp + 0x264], 0
call fcn.00401760
add esp, 0x18
call fcn.00401000
push 0x104
lea edx, [esp + 0x250]
push edx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x401440
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [esp + 0x44c]
xor ecx, esp
call fcn.0040188a
add esp, 0x450
ret
test esi, esi
je 0x40147a
lea eax, [esp + 0x24c]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401450
mov ecx, dword [str.syswow64]
sub eax, edx
lea eax, [esp + eax + 0x244]
mov dword [eax], ecx
mov edx, dword [0x40a29c]
mov dword [eax + 4], edx
mov cl, byte [0x40a2a0]
mov byte [eax + 8], cl
lea edx, [esp + 0x24c]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x104
lea eax, [esp + 0x14c]
push 0
push eax
call fcn.00401760
add esp, 0xc
xor eax, eax
mov cl, byte [esp + eax + 0x24c]
mov byte [esp + eax + 0x148], cl
inc eax
test cl, cl
jne 0x4014a1
lea eax, [esp + 0x148]
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4014c0
mov ecx, dword [str.GP_HTTPS_HD.exe]
mov edx, dword [0x40a288]
mov dword [eax], ecx
mov ecx, dword [0x40a28c]
mov dword [eax + 4], edx
mov edx, dword [0x40a290]
mov dword [eax + 8], ecx
mov cl, byte [0x40a294]
mov dword [eax + 0xc], edx
lea edx, [esp + 8]
mov byte [eax + 0x10], cl
push edx
lea eax, [esp + 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x401547
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x148]
push ecx
call fcn.004010c0
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 4
push 0x1f4
call esi
lea edx, [esp + 0x148]
push edx
call fcn.00401200
add esp, 4
push 0x1f4
call esi
lea eax, [esp + 0x148]
push eax
push 0x40a280
push 0xc8
push edi
call fcn.00401140
push 0x104
lea ecx, [esp + 0x15c]
push 0
push ecx
call fcn.00401760
add esp, 0x1c
xor eax, eax
jmp 0x401580
mov cl, byte [esp + eax + 0x24c]
mov byte [esp + eax + 0x148], cl
inc eax
test cl, cl
jne 0x401580
lea eax, [esp + 0x148]
dec eax
jmp 0x4015a0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4015a0
mov edx, dword [str.GP_HTTPS_HD.exe]
mov ecx, dword [0x40a288]
mov dword [eax], edx
mov edx, dword [0x40a28c]
mov dword [eax + 4], ecx
mov ecx, dword [0x40a290]
mov dword [eax + 8], edx
mov dl, byte [0x40a294]
mov dword [eax + 0xc], ecx
mov byte [eax + 0x10], dl
lea eax, [esp + 0x148]
push eax
call fcn.00401050
push 0x104
lea ecx, [esp + 0x150]
push 0
push ecx
call fcn.00401760
add esp, 0x10
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x24c]
mov byte [esp + eax + 0x148], cl
inc eax
test cl, cl
jne 0x401600
xor eax, eax
jmp 0x401620
mov cl, byte [esp + eax + 0x24c]
mov byte [esp + eax + 0x350], cl
inc eax
test cl, cl
jne 0x401620
lea eax, [esp + 0x350]
dec eax
jmp 0x401640
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x401640
mov edx, dword [str.GP_HTTPS_HD.exe]
mov ecx, dword [0x40a288]
mov dword [eax], edx
mov edx, dword [0x40a28c]
mov dword [eax + 4], ecx
mov ecx, dword [0x40a290]
mov dword [eax + 8], edx
mov dl, byte [0x40a294]
mov dword [eax + 0xc], ecx
mov byte [eax + 0x10], dl
lea eax, [esp + 0x350]
push eax
call fcn.00401320
mov ecx, dword [esp + 0x458]
add esp, 4
pop edi
pop esi
xor ecx, esp
xor eax, eax
call fcn.0040188a
add esp, 0x450
ret