Function at 0x57d440
Capabilities:
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x813e9e
push eax
mov dword fs:[0], esp
sub esp, 0x2ec
lea eax, [esp + 0xe0]
push esi
push 0x105
push eax
call fcn.006d4410
test eax, eax
je 0x57d539
lea ecx, [esp + 6]
push ecx
lea ecx, [esp + 0x10]
call fcn.00478ac0
lea edx, [esp + 0xe4]
mov dword [esp + 0x2f8], 0
push edx
mov dword [esp + 0xc], vtable.ucs2string.0
call fcn.007ac4d2
add esp, 4
lea ecx, [esp + 0xc]
push eax
lea eax, [esp + 0xe8]
push eax
call fcn.00403980
mov ecx, dword [esp + 0x300]
push 0x5c
lea edx, [esp + 0xc]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
mov dword [esp + 0x308], 1
call fcn.00585c30
mov ecx, dword [esp + 0x314]
mov byte [esp + 0x308], 2
push ecx
push eax
call fcn.0057d170
add esp, 0x18
lea ecx, [esp + 0x34]
mov esi, eax
mov byte [esp + 0x2f8], 1
push 1
call fcn.00404f20
push 1
lea ecx, [esp + 0x10]
mov dword [esp + 0x2fc], 0xffffffff
call fcn.00404f20
mov eax, esi
pop esi
mov ecx, dword [esp + 0x2ec]
mov dword fs:[0], ecx
add esp, 0x2f8
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0x78
je 0x57d5b7
mov eax, dword [esp + 0x304]
test eax, eax
jne 0x57d730
lea edx, [esp + 6]
lea ecx, [esp + 0xc]
push edx
call fcn.00478ac0
push str.GetSystemWow64Directory__
mov dword [esp + 0x2fc], 3
mov dword [esp + 0xc], vtable.ucs2string.0
call fcn.007ac4d2
add esp, 4
lea ecx, [esp + 0xc]
push eax
push str.GetSystemWow64Directory__
call fcn.00403980
mov dword [esp + 0x2f8], 4
call esi
push eax
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x4c]
call fcn.005844f0
lea ecx, [esp + 0x44]
jmp 0x57d725
lea edx, [esp + 0xe4]
push 0x105
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x57d6b7
lea eax, [esp + 6]
lea ecx, [esp + 0xc]
push eax
call fcn.00478ac0
lea ecx, [esp + 0xe4]
mov dword [esp + 0x2f8], 5
push ecx
mov dword [esp + 0xc], vtable.ucs2string.0
call fcn.007ac4d2
add esp, 4
lea edx, [esp + 0xe4]
lea ecx, [esp + 0xc]
push eax
push edx
call fcn.00403980
mov eax, dword [esp + 0x300]
push 0x5c
lea ecx, [esp + 0xc]
push eax
lea edx, [esp + 0x38]
push ecx
push edx
mov dword [esp + 0x308], 6
call fcn.00585c30
mov ecx, dword [esp + 0x314]
mov byte [esp + 0x308], 7
push ecx
push eax
call fcn.0057d170
add esp, 0x18
lea ecx, [esp + 0x34]
mov esi, eax
mov byte [esp + 0x2f8], 6
push 1
call fcn.00404f20
mov eax, dword [esp + 0x10]
test eax, eax
je 0x57d69f
mov cl, byte [eax - 1]
test cl, cl
je 0x57d693
dec cl
mov byte [eax - 1], cl
mov eax, esi
pop esi
mov ecx, dword [esp + 0x2ec]
mov dword fs:[0], ecx
add esp, 0x2f8
ret
add eax, 0xfffffffe
push eax
call fcn.007d7349
add esp, 4
mov eax, esi
pop esi
mov ecx, dword [esp + 0x2ec]
mov dword fs:[0], ecx
add esp, 0x2f8
ret
mov eax, dword [esp + 0x304]
test eax, eax
jne 0x57d730
lea edx, [esp + 7]
lea ecx, [esp + 0x20]
push edx
call fcn.00478ac0
push str.GetSystemDirectory__
mov dword [esp + 0x2fc], 8
mov dword [esp + 0x20], vtable.ucs2string.0
call fcn.007ac4d2
add esp, 4
lea ecx, [esp + 0x20]
push eax
push str.GetSystemDirectory__
call fcn.00403980
mov dword [esp + 0x2f8], 9
call esi
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x9c]
call fcn.005844f0
lea ecx, [esp + 0x94]
push 0x89b94c
push ecx
call fcn.007ac5c6
mov ecx, dword [esp + 0x2f0]
xor eax, eax
pop esi
mov dword fs:[0], ecx
add esp, 0x2f8
ret