Function at 0x10004580
Capabilities:
Create directory

Disassembly:
mov eax, 0x10019fb8
call fcn.1001566c
sub esp, 0x34
push ebx
push esi
lea eax, [ebp + 0xb]
push edi
push eax
lea ecx, [ebp - 0x20]
push dword [ebp + 8]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
xor edi, edi
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], edi
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::length_void_const]
dec eax
lea ecx, [ebp - 0x20]
push eax
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
push 0x5c
pop ebx
cmp word [eax], bx
je 0x100045cd
push ebx
push 1
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::append_unsigned_int__unsigned_short_int_]
lea eax, [ebp - 0xd]
lea ecx, [ebp - 0x30]
push eax
call fcn.10008544
lea eax, [ebp - 0xe]
lea ecx, [ebp - 0x40]
push eax
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_class_std::allocator_unsigned_short_int__const__]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
xor esi, esi
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::length_void_const]
test eax, eax
jbe 0x10004642
push edi
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
cmp word [eax], bx
je 0x1000461c
push edi
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
mov ax, word [eax]
push eax
jmp 0x10004629
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x30]
push eax
call fcn.1000858e
push ebx
push 1
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::append_unsigned_int__unsigned_short_int_]
lea ecx, [ebp - 0x20]
inc edi
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::length_void_const]
cmp edi, eax
jb 0x100045fd
lea ecx, [ebp - 0x30]
call fcn.10003d16
mov ebx, eax
lea ecx, [ebp - 0x30]
call fcn.10003d1a
cmp ebx, eax
je 0x1000469d
mov ecx, ebx
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
mov edi, eax
test edi, edi
je 0x10004687
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [eax + eax + 2]
mov eax, esi
add eax, 3
and al, 0xfc
call fcn.100156a0
mov eax, esp
push esi
push edi
push eax
call fcn.100084c9
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
setne al
movzx esi, al
add ebx, 0x10
jmp 0x1000464c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
and byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.1000855f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x4c]
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret