Function at 0x41a030
Capabilities:
Create directory
Set current directory

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x431cce
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
push esi
mov esi, dword [esp + 0xb8]
xor ebx, ebx
cmp esi, ebx
push edi
je 0x41a2ec
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41a2ec
push 0x5c
push esi
call fcn.00427be0
add esp, 8
test eax, eax
jne 0x41a2ec
push 0x3a
push esi
call fcn.00427be0
add esp, 8
test eax, eax
jne 0x41a2ec
push esi
lea ecx, [esp + 0x24]
call fcn.0040f610
lea ecx, [esp + 0xc]
mov dword [esp + 0xb4], ebx
call fcn.00410430
lea ecx, [esp + 0x68]
mov byte [esp + 0xb4], 1
call fcn.00411d20
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 2
call fcn.0040f6e0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x38]
mov byte [esp + 0xb4], 3
push eax
push ecx
push edx
call fcn.0041ab80
mov eax, dword [esp + 0x4c]
add esp, 0xc
lea ecx, [esp + 0x68]
push ebx
push eax
call fcn.00419c80
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xc]
push ebx
push ecx
push edx
push eax
lea ecx, [esp + 0x78]
call fcn.00419d90
cmp al, bl
jne 0x41a191
mov ecx, dword [esp + 0xc0]
push ecx
push esi
call fcn.00411710
add esp, 8
lea ecx, [esp + 0x38]
mov esi, eax
mov byte [esp + 0xb4], 2
call fcn.0040f750
lea ecx, [esp + 0x68]
mov byte [esp + 0xb4], 1
call fcn.00411de0
lea ecx, [esp + 0xc]
mov byte [esp + 0xb4], bl
call fcn.00410720
lea ecx, [esp + 0x20]
mov dword [esp + 0xb4], 0xffffffff
call fcn.0040f750
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
add esp, 0xac
ret
push ebx
lea ecx, [esp + 0x10]
call fcn.00410860
push ebx
lea ecx, [esp + 0x10]
call fcn.00410860
mov edx, dword [esp + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push edx
call edi
test eax, eax
jne 0x41a289
mov eax, dword [esp + 0x14]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x41a282
mov edi, dword [esp + 0xc0]
cmp edi, ebx
je 0x41a237
lea ecx, [esp + 0x50]
call fcn.0040f6e0
push str.CreateDirectory:
lea ecx, [esp + 0x54]
mov byte [esp + 0xb8], 4
call fcn.0040f430
lea ecx, [esp + 0x50]
call fcn.0040fab0
mov edx, dword [edi]
push str.Failed_to_create_directory
mov ecx, edi
call dword [edx + 0x10]
mov eax, dword [edi]
push esi
push str.path
mov ecx, edi
call dword [eax + 0x2c]
mov eax, dword [esp + 0x58]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x10]
lea ecx, [esp + 0x50]
mov byte [esp + 0xb4], 3
call fcn.0040f750
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 2
call fcn.0040f750
lea ecx, [esp + 0x68]
mov byte [esp + 0xb4], 1
call fcn.00411de0
lea ecx, [esp + 0xc]
mov byte [esp + 0xb4], bl
call fcn.00410720
lea ecx, [esp + 0x20]
mov dword [esp + 0xb4], 0xffffffff
call fcn.0040f750
jmp 0x41a319
mov ecx, dword [esp + 0x14]
push ecx
call edi
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 2
call fcn.0040f750
lea ecx, [esp + 0x68]
mov byte [esp + 0xb4], 1
call fcn.00411de0
lea ecx, [esp + 0xc]
mov byte [esp + 0xb4], bl
call fcn.00410720
lea ecx, [esp + 0x20]
mov dword [esp + 0xb4], 0xffffffff
call fcn.0040f750
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
add esp, 0xac
ret
mov edi, dword [esp + 0xc0]
cmp edi, ebx
je 0x41a319
mov edx, dword [edi]
push str.Cannot_set_directory__bad_path
mov ecx, edi
call dword [edx + 0x14]
cmp esi, ebx
jne 0x41a30c
mov esi, str.null
mov eax, dword [edi]
push esi
push str.path
mov ecx, edi
call dword [eax + 0x2c]
mov ecx, dword [esp + 0xac]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0xac
ret