Function at 0x4fc420
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x624940
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
mov dword [esp + 0xc], 0
mov eax, dword [0x6e0ea0]
push ebx
push ebp
push esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x3c]
mov bl, 2
test ebp, ebp
mov byte [esp + 0x24], bl
mov byte [esp + 0xf], 0
je 0x4fc47c
mov al, byte [ebp]
mov byte [ebp], 0
mov byte [esp + 0xf], al
jmp 0x4fc480
lea ebp, [esp + 0xf]
mov eax, dword [esp + 0x30]
push 0
lea ecx, [esp + 0x1c]
push 0
lea edx, [esp + 0x1c]
push ecx
push edx
push eax
call fcn.004feae0
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov eax, dword [ecx - 8]
test eax, eax
jne 0x4fc4e5
lea edx, [esp + 0x3c]
push edx
call fcn.004fc930
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x28], 3
call fcn.004ea610
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x24], bl
add eax, 0xfffffff4
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x4fc4e5
dec ecx
test ecx, ecx
mov dword [eax], ecx
jne 0x4fc4e5
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
push 0x105
lea ecx, [esp + 0x14]
call fcn.004ead20
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push eax
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
lea ecx, [esp + 0x10]
sete bl
call fcn.004ead50
test bl, bl
je 0x4fc529
mov eax, dword [0x65329c]
lea ecx, [esp + 0x10]
push eax
push 0
call fcn.004e9f80
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x4fc56c
call fcn.004f0590
test eax, eax
je 0x4fc559
mov edx, dword [eax]
push 0
push str.Failed_to_create_a_temporary_file_name
mov ecx, eax
call dword [edx + 8]
push eax
call fcn.004f45b0
add esp, 4
jmp 0x4fc60b
mov eax, str.Failed_to_create_a_temporary_file_name
push eax
call fcn.004f45b0
add esp, 4
jmp 0x4fc60b
mov esi, dword [esp + 0x34]
push edi
test esi, esi
mov bl, 1
je 0x4fc5a9
cmp dword [esi], 0xffffffff
jne 0x4fc5a9
mov al, byte [esp + 0x13]
lea ecx, [esp + 0x14]
push ebp
push ecx
mov byte [ebp], al
call fcn.004fc6b0
mov edi, eax
add esp, 8
cmp edi, 0xffffffff
je 0x4fc5a7
mov ecx, esi
call fcn.00518dc0
mov dword [esi], edi
mov byte [esi + 4], 0
jmp 0x4fc5a9
xor bl, bl
mov eax, dword [esp + 0x3c]
pop edi
test eax, eax
je 0x4fc5cf
cmp dword [eax], 0
jne 0x4fc5cf
mov dl, byte [esp + 0xf]
lea ecx, [esp + 0x10]
push ebp
push ecx
push eax
mov byte [ebp], dl
call fcn.004fc720
add esp, 0xc
mov bl, al
test bl, bl
jne 0x4fc60b
call fcn.004f0590
test eax, eax
je 0x4fc5ec
mov edx, dword [eax]
push 0
push str.Failed_to_open_temporary_file.
mov ecx, eax
call dword [edx + 8]
jmp 0x4fc5f1
mov eax, str.Failed_to_open_temporary_file.
push eax
call fcn.004f4290
mov eax, dword [0x65329c]
add esp, 4
lea ecx, [esp + 0x10]
push eax
push 0
call fcn.004e9f80
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x4fc624
mov ecx, dword [0x6e0ea0]
mov dword [esi], ecx
jmp 0x4fc632
mov dword [esi], ecx
mov eax, dword [ecx - 0xc]
cmp eax, 0xffffffff
je 0x4fc632
inc eax
mov dword [ecx - 0xc], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [edx - 0xc]
lea eax, [edx - 0xc]
cmp ecx, 0xffffffff
je 0x4fc652
dec ecx
test ecx, ecx
mov dword [eax], ecx
jne 0x4fc652
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x4fc671
dec ecx
test ecx, ecx
mov dword [eax], ecx
jne 0x4fc671
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 0xc]
mov ecx, dword [ecx - 0xc]
cmp ecx, 0xffffffff
je 0x4fc691
dec ecx
test ecx, ecx
mov dword [eax], ecx
jne 0x4fc691
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret