Function at 0x404d0c
Capabilities:
Create directory
Get common file path
Query environment variable

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, 0x1770
push esi
call fcn.004137f4
mov dword [0x460b98], eax
xor ebx, ebx
mov dword [esp], 0x2ee0
mov byte [eax], bl
call fcn.004137f4
xor ecx, ecx
mov dword [0x460b9c], eax
mov dword [esp], 0x2719
mov word [eax], cx
call fcn.004015c7
pop ecx
push dword [0x460b98]
test eax, eax
mov byte [esp + 0x12], bl
push esi
setne byte [esp + 0x1c]
mov byte [esp + 0x17], bl
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov ebp, dword [esp + 0x14]
test eax, eax
je 0x404db9
lea eax, [esp + 0xe]
push eax
push ebp
push 1
push 1
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x404db9
push dword [0x460b9c]
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x404db9
lea eax, [esp + 0xf]
push eax
push 1
push 1
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405465
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
push esi
push dword [0x460b98]
mov byte [esp + 0x1c], bl
push 0x441784
mov byte [esp + 0x21], bl
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x404e59
push 0x441790
push dword [0x460b98]
call fcn.0041f660
pop ecx
pop ecx
test eax, eax
je 0x404e59
lea eax, [esp + 0x14]
push eax
push ebp
push 1
push 0
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x404e59
push esi
push dword [0x460b9c]
push str.USERPROFILE
call ebx
test eax, eax
je 0x404e59
push str.AppDataLocalTemp
push dword [0x460b9c]
call fcn.0042017e
pop ecx
pop ecx
test eax, eax
je 0x404e59
lea eax, [esp + 0x15]
push eax
push 1
push 0
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
push esi
push dword [0x460b98]
mov byte [esp + 0x1e], 0
push 0x4417e4
mov byte [esp + 0x23], 0
call edi
test eax, eax
je 0x404f27
push dword [0x460b98]
call fcn.0041f750
pop ecx
mov ecx, esi
sub ecx, eax
push ecx
push dword [0x460b98]
call fcn.0041f750
add eax, dword [0x460b98]
pop ecx
push eax
push 0x4417f0
call edi
test eax, eax
je 0x404f27
lea eax, [esp + 0x16]
push eax
push ebp
push 1
push 0
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x404f27
push esi
push dword [0x460b9c]
push str.HOMEDRIVE
call ebx
test eax, eax
je 0x404f27
push dword [0x460b9c]
call fcn.0041f337
pop ecx
mov ecx, esi
sub ecx, eax
push ecx
push dword [0x460b9c]
call fcn.0041f337
pop ecx
mov ecx, dword [0x460b9c]
lea eax, [ecx + eax*2]
push eax
push str.HOMEPATH
call ebx
test eax, eax
je 0x404f27
lea eax, [esp + 0x17]
push eax
push 1
push 0
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
mov byte [esp + 0x11], 0
call fcn.00405965
mov eax, dword [0x460b90]
test eax, eax
je 0x405032
push dword [0x460b98]
xor ecx, ecx
push ecx
push ecx
push 0x23
push ecx
call eax
test eax, eax
jne 0x405032
push dword [0x460b98]
call fcn.0041f750
pop ecx
test eax, eax
je 0x405032
mov eax, dword [0x460b94]
test eax, eax
je 0x405032
push dword [0x460b9c]
xor ecx, ecx
push ecx
push ecx
push 0x23
push ecx
call eax
test eax, eax
jne 0x405032
push dword [0x460b9c]
call fcn.0041f337
pop ecx
test eax, eax
je 0x405032
push 0x441824
push dword [0x460b98]
call fcn.0041f660
push dword [0x460b98]
call fcn.00420704
push 0x441830
push dword [0x460b98]
call fcn.0041f660
push 0x441838
push dword [0x460b9c]
call fcn.0042017e
push dword [0x460b9c]
call fcn.00420255
push 0x441850
push dword [0x460b9c]
call fcn.0042017e
lea eax, [esp + 0x39]
push eax
push ebp
push 1
push 1
push dword [0x460b98]
call fcn.0040555f
add esp, 0x3c
test al, al
je 0x405032
lea eax, [esp + 0x11]
push eax
push 1
push 1
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
mov edi, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push esi
push dword [0x460b98]
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x4050bf
push 0x441830
push dword [0x460b98]
call fcn.0041f660
pop ecx
pop ecx
test eax, eax
je 0x4050bf
lea eax, [esp + 0x11]
push eax
xor eax, eax
push eax
push eax
push eax
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x4050bf
push esi
push dword [0x460b9c]
call ebx
test eax, eax
je 0x4050bf
push 0x441850
push dword [0x460b9c]
call fcn.0042017e
pop ecx
pop ecx
test eax, eax
je 0x4050bf
lea eax, [esp + 0x11]
push eax
push 0
push 0
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
push 0x44185c
push dword [0x460b98]
call fcn.0041f650
pop ecx
pop ecx
test eax, eax
je 0x405126
lea eax, [esp + 0x11]
push eax
xor eax, eax
push eax
push eax
push eax
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x405126
push str.c:_temp
push dword [0x460b9c]
call fcn.0041f1f3
pop ecx
pop ecx
test eax, eax
je 0x405126
lea eax, [esp + 0x11]
push eax
push 0
push 0
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
push 0x441874
push dword [0x460b98]
call fcn.0041f650
pop ecx
pop ecx
test eax, eax
je 0x40518d
lea eax, [esp + 0x11]
push eax
xor eax, eax
push eax
push eax
push eax
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x40518d
push str.c:_tmp
push dword [0x460b9c]
call fcn.0041f1f3
pop ecx
pop ecx
test eax, eax
je 0x40518d
lea eax, [esp + 0x11]
push eax
push 0
push 0
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
push esi
push dword [0x460b98]
call edi
test eax, eax
je 0x4051e4
lea eax, [esp + 0x11]
push eax
xor eax, eax
push eax
push eax
push eax
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x4051e4
push esi
push dword [0x460b9c]
call ebx
xor ebx, ebx
test eax, eax
je 0x4051e6
lea eax, [esp + 0x11]
push eax
push ebx
push ebx
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
jmp 0x4051e6
xor ebx, ebx
push 0x441874
push dword [0x460b98]
call fcn.0041f650
pop ecx
pop ecx
test eax, eax
je 0x40524b
lea eax, [esp + 0x11]
push eax
push ebx
push ebx
push 1
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x40524b
push str.c:_tmp
push dword [0x460b9c]
call fcn.0041f1f3
pop ecx
pop ecx
test eax, eax
je 0x40524b
lea eax, [esp + 0x11]
push eax
push ebx
push 1
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
cmp byte [esp + 0x12], 0
mov byte [0x45dcaa], 1
jne 0x4052bb
cmp byte [esp + 0x13], 0
jne 0x4052bb
push dword [0x460b98]
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x4052bb
lea eax, [esp + 0x11]
push eax
push ebp
push ebx
push 1
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x4052bb
push dword [0x460b9c]
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x4052bb
lea eax, [esp + 0x11]
push eax
push ebx
push 1
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
cmp byte [esp + 0x14], 0
jne 0x405360
cmp byte [esp + 0x15], 0
jne 0x405360
push esi
push dword [0x460b98]
push 0x441784
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x405360
push 0x441790
push dword [0x460b98]
call fcn.0041f660
pop ecx
pop ecx
test eax, eax
je 0x405360
lea eax, [esp + 0x11]
push eax
push ebp
push ebx
push ebx
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x405360
push esi
push dword [0x460b9c]
push str.USERPROFILE
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x405360
push str.AppDataLocalTemp
push dword [0x460b9c]
call fcn.0042017e
pop ecx
pop ecx
test eax, eax
je 0x405360
lea eax, [esp + 0x11]
push eax
push ebx
push ebx
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
cmp byte [esp + 0x16], 0
jne 0x405440
cmp byte [esp + 0x17], 0
jne 0x405440
push esi
push dword [0x460b98]
push 0x4417e4
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x405440
push dword [0x460b98]
call fcn.0041f750
pop ecx
mov ecx, esi
sub ecx, eax
push ecx
push dword [0x460b98]
call fcn.0041f750
add eax, dword [0x460b98]
pop ecx
push eax
push 0x4417f0
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x405440
lea eax, [esp + 0x11]
push eax
push ebp
push ebx
push ebx
push dword [0x460b98]
call fcn.0040555f
add esp, 0x14
test al, al
je 0x405440
push esi
push dword [0x460b9c]
push str.HOMEDRIVE
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x405440
push dword [0x460b9c]
call fcn.0041f337
pop ecx
sub esi, eax
push esi
push dword [0x460b9c]
call fcn.0041f337
pop ecx
mov ecx, dword [0x460b9c]
lea eax, [ecx + eax*2]
push eax
push str.HOMEPATH
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x405440
lea eax, [esp + 0x11]
push eax
push ebx
push ebx
push dword [0x460b9c]
call fcn.00405666
add esp, 0x10
test al, al
jne 0x405464
push dword [0x460b98]
call fcn.00413d73
push dword [0x460b9c]
mov dword [0x460b98], ebx
call fcn.00413d73
pop ecx
pop ecx
mov dword [0x460b9c], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret