Function at 0x415100
Capabilities:
Get common file path

Disassembly:
mov eax, 0x430eba
call fcn.0042f6e0
sub esp, 0x20
mov al, byte [0x43bc0c]
push ebx
push esi
xor ebx, ebx
push edi
xor esi, esi
dec al
push ebx
add byte [0x43bbd0], al
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edi, eax
cmp edi, ebx
je 0x4152a0
push 0xa621ffff
mov word [0x43bbd4], bx
push dword [0x43bbe8]
call fcn.004116de
add word [0x43bbd6], ax
inc word [0x43bbda]
lea eax, [edi + 1]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
movsx eax, byte [0x43bbca]
push eax
push 0x2de1ffff
call fcn.00411856
add esp, 0x14
mov dword [0x43bbfc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0xb5d3ffff
push 0x8177ffff
mov word [0x43bbdc], ax
call fcn.004117aa
pop ecx
mov dword [0x43bc04], eax
pop ecx
push esi
push edi
push 0x36
call fcn.00415e0d
pop ecx
call eax
inc byte [0x43bbd1]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
add word [0x43bbd4], ax
mov al, byte [ebp + 0xf]
or word [0x43bbe0], 0xffff
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.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__::assign_char_const___unsigned_int_]
push 0xffffffffffffffff
mov dword [ebp - 4], ebx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
inc word [0x43bbdc]
mov byte [0x43bbcc], al
movsx eax, word [0x43bbe2]
push eax
push 0xf55ffff
call fcn.00411856
push esi
mov dword [0x43bbfc], eax
call fcn.0042f63c
push 0xde9ffff
push dword [0x43bc0c]
call fcn.004118e8
push dword [ebp + 0xc]
mov dword [0x43bbe8], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041570f
add esp, 0x20
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 1
push dword [ecx]
mov ecx, dword [ebp + 8]
push ebx
push eax
call dword [sym.imp.MSVCP60.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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
mov byte [ebp - 4], bl
pop esi
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 0xba7bffff
push 0x7d07ffff
call fcn.00411762
add byte [0x43bbd0], al
mov eax, dword [0x43bc0c]
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
and eax, 0xfddfffff
add dword [0x43bc08], eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
cmp byte [0x43bbcd], bl
jne 0x4152b0
cmp byte [0x43bbd1], bl
je 0x4152b3
push 1
pop ebx
mov ecx, dword [ebp - 0xc]
add word [0x43bbd8], bx
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret