Function at 0x473040
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x540
mov eax, dword [0x76d150]
test eax, eax
je 0x473830
lea edx, [ebp - 0x219]
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [esp + 4], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x104
mov dword [esp], 0xffffffff
call eax
sub esp, 0x10
mov ebx, eax
mov eax, 0x1459
call fcn.0045b740
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Expected_length_0__got__lu_n
lea ebx, [ebp - 0x525]
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x145a
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.Expected_ERROR_INVALID_HANDLE__got__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 6
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 4], ebx
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x145d
mov eax, dword [esi + 0x34]
mov dword [esp], edi
lea edi, [ebp - 0x421]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Failed_to_get_temp_path__error__lu_n
call fcn.0045bef0
mov dword [esp + 0xc], edi
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x57f27c
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
sub esp, 0x10
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x145f
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.GetTempFileNameA_error__lu_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x31d]
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], 0x104
call dword [sym.imp.kernel32.dll_GetLongPathNameA]
sub esp, 0xc
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1461
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x59bfde
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
lea ebx, [ebp - 0x115]
setne al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 4], 0x57f274
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_strcpy]
lea edx, [ebp - 0x31d]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [sym.imp.msvcrt.dll_strcat]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
call dword [0x76d150]
sub esp, 0x10
mov dword [ebp - 0x52c], eax
call fcn.0057d110
mov edx, dword [ebp - 0x52c]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1466
xor eax, eax
test edx, edx
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_length_0__got__lu_n
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1467
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.Expected_ERROR_INVALID_HANDLE__got__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 6
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x4000000
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
call dword [sym.imp.kernel32.dll_CreateFileA]
sub esp, 0x1c
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x146b
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CreateFileA_error__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp edi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x219]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [ebp - 0x52c], edi
mov dword [esp], edi
call dword [0x76d150]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov esi, dword [sym.imp.msvcrt.dll_strlen]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1476
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], edi
cmp edi, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.Expected_length__u__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x52c]
mov dword [esp], eax
call dword [0x76d150]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x147a
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], edi
cmp edi, eax
mov dword [esp + 8], eax
lea edi, [ebp - 0x218]
sete al
mov dword [esp + 4], str.Expected_length__u__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x219]
mov dword [ebp - 0x219], 0x11111111
lea edx, [ebp - 0x219]
mov dword [ebp - 0x119], 0x11111111
sub eax, edi
add eax, 0x104
and eax, 0xfffffffc
mov ecx, eax
mov dword [ebp - 0x530], eax
mov eax, 0x11111111
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x104
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x52c]
mov dword [esp], edx
call dword [0x76d150]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x147f
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], edi
cmp eax, edi
mov dword [esp + 8], eax
lea edi, [ebp - 0x219]
sete al
mov dword [esp + 4], str.Expected_length__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1480
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_lstrcmpiA]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x218]
movzx eax, al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x59a0b4
call fcn.0045bef0
mov ecx, dword [ebp - 0x530]
mov eax, 0x11111111
mov dword [ebp - 0x219], 0x11111111
mov dword [ebp - 0x119], 0x11111111
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [esp], ebx
lea edi, [ebp - 0x219]
call esi
mov dword [esp + 4], edi
sub eax, 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x52c]
mov dword [esp], edx
call dword [0x76d150]
sub esp, 0x10
mov edi, eax
mov eax, 0x1485
call fcn.0045b740
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], edi
cmp eax, edi
mov dword [esp + 8], eax
lea edi, [ebp - 0x218]
sete al
mov dword [esp + 4], str.Expected_length__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1486
xor eax, eax
mov dword [esp + 4], str.Result_path_was_modified_n
cmp byte [ebp - 0x219], 0x11
sete al
mov dword [esp], eax
call fcn.0045bef0
mov ecx, dword [ebp - 0x530]
mov eax, 0x11111111
mov dword [ebp - 0x219], 0x11111111
mov dword [ebp - 0x119], 0x11111111
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [esp], ebx
lea edi, [ebp - 0x219]
call esi
mov dword [esp + 4], edi
sub eax, 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x52c]
mov dword [esp], edx
call dword [0x76d150]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x148a
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], edi
cmp eax, edi
mov dword [esp + 8], eax
lea edi, [ebp - 0x218]
sete al
mov dword [esp + 4], str.Expected_length__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x148b
xor eax, eax
mov dword [esp + 4], str.Result_path_was_modified_n
cmp byte [ebp - 0x219], 0x11
sete al
mov dword [esp], eax
call fcn.0045bef0
mov ecx, dword [ebp - 0x530]
mov eax, 0x11111111
mov dword [ebp - 0x219], 0x11111111
mov dword [ebp - 0x119], 0x11111111
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [esp], ebx
lea edi, [ebp - 0x219]
call esi
mov dword [esp + 4], edi
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x52c]
mov dword [esp], edx
call dword [0x76d150]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x148f
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], edi
cmp eax, edi
mov dword [esp + 8], eax
lea edi, [ebp - 0x218]
sete al
mov dword [esp + 4], str.Expected_length__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1490
xor eax, eax
mov dword [esp + 4], str.Result_path_was_modified_n
cmp byte [ebp - 0x219], 0x11
sete al
mov dword [esp], eax
call fcn.0045bef0
mov ecx, dword [ebp - 0x530]
mov eax, 0x11111111
mov dword [ebp - 0x219], 0x11111111
mov dword [ebp - 0x119], 0x11111111
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], 0
add eax, 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x219]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x52c]
mov dword [esp], edx
call dword [0x76d150]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1494
mov dword [esp], ebx
call esi
mov dword [esp + 0xc], edi
cmp eax, edi
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.Expected_length__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1495
call fcn.0045b740
mov dword [esp + 4], str.Result_path_was_not_modified_n
xor eax, eax
cmp byte [ebp - 0x219], 0x11
setne al
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1496
mov dword [esp], ebx
call esi
mov dword [esp + 4], str.Expected_nullterminated_string_n
cmp byte [ebp + eax - 0x219], 0
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1497
mov dword [esp], ebx
call esi
mov dword [esp + 4], str.Buffer_overflow_n
cmp byte [ebp + eax - 0x218], 0x11
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov edx, dword [ebp - 0x52c]
mov dword [esp], edx
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x1452
call fcn.0045b740
mov dword [esp], str.GetFinalPathNameByHandleA_is_missing_n
call fcn.0045bec0
jmp 0x473823