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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42d7ff
mov eax, dword fs:[0]
push eax
sub esp, 0x330
mov eax, dword [0x43d2ac]
xor eax, esp
mov dword [esp + 0x328], eax
push ebx
push esi
push edi
mov eax, dword [0x43d2ac]
xor eax, esp
push eax
lea eax, [esp + 0x340]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 5
pop edi
lea ecx, [esp + 0x108]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea eax, [esp + 0x108]
xor esi, esi
push eax
mov dword [esp + 0x34c], esi
call fcn.0040c122
neg eax
sbb al, al
pop ecx
inc al
mov byte [esp + 0x17], al
lea eax, [esp + 0x124]
push eax
push esi
push esi
push 0x801a
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x40c919
or dword [esp + 0x348], 0xffffffff
lea ecx, [esp + 0x108]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, edi
mov ecx, dword [esp + 0x340]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x328]
xor ecx, esp
call fcn.00418c9a
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.AdobeLogTransport2
lea eax, [esp + 0x128]
push eax
call edi
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0xd4]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea edx, [esp + 0xd0]
lea ecx, [esp + 0x24]
mov byte [esp + 0x348], 1
call fcn.0040ed47
mov esi, 0x412720
push esi
push eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x350], 2
call fcn.004136f0
push eax
mov byte [esp + 0x34c], 3
call fcn.00413950
mov bl, al
neg bl
pop ecx
sbb bl, bl
lea ecx, [esp + 0x48]
inc bl
mov byte [esp + 0x348], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x24]
mov byte [esp + 0x348], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xd0]
mov byte [esp + 0x348], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
test bl, bl
je 0x40c9fc
push 0
lea eax, [esp + 0x128]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x40c9fc
push 5
pop esi
or dword [esp + 0x348], 0xffffffff
lea ecx, [esp + 0x108]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, esi
jmp 0x40c8f5
push str.LogTransport.cfg
lea eax, [esp + 0x128]
push eax
call edi
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x4c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea edx, [esp + 0x48]
lea ecx, [esp + 0xec]
mov byte [esp + 0x348], 4
call fcn.0040ed47
lea ecx, [esp + 0x48]
mov byte [esp + 0x348], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push esi
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x2c]
call fcn.004136f0
push eax
mov byte [esp + 0x34c], 7
call fcn.00413950
pop ecx
lea ecx, [esp + 0x24]
mov bl, al
mov byte [esp + 0x348], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp byte [esp + 0x17], 0
je 0x40cd4a
test bl, bl
je 0x40cca6
cmp dword [esp + 0x120], 0x10
mov eax, dword [esp + 0x10c]
jae 0x40caa7
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0xd4]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0x348], 8
mov eax, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [eax]
lea ecx, [esp + 0xd4]
push 0x433050
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_last_of_char_const___unsigned_int_const]
push eax
xor ebx, ebx
push ebx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0xdc]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [esp + 0xd4]
mov byte [esp + 0x34c], 9
call dword [0x42e180]
lea ecx, [esp + 0x24]
mov byte [esp + 0x348], 8
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xd4]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::end_void_]
mov esi, eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xd4]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
push dword [esi + 4]
push dword [esi]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x34]
push eax
call fcn.0040cd91
cmp dword [eax + 0x18], 8
jb 0x40cb59
mov eax, dword [eax + 4]
jmp 0x40cb5c
add eax, 4
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
lea ecx, [esp + 0xac]
push ecx
push ebx
push eax
call esi
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xf0]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::end_void_]
mov edi, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xf0]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x34]
push eax
call fcn.0040cd91
cmp dword [eax + 0x18], 8
jb 0x40cbbd
mov eax, dword [eax + 4]
jmp 0x40cbc0
add eax, 4
lea ecx, [esp + 0x64]
push ecx
push ebx
push eax
call esi
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x10c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::end_void_]
mov edi, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x10c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x34]
push eax
call fcn.0040cd91
cmp dword [eax + 0x18], 8
jb 0x40cc18
mov eax, dword [eax + 4]
jmp 0x40cc1b
add eax, 4
lea ecx, [esp + 0x88]
push ecx
push ebx
push eax
call esi
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov esi, dword [sym.imp.KERNEL32.dll_CompareFileTime]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0xb4]
push eax
call esi
cmp eax, 1
je 0x40cc5f
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0xa0]
push eax
call esi
cmp eax, 1
jne 0x40cc76
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x10c]
push eax
call fcn.0040c72a
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xec]
push eax
call dword [0x42e180]
lea ecx, [esp + 0xd0]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x348], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x40cd73
push esi
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0xd8]
call fcn.004136f0
mov edi, eax
push esi
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x350], 0xa
call fcn.004136f0
push edi
push eax
mov byte [esp + 0x350], 0xb
call fcn.00413d10
pop ecx
pop ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x348], 0xa
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xd0]
mov byte [esp + 0x348], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push esi
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x2c]
call fcn.004136f0
push eax
mov byte [esp + 0x34c], 0xc
call fcn.00413950
pop ecx
lea ecx, [esp + 0x24]
mov bl, al
mov byte [esp + 0x348], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
test bl, bl
je 0x40cd73
jmp 0x40cd5c
test bl, bl
jne 0x40cd5c
lea eax, [esp + 0xec]
push eax
call fcn.0040c3ef
pop ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xec]
push eax
call dword [0x42e180]
and dword [esp + 0x1c], 0
lea ecx, [esp + 0xec]
mov byte [esp + 0x348], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov esi, dword [esp + 0x1c]
jmp 0x40c9e0