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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45236b
mov eax, dword fs:[0]
push eax
sub esp, 0x620
mov eax, dword [0x46759c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x5bc], 0
lea eax, [ebp - 0x28c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [ebp - 0x28c]
push ecx
lea edx, [ebp - 0x80]
push edx
call fcn.0042a140
add esp, 8
mov dword [ebp - 4], 1
mov byte [ebp - 0x28d], 0
lea ecx, [ebp - 0x80]
call fcn.00408820
test eax, eax
je 0x42af62
push 0
push 0x455a30
lea ecx, [ebp - 0x80]
call fcn.00413410
cmp eax, dword [0x454784]
je 0x42af62
mov byte [ebp - 0x28d], 1
movzx eax, byte [ebp - 0x28d]
test eax, eax
jne 0x42afab
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x4f4], esp
lea edx, [ebp - 0x28c]
push edx
push ecx
call fcn.0042a140
add esp, 8
mov dword [ebp - 0x5c0], eax
call fcn.00413070
add esp, 0x1c
mov byte [ebp - 0x5c1], al
movzx eax, byte [ebp - 0x5c1]
test eax, eax
jne 0x42b557
xor ecx, ecx
je 0x42afb4
jmp 0x42b062
call fcn.0040bd10
cmp dword [eax], 3
jl 0x42afc8
call fcn.00406400
cmp dword [eax], 0
jne 0x42afcd
jmp 0x42b062
lea edx, [ebp - 0x28c]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.0042a140
add esp, 8
mov dword [ebp - 0x5c8], eax
mov ecx, dword [ebp - 0x5c8]
mov dword [ebp - 0x5cc], ecx
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x5cc]
call fcn.0040a3b0
push eax
push str.The_temp_directory_returned_by_OS_contains_unicode_characters:
push 3
lea ecx, [ebp - 0x594]
call fcn.00406430
mov dword [ebp - 0x5d0], eax
mov edx, dword [ebp - 0x5d0]
mov dword [ebp - 0x5d4], edx
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x5d4]
call fcn.0040bab0
push eax
call fcn.0040bd20
add esp, 8
push eax
call fcn.0040bd20
add esp, 8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x594]
call fcn.00406450
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00407160
lea ecx, [ebp - 0x2c8]
call fcn.00407040
mov byte [ebp - 4], 4
push 0x104
lea eax, [ebp - 0x4d4]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x42b099
push str.C:WindowsTemp
lea ecx, [ebp - 0x2c8]
call fcn.004071c0
jmp 0x42b0ea
push str.Temp
lea ecx, [ebp - 0x4d4]
push ecx
lea edx, [ebp - 0x48]
push edx
call fcn.0042a140
add esp, 8
mov dword [ebp - 0x5d8], eax
mov eax, dword [ebp - 0x5d8]
mov dword [ebp - 0x5dc], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x5dc]
call fcn.0040cc40
push eax
lea ecx, [ebp - 0x2c8]
call fcn.004095a0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x48]
call fcn.00407160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x598], esp
lea edx, [ebp - 0x2c8]
push edx
call fcn.00406fb0
mov dword [ebp - 0x5e0], eax
call fcn.00413220
add esp, 0x1c
mov byte [ebp - 0x5e1], al
movzx eax, byte [ebp - 0x5e1]
test eax, eax
je 0x42b161
lea ecx, [ebp - 0x2c8]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040c290
mov edx, dword [ebp - 0x5bc]
or edx, 1
mov dword [ebp - 0x5bc], edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c8]
call fcn.00407160
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00407160
mov eax, dword [ebp + 8]
jmp 0x42b588
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x59c], esp
push 0x455a90
call fcn.004070b0
mov dword [ebp - 0x5e8], eax
call fcn.00413220
add esp, 0x1c
mov byte [ebp - 0x5e9], al
movzx eax, byte [ebp - 0x5e9]
test eax, eax
je 0x42b1d4
push str.C:Temp
mov ecx, dword [ebp + 8]
call fcn.004070b0
mov ecx, dword [ebp - 0x5bc]
or ecx, 1
mov dword [ebp - 0x5bc], ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c8]
call fcn.00407160
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00407160
mov eax, dword [ebp + 8]
jmp 0x42b588
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x5a0], esp
push edx
call fcn.004121d0
add esp, 4
mov dword [ebp - 0x5f0], eax
call fcn.00413070
add esp, 0x1c
mov byte [ebp - 0x5f1], al
movzx eax, byte [ebp - 0x5f1]
test eax, eax
je 0x42b3c6
push str._temp
lea ecx, [ebp - 0x64]
push ecx
call fcn.004121d0
add esp, 4
mov dword [ebp - 0x5f8], eax
mov edx, dword [ebp - 0x5f8]
mov dword [ebp - 0x5fc], edx
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x5fc]
call fcn.0040cc40
push eax
lea ecx, [ebp - 0x4f0]
call fcn.00406fb0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x64]
call fcn.00407160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5a4], esp
lea eax, [ebp - 0x4f0]
push eax
call fcn.00406fb0
mov dword [ebp - 0x600], eax
call fcn.00412fb0
add esp, 0x1c
mov byte [ebp - 0x601], al
movzx ecx, byte [ebp - 0x601]
test ecx, ecx
je 0x42b315
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5a8], esp
lea edx, [ebp - 0x4f0]
push edx
call fcn.00406fb0
mov dword [ebp - 0x608], eax
call fcn.00413220
add esp, 0x1c
mov byte [ebp - 0x609], al
movzx eax, byte [ebp - 0x609]
test eax, eax
je 0x42b315
lea ecx, [ebp - 0x4f0]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040c290
mov edx, dword [ebp - 0x5bc]
or edx, 1
mov dword [ebp - 0x5bc], edx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4f0]
call fcn.00407160
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c8]
call fcn.00407160
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00407160
mov eax, dword [ebp + 8]
jmp 0x42b588
push 0
lea ecx, [ebp - 0x4f0]
call fcn.0040a3b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x42b3b7
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5ac], esp
lea eax, [ebp - 0x4f0]
push eax
call fcn.00406fb0
mov dword [ebp - 0x610], eax
call fcn.00413220
add esp, 0x1c
mov byte [ebp - 0x611], al
movzx ecx, byte [ebp - 0x611]
test ecx, ecx
je 0x42b3b7
lea edx, [ebp - 0x4f0]
push edx
mov ecx, dword [ebp + 8]
call fcn.0040c290
mov eax, dword [ebp - 0x5bc]
or eax, 1
mov dword [ebp - 0x5bc], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4f0]
call fcn.00407160
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c8]
call fcn.00407160
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00407160
mov eax, dword [ebp + 8]
jmp 0x42b588
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4f0]
call fcn.00407160
push str.C:UsersPublicTemp
lea ecx, [ebp - 0x2ac]
call fcn.004070b0
mov byte [ebp - 4], 9
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5b0], esp
lea edx, [ebp - 0x2ac]
push edx
call fcn.00406fb0
mov dword [ebp - 0x618], eax
call fcn.00412fb0
add esp, 0x1c
mov byte [ebp - 0x619], al
movzx eax, byte [ebp - 0x619]
test eax, eax
je 0x42b49a
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5b4], esp
lea edx, [ebp - 0x2ac]
push edx
call fcn.00406fb0
mov dword [ebp - 0x620], eax
call fcn.00413220
add esp, 0x1c
mov byte [ebp - 0x621], al
movzx eax, byte [ebp - 0x621]
test eax, eax
je 0x42b49a
lea ecx, [ebp - 0x2ac]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040c290
mov edx, dword [ebp - 0x5bc]
or edx, 1
mov dword [ebp - 0x5bc], edx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2ac]
call fcn.00407160
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c8]
call fcn.00407160
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00407160
mov eax, dword [ebp + 8]
jmp 0x42b588
push 0
lea ecx, [ebp - 0x2ac]
call fcn.0040a3b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x42b539
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x5b8], esp
lea eax, [ebp - 0x2ac]
push eax
call fcn.00406fb0
mov dword [ebp - 0x628], eax
call fcn.00413220
add esp, 0x1c
mov byte [ebp - 0x629], al
movzx ecx, byte [ebp - 0x629]
test ecx, ecx
je 0x42b539
lea edx, [ebp - 0x2ac]
push edx
mov ecx, dword [ebp + 8]
call fcn.0040c290
mov eax, dword [ebp - 0x5bc]
or eax, 1
mov dword [ebp - 0x5bc], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2ac]
call fcn.00407160
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c8]
call fcn.00407160
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00407160
mov eax, dword [ebp + 8]
jmp 0x42b588
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2ac]
call fcn.00407160
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c8]
call fcn.00407160
lea ecx, [ebp - 0x28c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0042a140
add esp, 8
mov eax, dword [ebp - 0x5bc]
or eax, 1
mov dword [ebp - 0x5bc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00407160
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004320d5
mov esp, ebp
pop ebp
ret