Function at 0x44b670
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x290
mov eax, dword [0x538010]
xor eax, ebp
mov dword [esp + 0x288], eax
lea edi, [esp + 0x80]
push 0x208
push 0xff
push edi
call fcn.004d4450
add esp, 0xc
mov eax, dword [0x53d98c]
mov ecx, dword [0x53ca88]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x44b91f
movzx ecx, byte [0x53d98b]
mov eax, ecx
test cl, cl
jns 0x44b6da
mov eax, dword [0x53d984]
test eax, eax
js 0x44b8f0
je 0x44b6f5
test cl, cl
jns 0x44b6f5
cmp dword [0x53d980], 0
je 0x44b901
mov cl, byte [ebp + 0xc]
test eax, eax
je 0x44b743
mov ebx, ecx
mov eax, dword [0x53d98c]
mov ecx, dword [0x53ca88]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x44b95a
mov eax, 0x53d980
cmp byte [0x53d98b], 0
jns 0x44b732
mov eax, dword [0x53d980]
push 0x104
push eax
push edi
call fcn.004ecc32
add esp, 0xc
jmp 0x44b75c
mov ebx, ecx
movzx eax, cl
push eax
push 0x1a
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x44b88f
xor eax, eax
dec eax
lea esi, [esp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
push edi
call fcn.004ec838
add esp, 4
mov edx, edi
lea edi, [esp + 0x18]
mov ecx, edi
push eax
push edx
call fcn.00489c30
mov ecx, edi
push 6
push 0x5208b0
push esi
call fcn.0048ab30
mov ecx, edi
call fcn.00489d00
test bl, bl
je 0x44b7aa
push esi
call fcn.0047c5e0
add esp, 4
test al, al
je 0x44b7c3
lea ecx, [esp + 0xc]
push 2
push 0x5208d8
mov esi, dword [ebp + 8]
push esi
call fcn.0048ab30
jmp 0x44b86e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, esp
push eax
push edi
call fcn.00500050
add esp, 8
lea ecx, [esp + 0x18]
push edi
push 0x4b
push str.GetUserIdFilePath
push 1
call fcn.0044cb80
lea edi, [esp + 0x54]
mov ecx, edi
push 0x5208d6
push str.Cant_create_directory:
call fcn.00415500
movzx eax, byte [esp + 0x17]
test al, al
jns 0x44b80e
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
lea ebx, [esp + 0x74]
push eax
push esi
push ebx
call fcn.004ca870
add esp, 0xc
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x44b82d
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov ecx, edi
push eax
push ebx
call fcn.0046ea90
cmp byte [esp + 0x7f], 0
mov esi, dword [ebp + 8]
jns 0x44b84c
push dword [esp + 0x74]
call fcn.004d05a5
add esp, 4
lea ecx, [esp + 0x18]
call fcn.0044cbc0
cmp byte [esp + 0xb], 0
jns 0x44b867
push dword [esp]
call fcn.004d05a5
add esp, 4
mov ecx, esi
call fcn.00489be0
lea ecx, [esp + 0xc]
call fcn.00489d00
mov ecx, dword [esp + 0x288]
xor ecx, ebp
call fcn.004d1573
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [esp + 0x74]
push eax
push esi
call fcn.00500050
add esp, 8
lea edi, [esp + 0x18]
mov ecx, edi
push esi
push 0x44
push str.GetUserIdFilePath
push 1
call fcn.0044cb80
lea ecx, [esp + 0x54]
push 0x5208af
push str.Cant_get_path_to_AppData_folder
call fcn.00415500
mov ecx, edi
call fcn.0044cbc0
cmp byte [esi + 0xb], 0
jns 0x44b8e4
push dword [esp + 0x74]
call fcn.004d05a5
add esp, 4
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.00489be0
jmp 0x44b877
push str.string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type
push str.__len___static_cast_size_type__numeric_limits_difference_type_::max___
push 0x135
jmp 0x44b910
push str.string_view::string_view__CharT___size_t_:_received_nullptr
push str.__len__0____s___nullptr
push 0x136
push str....._buildtools_third_partylibc_trunkinclude_string_view
push str._s:_d:_assertion__s_failed:__s
call fcn.00448430
push 0x53d98c
call fcn.004d0617
add esp, 4
cmp dword [0x53d98c], 0xffffffff
jne 0x44b6c8
mov ecx, 0x53d980
push 0x51e1bc
call fcn.0041f000
push 0x53d98c
call fcn.004d068d
add esp, 4
jmp 0x44b6c8
push 0x53d98c
call fcn.004d0617
add esp, 4
cmp dword [0x53d98c], 0xffffffff
jne 0x44b71f
mov ecx, 0x53d980
push 0x51e1bc
call fcn.0041f000
push 0x53d98c
call fcn.004d068d
add esp, 4
jmp 0x44b71f