Function at 0x471ab0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x620
mov eax, dword [0x4db06c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
push esi
push edi
test ebx, ebx
je 0x471ad2
cmp word [ebx], 0
jne 0x471aea
lea eax, [ebp - 0x61c]
push eax
push 0x104
call dword [sym.imp.KERNEL30.dll_GetTempPathW]
lea ebx, [ebp - 0x61c]
mov eax, dword [0x4f29f0]
test eax, eax
je 0x471afc
push eax
call fcn.00487954
add esp, 4
mov edi, ebx
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x471b01
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00487989
lea esi, [edi + edi]
mov dword [ebp - 0x620], eax
push esi
push ebx
mov ebx, eax
push ebx
call fcn.00489a20
xor eax, eax
add esp, 0x10
mov word [esi + ebx], ax
mov ecx, 0x3ff
test edi, edi
jle 0x471b64
movzx eax, word [esi + ebx - 2]
add eax, 0x2800
cmp ax, cx
ja 0x471b64
xor eax, eax
mov word [esi + ebx - 2], ax
mov eax, dword [0x4f29d8]
mov dword [0x4f29f0], ebx
test eax, eax
je 0x471b7c
push eax
call fcn.00487954
add esp, 4
cmp word [0x4ca93c], 0
mov ebx, 0x4ca93c
mov eax, str.exception.log
cmove ebx, eax
mov edi, ebx
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x471b96
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00487989
lea esi, [edi + edi]
mov dword [ebp - 0x620], eax
push esi
push ebx
mov ebx, eax
push ebx
call fcn.00489a20
xor eax, eax
add esp, 0x10
mov word [esi + ebx], ax
test edi, edi
jle 0x471bf9
movzx eax, word [esi + ebx - 2]
mov ecx, 0x3ff
add eax, 0x2800
cmp ax, cx
ja 0x471bf9
xor eax, eax
mov word [esi + ebx - 2], ax
mov edx, dword [0x4f29f0]
lea ecx, [ebp - 0x20c]
push SysReAllocString
push ebx
mov dword [0x4f29d8], ebx
call fcn.00462880
mov eax, dword [0x4f2a48]
add esp, 8
test eax, eax
je 0x471c2b
push eax
call fcn.00487954
add esp, 4
lea edi, [ebp - 0x20c]
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x471c34
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00487989
mov ebx, eax
lea esi, [edi + edi]
push esi
lea eax, [ebp - 0x20c]
push eax
push ebx
call fcn.00489a20
xor eax, eax
add esp, 0x10
mov word [esi + ebx], ax
test edi, edi
jle 0x471c97
movzx eax, word [esi + ebx - 2]
mov ecx, 0x3ff
add eax, 0x2800
cmp ax, cx
ja 0x471c97
xor eax, eax
mov word [esi + ebx - 2], ax
mov eax, dword [0x4f2a58]
mov dword [0x4f2a48], ebx
test eax, eax
je 0x471caf
push eax
call fcn.00487954
add esp, 4
mov eax, dword [0x4f2a34]
mov dword [0x4f2a58], 0
test eax, eax
je 0x471ccb
push eax
call fcn.00487954
add esp, 4
cmp dword [0x4f2a4c], 0
mov dword [0x4f2a34], 0
je 0x471df9
cmp word [str.fastcopy_exception.dmp], 0
mov ebx, str.fastcopy_exception.dmp
mov eax, str.exception.dmp
cmove ebx, eax
mov edi, ebx
lea ecx, [edi + 2]
nop dword [eax]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x471d00
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00487989
lea esi, [edi + edi]
mov dword [ebp - 0x620], eax
push esi
push ebx
mov ebx, eax
push ebx
call fcn.00489a20
xor eax, eax
add esp, 0x10
mov word [esi + ebx], ax
test edi, edi
jle 0x471d63
movzx eax, word [esi + ebx - 2]
mov ecx, 0x3ff
add eax, 0x2800
cmp ax, cx
ja 0x471d63
xor eax, eax
mov word [esi + ebx - 2], ax
mov edx, dword [0x4f29f0]
lea ecx, [ebp - 0x414]
push SysReAllocString
push ebx
mov dword [0x4f2a58], ebx
call fcn.00462880
lea edi, [ebp - 0x414]
add esp, 8
lea ecx, [edi + 2]
nop dword [eax]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x471d90
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00487989
mov ebx, eax
lea esi, [edi + edi]
push esi
lea eax, [ebp - 0x414]
push eax
push ebx
call fcn.00489a20
xor eax, eax
add esp, 0x10
mov word [esi + ebx], ax
test edi, edi
jle 0x471df3
movzx eax, word [esi + ebx - 2]
mov ecx, 0x3ff
add eax, 0x2800
cmp ax, cx
ja 0x471df3
xor eax, eax
mov word [esi + ebx - 2], ax
mov dword [0x4f2a34], ebx
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00487555
mov esp, ebp
pop ebp
ret