Function at 0x410900
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x417984
mov eax, dword fs:[0]
push eax
sub esp, 0x154
mov eax, dword [0x4262b8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
call fcn.0040be60
lea ecx, [ebp - 0x12c]
mov dword [edi + 0x10], eax
mov esi, 1
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFilePath::constructor_void_]
lea ecx, [ebp - 0x138]
mov dword [ebp - 4], 0
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 1
call dword [sym.imp.FSUTIL.dll_public:_class_AFilePath____thiscall_AFilePath::GetExecutableDir_void_]
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x12c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFilePath::getFileName_class_AString__const]
push str.Program
lea ecx, [ebp - 0x138]
call dword [sym.imp.FSUTIL.dll_public:_int___thiscall_AString::Find_char_const__const]
test eax, eax
je 0x4109b9
lea eax, [ebp - 0x120]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x12c]
call dword [sym.imp.FSUTIL.dll_public:_class_AFilePath____thiscall_AFilePath::operator_char_const__]
mov ebx, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
nop
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x12c]
call dword [sym.imp.FSUTIL.dll_public:_class_AString___thiscall_AFilePath::GetFullPath_void_]
mov ecx, dword [edi + 0x10]
push eax
add ecx, 8
mov byte [ebp - 4], 2
call dword [sym.imp.FSUTIL.dll_public:_class_AString_const____thiscall_AString::operator_class_AString_const__]
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 1
call ebx
mov ecx, dword [edi + 0x10]
call fcn.0040e2e0
test eax, eax
je 0x410a17
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x4c]
test eax, eax
je 0x410a4b
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x4c]
cmp eax, 0x100000
je 0x410a4b
test esi, esi
je 0x410e81
lea eax, [ebp - 0x120]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x12c]
call dword [sym.imp.FSUTIL.dll_public:_class_AFilePath____thiscall_AFilePath::operator_char_const__]
xor esi, esi
jmp 0x4109c0
mov esi, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_char_const__]
lea ecx, [ebp - 0x128]
push str.CLOUD_SKIP_LICENSE_CHECKING
call esi
mov ecx, dword [edi + 0x10]
mov byte [ebp - 4], 3
test ecx, ecx
jne 0x410a71
mov dword [ebp - 0x130], ecx
jmp 0x410a83
mov eax, dword [ecx]
lea edx, [ebp - 0x128]
push edx
call dword [eax + 0x10]
mov dword [ebp - 0x130], eax
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 1
call ebx
cmp dword [ebp - 0x130], 0
jne 0x410d8e
push dword [ebp + 8]
mov ecx, edi
call fcn.00411190
test eax, eax
jne 0x410ad8
mov eax, dword [0x4273fc]
cmp dword [0x4273f8], eax
je 0x410ac3
or dword [eax - 4], 0x200000
jmp 0x410e9c
mov dword [ebp - 0x124], 0x200000
lea eax, [ebp - 0x124]
jmp 0x410e91
push str.Package_ID
lea ecx, [ebp - 0x130]
call esi
mov ecx, dword [edi + 0x10]
mov byte [ebp - 4], 4
test ecx, ecx
jne 0x410af8
mov dword [ebp - 0x124], ecx
jmp 0x410b11
mov eax, dword [ecx]
lea edx, [ebp - 0x134]
push edx
lea edx, [ebp - 0x130]
push edx
call dword [eax + 0xc]
mov dword [ebp - 0x124], eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 1
call ebx
cmp dword [ebp - 0x124], 0
jne 0x410b3b
mov dword [ebp - 0x124], 4
lea eax, [ebp - 0x124]
jmp 0x410e91
lea ecx, [ebp - 0x128]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
push str.flexi.config_ids
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 5
call esi
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.004101b0
add esp, 8
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x124]
call ebx
lea ecx, [ebp - 0x128]
call dword [sym.imp.FSUTIL.dll_protected:_struct_AStringData____thiscall_AString::GetData_void_const]
cmp dword [eax + 4], 0
jne 0x410bc3
push str.system.config_id_list
lea ecx, [ebp - 0x124]
call esi
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.004101b0
add esp, 8
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x124]
call ebx
lea ecx, [ebp - 0x160]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_ADWordArray::constructor_void_]
lea eax, [ebp - 0x160]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.00412920
mov ecx, dword [ebp - 0x158]
add esp, 8
xor eax, eax
test ecx, ecx
jle 0x410c16
mov edx, dword [ebp - 0x134]
nop dword [eax + eax]
mov ebx, dword [ebp - 0x15c]
cmp dword [ebx + eax*4], edx
mov ebx, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
je 0x410c4e
inc eax
cmp eax, ecx
jl 0x410c00
lea eax, [ebp - 0x124]
mov dword [ebp - 0x124], 0x200000
push eax
mov ecx, 0x4273f8
call fcn.00412af0
mov edi, dword [sym.imp.FSUTIL.dll_public_virtual:_void___thiscall_ADWordArray::destructor_void_]
lea ecx, [ebp - 0x160]
xor esi, esi
call edi
lea ecx, [ebp - 0x128]
call ebx
jmp 0x410e9e
lea ecx, [ebp - 0x14c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_ADWordArray::constructor_void_]
push str.system.option_config_id_list
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 9
call esi
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.004101b0
add esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x124]
mov esi, eax
call ebx
test esi, esi
je 0x410cc5
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.00412920
add esp, 8
cmp dword [ebp - 0x144], 0
jle 0x410cc5
mov ecx, dword [edi + 0x10]
lea eax, [ebp - 0x14c]
push eax
call fcn.0040e800
cmp dword [0x4262a0], 0
mov ecx, edi
je 0x410cda
call fcn.0040c230
jmp 0x410d66
call fcn.0040c310
mov edi, dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov ebx, eax
push 0
mov dword [ebp - 0x124], edx
call edi
push eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
push 0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x41c2c8]
mulsd xmm0, qword [0x41c2d0]
mulsd xmm0, qword [0x41c2e8]
mulsd xmm0, qword [0x41c2d8]
cvttsd2si esi, xmm0
call edi
mov edi, eax
add esp, 0xc
sub edi, ebx
mov ecx, edx
mov eax, esi
sbb ecx, dword [ebp - 0x124]
cdq
cmp ecx, edx
jl 0x410d56
jg 0x410d4a
cmp edi, eax
jb 0x410d56
mov dword [0x42725c], 1
jmp 0x410d60
mov dword [0x42725c], 0
mov ebx, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
mov edi, dword [sym.imp.FSUTIL.dll_public_virtual:_void___thiscall_ADWordArray::destructor_void_]
lea ecx, [ebp - 0x14c]
mov esi, 1
call edi
lea ecx, [ebp - 0x160]
call edi
lea ecx, [ebp - 0x128]
call ebx
jmp 0x410e9e
cmp dword [0x4273f4], 0
jne 0x410e48
mov ecx, edi
call fcn.00410ee0
test eax, eax
jne 0x410e48
xor esi, esi
mov dword [ebp - 0x128], esi
cmp dword [0x4262a0], esi
jne 0x410e9e
mov ecx, edi
call fcn.0040c310
mov edi, dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov ebx, eax
push 0
mov dword [ebp - 0x134], edx
call edi
push eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
push 0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x41c2c8]
mulsd xmm0, qword [0x41c2d0]
mulsd xmm0, qword [0x41c2e8]
mulsd xmm0, qword [0x41c2d8]
cvttsd2si esi, xmm0
call edi
mov edi, eax
add esp, 0xc
sub edi, ebx
mov ecx, edx
mov eax, esi
sbb ecx, dword [ebp - 0x134]
cdq
cmp ecx, edx
jl 0x410e69
jg 0x410e30
cmp edi, eax
jb 0x410e69
mov ebx, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
mov esi, dword [ebp - 0x128]
mov dword [0x42725c], 1
jmp 0x410e9e
cmp dword [0x4262a0], 0
mov esi, 1
mov dword [ebp - 0x128], esi
je 0x410dbe
mov ecx, edi
call fcn.0040c230
jmp 0x410e9e
mov ebx, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
mov esi, dword [ebp - 0x128]
mov dword [0x42725c], 0
jmp 0x410e9e
mov dword [ebp - 0x134], 4
lea eax, [ebp - 0x134]
push eax
mov ecx, 0x4273f8
call fcn.00412af0
xor esi, esi
lea ecx, [ebp - 0x138]
call ebx
lea ecx, [ebp - 0x12c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFilePath::destructor_void_]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00413da6
mov esp, ebp
pop ebp
ret 4