Function at 0x6a0029
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
mov eax, dword [ebp + 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x64], eax
mov eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [ebp - 0xc], eax
xor eax, eax
cmp dword [ebp - 0x5c], 0
setne al
movzx eax, al
test eax, eax
jne 0x6a0095
mov dword [esp], str.src_lib_fs_dir.c
call fcn.006c14d2
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.dirname
mov dword [esp + 8], 0x78fa14
mov dword [esp + 4], 0x4c
mov dword [esp], eax
call fcn.006c1140
call fcn.006c14b8
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
call fcn.006c53c8
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.006a2bc4
call fcn.0069fff4
test al, al
je 0x6a00ea
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x78f949
mov dword [esp + 0xc], str.check_private_dir
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0
mov dword [esp], 7
call fcn.006bf072
mov eax, dword [ebp - 0x4c]
lea edx, [ebp - 0x40]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__stati64]
call eax
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x44]
mov dword [eax], 0
cmp dword [ebp - 0x48], 0
je 0x6a027d
mov eax, dword [sym.imp.msvcrt.dll__errno]
call eax
mov eax, dword [eax]
cmp eax, 2
je 0x6a0187
mov eax, dword [sym.imp.msvcrt.dll__errno]
call eax
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], str.Directory__s_cannot_be_read:__s
mov dword [esp + 0xc], str.check_private_dir
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0
mov dword [esp], 4
call fcn.006bf072
mov eax, 0xffffffff
jmp 0x6a02cc
mov eax, dword [ebp - 0x60]
and eax, 1
test eax, eax
je 0x6a0232
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], str.Creating_directory__s
mov dword [esp + 0xc], str.check_private_dir
mov dword [esp + 4], 1
mov dword [esp + 8], 0
mov dword [esp], 6
call fcn.006bf072
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
call sub.msvcrt.dll__mkdir
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x6a0276
mov eax, dword [sym.imp.msvcrt.dll__errno]
call eax
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], str.Error_creating_directory__s:__s
mov dword [esp + 0xc], str.check_private_dir
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0
mov dword [esp], 4
call fcn.006bf072
mov eax, 0xffffffff
jmp 0x6a02cc
mov eax, dword [ebp - 0x60]
and eax, 2
test eax, eax
jne 0x6a0276
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], str.Directory__s_does_not_exist.
mov dword [esp + 0xc], str.check_private_dir
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0
mov dword [esp], 4
call fcn.006bf072
mov eax, 0xffffffff
jmp 0x6a02cc
mov eax, 0
jmp 0x6a02cc
movzx eax, word [ebp - 0x3a]
movzx eax, ax
and eax, 0x4000
test eax, eax
jne 0x6a02c7
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], str._s_is_not_a_directory
mov dword [esp + 0xc], str.check_private_dir
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0
mov dword [esp], 4
call fcn.006bf072
mov eax, 0xffffffff
jmp 0x6a02cc
mov eax, 0
mov ecx, dword [ebp - 0xc]
xor ecx, dword [sym.imp.libssp_0.dll___stack_chk_guard]
je 0x6a02dc
call sub.libssp_0.dll___stack_chk_fail
leave
ret