Function at 0x413894
Capabilities:
Get common file path

Disassembly:
mov eax, 0x42dd0a
call fcn.0042c5b0
sub esp, 0x20
push ebx
push esi
push edi
push 0xc8b1ffff
xor ebx, ebx
xor esi, esi
call dword [sym.imp.USER32.dll_IsMenu]
dec word [0x437bf4]
push 0xa7d3ffff
push 0xfd55ffff
mov dword [0x437c14], eax
call fcn.004100bc
pop ecx
mov byte [0x437bea], al
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edi, eax
cmp edi, ebx
je 0x413a17
xor eax, eax
cmp word [0x437bfe], bx
setne al
add word [0x437bf6], ax
lea eax, [edi + 1]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov esi, eax
movsx eax, word [0x437c02]
movsx ecx, byte [0x437be8]
push esi
or eax, ecx
push edi
push 0x36
mov dword [0x437c08], eax
call fcn.0041448a
pop ecx
call eax
cmp dword [0x437c20], ebx
jne 0x41393b
cmp dword [0x437c0c], ebx
jne 0x41393b
xor eax, eax
jmp 0x41393e
push 1
pop eax
add byte [0x437be9], al
push 1
movsx eax, byte [0x437bf1]
pop edi
push 0xf473ffff
push eax
mov word [0x437bf6], di
call fcn.0040ffe3
pop ecx
mov byte [0x437bf1], al
mov al, byte [ebp + 0xf]
pop ecx
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_]
mov al, byte [0x437bef]
push esi
add byte [0x437be8], al
mov dword [ebp - 4], ebx
mov byte [0x437be9], 0xfe
call fcn.0042c504
pop ecx
push 0xb58dffff
call dword [sym.imp.USER32.dll_IsWindow]
add word [0x437bf4], ax
push dword [ebp + 0xc]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00413dd8
add esp, 0xc
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 edi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], bl
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 dword [0x437c28]
push dword [0x437c18]
call fcn.0040ff4b
add dword [0x437c18], eax
or dword [ebp - 4], 0xffffffff
pop ecx
mov esi, edi
pop ecx
push edi
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_]
movsx eax, word [0x437c02]
push eax
push 0xb6d3ffff
call fcn.0040ff78
pop ecx
mov byte [0x437bf1], al
pop ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
add dword [0x437c08], eax
mov ecx, dword [ebp - 0xc]
xor eax, eax
cmp byte [0x437bef], bl
pop edi
mov dword fs:[0], ecx
setne al
mov dword [0x437c2c], eax
mov eax, esi
pop esi
pop ebx
leave
ret