Function at 0x4712b0
Capabilities:
Get common file path

Disassembly:
push edi
mov ecx, 0x1d
xor eax, eax
xor edx, edx
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x28c]
push ebx
sub esp, 0x310
mov dword [ebp - 0x2e8], 0
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2e4], 0
mov dword [ebp + eax - 0x2d0], edx
add eax, 4
cmp eax, 0x18
jb 0x4712ec
xor eax, eax
mov ecx, 0xa
lea edi, [ebp - 0x2b8]
rep stosd dword es:[edi], eax
mov eax, dword [0x76d13c]
test eax, eax
je 0x471c90
lea edi, [ebp - 0x114]
mov dword [esp], 0x104
mov dword [esp + 4], edi
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
mov esi, eax
call fcn.0057d110
mov ebx, dword fs:[0x18]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x152d
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x218]
mov dword [esp + 8], eax
mov dword [esp + 4], str.GetTempPathA_failed__got_error__lu._n
call fcn.0045bef0
mov dword [esp + 0xc], esi
mov dword [esp], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x597f3c
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
sub esp, 0x10
mov edi, eax
mov eax, 0x1531
call fcn.0045b740
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.GetTempFileNameA_failed__got_error__lu._n
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.0045bef0
mov dword [esp], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x4000000
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 7
mov dword [esp + 4], 0x80000100
call dword [sym.imp.kernel32.dll_CreateFileA]
sub esp, 0x1c
mov esi, eax
mov dword [ebp - 0x2f8], eax
mov eax, 0x1535
call fcn.0045b740
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.failed_to_open_the_temp_file__error__lu._n
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x2d0]
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp], esi
mov dword [esp + 0xc], 0x18
mov dword [esp + 8], eax
mov dword [esp + 4], 1
call dword [0x76d13c]
sub esp, 0x10
mov esi, eax
mov eax, 0x153a
call fcn.0045b740
mov edx, dword [ebx + 0x34]
xor eax, eax
test esi, esi
jne 0x471463
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], 0x599b92
mov esi, dword fs:[0x18]
call fcn.0045bef0
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x2e0], 0
mov dword [ebp - 0x2dc], 0
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2d4], 0
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], eax
mov dword [esp + 4], 8
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov ebx, eax
mov eax, 0x153f
call fcn.0045b740
mov edx, dword [esi + 0x34]
xor eax, eax
test ebx, ebx
jne 0x4714fa
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x599b92
mov esi, dword fs:[0x18]
call fcn.0045bef0
lea eax, [ebp - 0x2e8]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
mov dword [esp + 4], 9
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov ebx, eax
mov eax, 0x1543
call fcn.0045b740
mov edx, dword [esi + 0x34]
xor eax, eax
test ebx, ebx
jne 0x471569
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x2f0]
mov dword [esp], eax
mov dword [esp + 4], 0x599b92
mov edi, dword fs:[0x18]
call fcn.0045bef0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [ebp - 0x2f0], 3
mov dword [esp + 0xc], 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xc
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov esi, eax
mov eax, 0x1548
call fcn.0045b740
mov edx, dword [edi + 0x34]
xor eax, eax
test esi, esi
jne 0x4715e2
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], 0x599b92
mov esi, dword fs:[0x18]
call fcn.0045bef0
mov dword [ebp - 0x2f0], 2
mov dword [esp + 0xc], 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xc
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov edi, eax
mov eax, 0x154c
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 8], edi
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.setting_FileIoPriorityHintInfo_got__d__error__ld_n
call fcn.0045bef0
mov dword [ebp - 0x2f0], 0
mov dword [esp + 0xc], 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xc
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov edi, eax
mov eax, 0x1550
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 8], edi
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.setting_FileIoPriorityHintInfo_got__d__error__ld_n
call fcn.0045bef0
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 3
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xc
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov edi, eax
mov eax, 0x1554
call fcn.0045b740
mov edx, dword [esi + 0x34]
xor eax, eax
test edi, edi
jne 0x4716f9
xor eax, eax
cmp edx, 0x18
sete al
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0x599b92
mov esi, dword fs:[0x18]
call fcn.0045bef0
mov dword [esi + 0x34], 0xdeadbeef
mov dword [ebp - 0x2f0], 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
mov dword [esp + 4], 0xc
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov ebx, eax
mov eax, 0x1559
call fcn.0045b740
mov edx, dword [esi + 0x34]
xor eax, eax
test ebx, ebx
jne 0x47176c
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x599b92
mov esi, dword fs:[0x18]
call fcn.0045bef0
lea edx, [ebp - 0x288]
xor eax, eax
mov ecx, 0x1c
mov dword [ebp - 0x28c], 0x740001
mov edi, edx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x28c]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0x74
mov dword [esp + 8], eax
mov dword [esp + 4], 0xd
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
sub esp, 0x10
mov ebx, eax
mov eax, 0x1560
call fcn.0045b740
mov edx, dword [esi + 0x34]
xor eax, eax
test ebx, ebx
je 0x471c80
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x599b92
mov esi, dword fs:[0x18]
call fcn.0045bef0
lea eax, [ebp - 0x2f1]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
mov edi, dword [0x8f0770]
sub esp, 0x10
mov ebx, eax
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test edi, edi
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x4718b3
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x1566
xor eax, eax
mov edx, dword [esi + 0x34]
test ebx, ebx
jne 0x471893
xor eax, eax
cmp edx, 0x18
sete al
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x599b92
call fcn.0045bef0
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x471870
lea eax, [ebp - 0x2b8]
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [0x76d13c]
mov ebx, dword [0x8f0770]
sub esp, 0x10
mov esi, eax
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test ebx, ebx
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x471973
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x156b
xor eax, eax
mov edx, dword [edi + 0x34]
test esi, esi
jne 0x471953
xor eax, eax
cmp edx, 0x18
sete al
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], 0x599b92
call fcn.0045bef0
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov ebx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test ebx, ebx
jne 0x471930
mov eax, ebx
lea edi, [ebp - 0x2b8]
mov ecx, 0xa
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2b8]
mov dword [esp + 0xc], 0x28
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x2f8]
mov esi, dword fs:[0x18]
mov dword [esp], edi
call dword [0x76d164]
sub esp, 0x10
mov edi, eax
mov eax, 0x156f
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.Failed_to_get_basic_info__error__ld._n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, dword [ebp - 0x2b0]
mov edx, dword [ebp - 0x2ac]
lea ecx, [ebp - 0x2b8]
add eax, 1
adc edx, 0
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], edx
mov dword [ebp - 0x2ac], edx
mov dword [ebp - 0x2b0], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x28
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x2f8]
mov dword [esp], edi
call dword [0x76d13c]
sub esp, 0x10
mov edi, eax
mov eax, 0x1574
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp], edi
lea edi, [ebp - 0x2b8]
mov dword [esp + 4], str.Failed_to_set_basic_info__error__ld._n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, ebx
mov ecx, 0xa
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x2b8]
mov dword [esp + 0xc], 0x28
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x2f8]
mov dword [esp], edi
call dword [0x76d164]
sub esp, 0x10
mov edi, eax
mov eax, 0x1578
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp], edi
lea edi, [ebp - 0x2b8]
mov dword [esp + 4], str.Failed_to_get_basic_info__error__ld._n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x1579
call fcn.0045b740
mov dword [esp + 4], str.Unexpected_access_time._n
mov eax, dword [ebp - 0x300]
mov edx, dword [ebp - 0x2fc]
xor eax, dword [ebp - 0x2b0]
xor edx, dword [ebp - 0x2ac]
or eax, edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, ebx
mov ecx, 0xa
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 0x2b0], 0xffffffff
mov dword [ebp - 0x2ac], 0xffffffff
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x28
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x2f8]
mov dword [esp], edi
call dword [0x76d13c]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x157e
mov eax, dword [esi + 0x34]
mov dword [esp], edi
lea edi, [ebp - 0x2b8]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Failed_to_set_basic_info__error__ld._n
call fcn.0045bef0
mov eax, ebx
mov ecx, 0xa
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x2b8]
mov dword [esp + 0xc], 0x28
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x2f8]
mov dword [esp], edi
call dword [0x76d164]
sub esp, 0x10
mov ebx, eax
mov eax, 0x1582
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.Failed_to_get_basic_info__error__ld._n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x1583
call fcn.0045b740
mov dword [esp + 4], str.Unexpected_access_time._n
mov eax, dword [ebp - 0x300]
mov edx, dword [ebp - 0x2fc]
xor eax, dword [ebp - 0x2b0]
xor edx, dword [ebp - 0x2ac]
or eax, edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x2f1]
mov byte [ebp - 0x2f1], 1
mov dword [esp], edi
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 4
call dword [0x76d13c]
sub esp, 0x10
mov ebx, eax
mov eax, 0x1587
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.setting_FileDispositionInfo_failed__error__ld_n
mov dword [esp + 8], eax
call fcn.0045bef0
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
xor eax, eax
cmp edx, 0x57
sete al
jmp 0x4717f2
mov eax, 0x1528
call fcn.0045b740
mov dword [esp], str.SetFileInformationByHandle_is_not_supported_n
call fcn.0045bec0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret