Function at 0x41696c
Capabilities:
Create directory
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x564587
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xaf8
mov dword [ebp - 0xac8], ecx
mov ecx, dword [ebp - 0xac8]
call fcn.00418bb8
mov dword [ebp - 0x10], 1
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0054d095
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx - 8]
mov dword [ebp - 0xa8c], edx
cmp dword [ebp - 0xa8c], 0
je 0x417034
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0xac8]
call fcn.00418d12
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x417032
lea ecx, [ebp - 0x648]
push ecx
lea edx, [ebp - 0x214]
push edx
lea eax, [ebp - 0x848]
push eax
lea ecx, [ebp - 0xa54]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00537d2a
add esp, 0x14
lea eax, [ebp - 0x41c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea ecx, [ebp - 0x448]
call fcn.0054c3ab
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x848]
push ecx
lea ecx, [ebp - 0x434]
call fcn.0054d39c
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x434]
mov eax, dword [edx - 8]
mov dword [ebp - 0xa90], eax
cmp dword [ebp - 0xa90], 2
jle 0x416c79
push 2
lea ecx, [ebp - 0xa64]
push ecx
lea ecx, [ebp - 0x434]
call fcn.0054a76e
mov dword [ebp - 0xa98], eax
push 0x5a9510
mov edx, dword [ebp - 0xa98]
mov eax, dword [edx]
push eax
call fcn.00537cf5
add esp, 8
mov dword [ebp - 0xa94], eax
xor ecx, ecx
cmp dword [ebp - 0xa94], 0
sete cl
mov byte [ebp - 0xa60], cl
lea ecx, [ebp - 0xa64]
call fcn.0054d328
mov edx, dword [ebp - 0xa60]
and edx, 0xff
test edx, edx
je 0x416c79
mov eax, dword [0x5be480]
mov dword [ebp - 0xa5c], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x434]
mov edx, dword [ecx - 8]
mov dword [ebp - 0xa9c], edx
mov eax, dword [ebp - 0xa9c]
sub eax, 2
push eax
lea ecx, [ebp - 0xa68]
push ecx
lea ecx, [ebp - 0x434]
call fcn.0054a6f2
mov dword [ebp - 0xacc], eax
mov edx, dword [ebp - 0xacc]
mov dword [ebp - 0xad0], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0xad0]
push eax
lea ecx, [ebp - 0x434]
call fcn.0054d46f
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa68]
call fcn.0054d328
push 0x5c
lea ecx, [ebp - 0x434]
call fcn.0054d807
mov dword [ebp - 0xa58], eax
cmp dword [ebp - 0xa58], 0xffffffff
je 0x416c54
mov ecx, dword [ebp - 0xa58]
push ecx
lea edx, [ebp - 0xa6c]
push edx
lea ecx, [ebp - 0x434]
call fcn.0054a76e
mov dword [ebp - 0xad4], eax
mov eax, dword [ebp - 0xad4]
mov dword [ebp - 0xad8], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xad8]
push ecx
push 0x5a9518
lea edx, [ebp - 0xa70]
push edx
call fcn.0054d641
mov dword [ebp - 0xadc], eax
mov eax, dword [ebp - 0xadc]
mov dword [ebp - 0xae0], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xae0]
push ecx
lea ecx, [ebp - 0xa5c]
call fcn.0054d46f
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa70]
call fcn.0054d328
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa6c]
call fcn.0054d328
mov edx, dword [ebp - 0x434]
mov eax, dword [edx - 8]
mov dword [ebp - 0xaa0], eax
mov ecx, dword [ebp - 0xa58]
add ecx, 1
mov edx, dword [ebp - 0xaa0]
sub edx, ecx
push edx
lea eax, [ebp - 0xa74]
push eax
lea ecx, [ebp - 0x434]
call fcn.0054a6f2
mov dword [ebp - 0xae4], eax
mov ecx, dword [ebp - 0xae4]
mov dword [ebp - 0xae8], ecx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xae8]
push edx
lea ecx, [ebp - 0x434]
call fcn.0054d46f
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa74]
call fcn.0054d328
mov eax, dword [ebp - 0xa5c]
push eax
lea ecx, [ebp - 0xa54]
push ecx
call fcn.005378e2
add esp, 8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xa5c]
call fcn.0054d328
lea edx, [ebp - 0xa54]
push edx
lea ecx, [ebp - 0x84c]
call fcn.0054d39c
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax - 8]
mov dword [ebp - 0xaa4], ecx
cmp dword [ebp - 0xaa4], 0
je 0x416d38
xor edx, edx
shl edx, 1
mov eax, dword [ebp - 0x434]
mov cx, word [eax + edx]
mov word [ebp - 0xaa8], cx
mov edx, dword [ebp - 0xaa8]
and edx, 0xffff
cmp edx, 0x5c
jne 0x416d38
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax - 8]
mov dword [ebp - 0xaac], ecx
mov edx, dword [ebp - 0xaac]
sub edx, 1
push edx
lea eax, [ebp - 0xa78]
push eax
lea ecx, [ebp - 0x434]
call fcn.0054a6f2
mov dword [ebp - 0xaec], eax
mov ecx, dword [ebp - 0xaec]
mov dword [ebp - 0xaf0], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0xaf0]
push edx
lea ecx, [ebp - 0x434]
call fcn.0054d46f
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xa78]
call fcn.0054d328
jmp 0x416c8f
push 0x5c
lea ecx, [ebp - 0x434]
call fcn.0054d807
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0xffffffff
je 0x416e3d
mov eax, dword [ebp - 0x428]
push eax
lea ecx, [ebp - 0xa7c]
push ecx
lea ecx, [ebp - 0x434]
call fcn.0054a76e
mov dword [ebp - 0xaf4], eax
mov edx, dword [ebp - 0xaf4]
mov dword [ebp - 0xab4], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0xab0], eax
mov ecx, dword [ebp - 0xab4]
push ecx
mov edx, dword [ebp - 0xab0]
push edx
lea ecx, [ebp - 0x448]
call fcn.0054c5b3
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xa7c]
call fcn.0054d328
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax - 8]
mov dword [ebp - 0xab8], ecx
mov edx, dword [ebp - 0x428]
add edx, 1
mov eax, dword [ebp - 0xab8]
sub eax, edx
push eax
lea ecx, [ebp - 0xa80]
push ecx
lea ecx, [ebp - 0x434]
call fcn.0054a6f2
mov dword [ebp - 0xaf8], eax
mov edx, dword [ebp - 0xaf8]
mov dword [ebp - 0xafc], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0xafc]
push eax
lea ecx, [ebp - 0x434]
call fcn.0054d46f
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xa80]
call fcn.0054d328
push 0x5c
lea ecx, [ebp - 0x434]
call fcn.0054d807
mov dword [ebp - 0x428], eax
jmp 0x416d4b
mov ecx, dword [ebp - 0x434]
mov edx, dword [ecx - 8]
mov dword [ebp - 0xabc], edx
cmp dword [ebp - 0xabc], 0
je 0x416e7a
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0xac0], eax
lea ecx, [ebp - 0x434]
push ecx
mov edx, dword [ebp - 0xac0]
push edx
lea ecx, [ebp - 0x448]
call fcn.0054c5b3
lea eax, [ebp - 0x214]
push eax
call fcn.005377e7
add esp, 4
test eax, eax
je 0x416eb2
mov ecx, dword [ebp - 0x440]
mov dword [ebp - 0xac4], ecx
lea edx, [ebp - 0x214]
push edx
mov eax, dword [ebp - 0xac4]
push eax
lea ecx, [ebp - 0x448]
call fcn.0054c587
mov ecx, dword [ebp - 0x440]
mov dword [ebp - 0x424], ecx
lea edx, [ebp - 0x84c]
push edx
lea ecx, [ebp - 0x42c]
call fcn.0054d095
mov byte [ebp - 4], 0xc
mov eax, dword [0x5be480]
mov dword [ebp - 0x430], eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x420], 0
jmp 0x416efe
mov ecx, dword [ebp - 0x420]
add ecx, 1
mov dword [ebp - 0x420], ecx
mov edx, dword [ebp - 0x420]
cmp edx, dword [ebp - 0x424]
jge 0x416fa7
mov eax, dword [ebp - 0x444]
mov ecx, dword [ebp - 0x420]
lea edx, [eax + ecx*4]
push edx
push 0x5c
lea eax, [ebp - 0xa84]
push eax
call fcn.0054a38a
mov dword [ebp - 0xb00], eax
mov ecx, dword [ebp - 0xb00]
mov dword [ebp - 0xb04], ecx
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0xb04]
push edx
lea ecx, [ebp - 0x42c]
call fcn.0054d755
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xa84]
call fcn.0054d328
mov eax, dword [ebp - 0xac8]
cmp dword [eax + 4], 0
je 0x416f86
mov ecx, dword [ebp - 0x42c]
push ecx
mov edx, dword [ebp - 0xac8]
mov ecx, dword [edx + 4]
call fcn.00551562
mov eax, dword [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0
mov ecx, dword [ebp - 0x42c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x416eef
mov edx, dword [ebp - 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x416fd3
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0xac8]
call fcn.00418bd0
jmp 0x416fda
mov dword [ebp - 0x10], 1
lea ecx, [ebp - 0x41c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x430]
call fcn.0054d328
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x42c]
call fcn.0054d328
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x84c]
call fcn.0054d328
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x434]
call fcn.0054d328
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x448]
call fcn.0054c3de
jmp 0x417046
mov ecx, dword [ebp - 0xac8]
call fcn.00418cd8
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xa88], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0054d328
mov eax, dword [ebp - 0xa88]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4