Function at 0x41163a
Capabilities:
Create directory
Get common file path
Get disk information
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x310
mov eax, dword [0x4242b4]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpynA]
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 0x310], eax
mov edi, 0x104
push edi
lea eax, [esi + 0x384]
lea ecx, [esi + 0xcf8]
push eax
push ecx
call ebx
call fcn.0040dcd4
test eax, eax
je 0x4116a3
push edi
lea eax, [esi + 0x488]
push eax
call fcn.0040df4e
test eax, eax
jne 0x4116a3
push 0x404818
call fcn.0040be00
pop ecx
push 0xfffffffffffffff8
jmp 0x4119f9
mov ecx, dword [ebp - 0x310]
test ecx, ecx
je 0x4116c5
cmp byte [ecx], 0
je 0x4116c5
push edi
lea eax, [esi + 0x17c]
push ecx
push eax
mov dword [ebp - 0x310], eax
call ebx
jmp 0x4116e9
lea eax, [esi + 0x17c]
push edi
push eax
push 0
mov dword [ebp - 0x310], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call fcn.0040e0d6
test eax, eax
je 0x4119f7
push dword [ebp - 0x310]
call fcn.0040c4a4
push dword [ebp - 0x310]
call fcn.0040c469
push dword [ebp - 0x310]
call fcn.0040ca5e
test eax, eax
je 0x411728
mov eax, dword [esi + 0xac4]
cmp eax, 1
je 0x411723
cmp eax, 2
je 0x411723
cmp eax, 3
jne 0x411728
xor eax, eax
inc eax
jmp 0x41172a
xor eax, eax
test eax, eax
mov dword [esi + 0x24], eax
je 0x411743
push edi
push dword [ebp - 0x310]
add esi, 0x74
push esi
call ebx
jmp 0x411a08
call fcn.0040db35
test eax, eax
je 0x411776
push 0x404810
lea eax, [esi + 0x384]
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.0040c2ca
test eax, eax
jne 0x4118d3
push 0x4047dc
jmp 0x4119f1
lea eax, [ebp - 0x204]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x4117f8
push 0x404778
call fcn.0040be00
mov dword [esp], 0x200
lea eax, [ebp - 0x204]
push eax
push 0x404770
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
test eax, eax
jne 0x4118d3
push 0x200
lea eax, [ebp - 0x204]
push eax
push 0x404768
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
test eax, eax
jne 0x4118d3
push 0x404718
call fcn.0040be00
pop ecx
push 4
lea eax, [esi + 0xcf8]
push eax
lea eax, [ebp - 0x204]
push eax
call ebx
jmp 0x4118d3
call fcn.0040dcd4
test eax, eax
jne 0x41180e
call fcn.0040ddf3
test eax, eax
je 0x4118d3
cmp dword [esi + 0xac4], 0
jne 0x4118d3
lea eax, [ebp - 0x30c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x4118c0
lea eax, [ebp - 0x30c]
push eax
call fcn.0040c469
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x30c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4118d3
cmp byte [ebp - 0x30c], 0x5c
jne 0x411867
cmp byte [ebp - 0x30b], 0x5c
je 0x41188e
lea eax, [ebp - 0x30c]
push eax
mov byte [ebp - 0x309], 0
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
test eax, eax
je 0x4118b4
cmp eax, 1
je 0x4118b4
cmp eax, 4
je 0x41188e
cmp eax, 5
jne 0x4118d3
push 0x40470c
lea eax, [esi + 0x280]
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.0040c2ca
test eax, eax
jne 0x4118d3
push 0x4046dc
jmp 0x4119f1
push 0x4046a4
call fcn.0040be00
jmp 0x4118d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x404660
call fcn.0040be00
pop ecx
pop ecx
lea eax, [ebp - 0x204]
push eax
call fcn.0040c4a4
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 2
jle 0x41195e
push 0
lea eax, [ebp - 0x204]
push eax
call fcn.0040c335
test eax, eax
jne 0x41195e
push eax
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x41194b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x41195e
push eax
lea eax, [ebp - 0x204]
push eax
push 0x404608
call fcn.0040be00
add esp, 0xc
push 4
lea eax, [esi + 0xcf8]
push eax
lea eax, [ebp - 0x204]
push eax
call ebx
jmp 0x41195e
lea eax, [ebp - 0x204]
push eax
push 0x4045d8
call fcn.0040be00
pop ecx
pop ecx
lea eax, [ebp - 0x204]
push eax
call fcn.0040c469
add esi, 0x74
push esi
xor ebx, ebx
push ebx
push 0x4045d4
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x41199b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4045a0
call fcn.0040be00
pop ecx
jmp 0x4119f6
push ebx
push esi
call fcn.0040cabe
test eax, eax
jne 0x4119b1
push 0x404578
call fcn.0040be00
pop ecx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4119df
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x70
jne 0x4119d7
push 0x404528
call fcn.0040be00
pop ecx
push 0xfffffffffffffffa
jmp 0x4119f9
push eax
push 0x4044e8
jmp 0x411993
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
inc eax
cmp eax, edi
jle 0x4119fc
push 0x4044bc
call fcn.0040be00
pop ecx
push 0xfffffffffffffff7
pop eax
jmp 0x411a0e
push 0x401354
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call fcn.0040cdef
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0041a84f
leave
ret 4