Function at 0x405e40
Capabilities:
Create directory
Get common file path

Disassembly:
mov eax, 0x1430
call fcn.0041d9f0
cmp byte [0x45a160], 0
je 0x405e78
mov eax, dword [esp + 0x1434]
mov dword [eax], 0x45a160
mov eax, 0x45a160
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405e68
sub eax, edx
add esp, 0x1430
ret
push ebx
push esi
push edi
lea eax, [esp + 0xc3c]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x400
lea eax, [esp + 0x440]
push eax
lea eax, [esp + 0xc44]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
lea eax, [esp + 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
lea eax, [esp + 0x43c]
lea esi, [edi - 1]
push esi
push eax
push 0x45a160
call fcn.00425843
mov ebx, dword [esp + 0x144c]
add esp, 0xc
mov dword [ebx], 0
cmp byte [0x45a160], 0
je 0x4060e6
cmp byte [esi + 0x45a15f], 0x5c
mov eax, 0x401
push 0x458dd8
cmovne esi, edi
dec esi
push 0x5c
push str._cPYE__s
sub eax, esi
mov byte [esi + 0x45a160], 0
lea ecx, [esi + 0x45a160]
push eax
push ecx
call fcn.00404f40
lea eax, [esp + 0x20]
push eax
push 0x45a160
call fcn.00424e2e
add esp, 0x1c
test eax, eax
je 0x405f49
push 0x45a160
call fcn.0042587a
add esp, 4
test eax, eax
jne 0x4060e6
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [ecx + 0x45a160]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x3b], al
test al, al
jne 0x405f50
mov ecx, 0x45a160
mov esi, 0x458df0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405f70
sub ecx, edx
cmp byte [ecx + 0x45a160], 0x5c
jne 0x405f83
dec ecx
mov al, byte [0x458df0]
test al, al
je 0x405fa3
cmp al, 0x2e
jne 0x405f9e
mov eax, dword [0x458df1]
cmp al, 0x2e
je 0x405fa3
mov esi, 0x458df1
cmp al, 0x5c
jne 0x405fa3
inc esi
mov edx, esi
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x405fa8
sub edx, edi
jne 0x405fbb
mov byte [ecx + 0x45a160], dl
jmp 0x405fe1
mov eax, ecx
mov byte [ecx + 0x45a160], 0x5c
push esi
not eax
add eax, 0x401
push 0x458dc8
push eax
lea eax, [ecx + 0x45a161]
push eax
call fcn.00404f40
add esp, 0x10
lea ecx, [esp + 0x3c]
mov esi, str.INDEX
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405ff0
sub ecx, edx
cmp byte [esp + ecx + 0x3c], 0x5c
jne 0x406001
dec ecx
mov al, byte [str.INDEX]
test al, al
je 0x406021
cmp al, 0x2e
jne 0x40601c
mov eax, dword [0x458e21]
cmp al, 0x2e
je 0x406021
mov esi, 0x458e21
cmp al, 0x5c
jne 0x406021
inc esi
mov edx, esi
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x406026
lea eax, [esp + 0x3c]
lea eax, [eax + ecx]
sub edx, edi
jne 0x40603d
mov byte [eax], 0
jmp 0x40605f
mov byte [eax], 0x5c
mov eax, ecx
not eax
push esi
add eax, 0x400
push 0x458dc8
push eax
lea eax, [esp + 0x49]
add eax, ecx
push eax
call fcn.00404f40
add esp, 0x10
lea eax, [esp + 0xc]
push eax
push 0x45a160
call fcn.00424e2e
add esp, 8
test eax, eax
je 0x4060c5
push 0x45a160
call fcn.0042587a
add esp, 4
test eax, eax
jne 0x4060e6
lea eax, [esp + 0x3c]
push 0x458e28
push eax
call fcn.00423ceb
mov esi, eax
add esp, 8
test esi, esi
je 0x4060c5
push esi
push 0x2d
push 1
push str.C67auYMZ4PMcQuMjSu5SRkvnPDaOlWFTxaU5RCJuio_
call fcn.004245fe
push esi
push 1
push 1
push 0x458e5c
call fcn.004245fe
push esi
call fcn.00423c04
add esp, 0x24
mov eax, 0x45a160
mov dword [ebx], 0x45a160
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4060d3
pop edi
pop esi
sub eax, edx
pop ebx
add esp, 0x1430
ret
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1430
ret