Function at 0x65d320
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x60c]
sub esp, 0x60c
push 0xffffffffffffffff
push 0x87eef8
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x8ce6f4]
xor eax, ebp
mov dword [ebp + 0x608], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 0x614]
mov edi, ecx
push esi
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x1c], edi
call fcn.004a8f10
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
mov dword [ebp - 4], 0
jl 0x65d399
push 0x41e4dc
push eax
call fcn.0080292f
add esp, 8
test eax, eax
je 0x65d399
sub eax, dword [ebp - 0x14]
sar eax, 1
je 0x65d3d0
push esi
mov ecx, edi
call fcn.0065c0e0
mov bl, al
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x65d3c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, bl
jmp 0x65d6d7
push 0
push 0
push 0
push 0
push 1
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.007e64f5
mov ecx, dword [ebp - 0x14]
push 0
push 0
push 0x20000002
push 1
push ecx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 2
call fcn.007e6e68
mov esi, eax
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 3
test esi, esi
jne 0x65d44b
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.007e6bb7
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x65d6d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x65d6d5
lea ecx, [ebp + 0x400]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edx, dword [ebp - 0x14]
push 0x2f
push edx
call fcn.00806ba1
add esp, 8
test eax, eax
jne 0x65d474
or eax, 0xffffffff
jmp 0x65d479
sub eax, dword [ebp - 0x14]
sar eax, 1
inc eax
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x14]
call fcn.004aa4c0
push eax
lea ecx, [ebp + 0x400]
push ecx
lea edx, [ebp - 0x24]
mov bl, 4
push edx
mov byte [ebp - 4], bl
call fcn.004b1a10
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 5
call fcn.004aa540
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x65d4cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x65d4f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
jl 0x65d553
push 0x404bf4
push eax
call fcn.0080292f
add esp, 8
test eax, eax
je 0x65d553
sub eax, dword [ebp - 0x14]
sar eax, 1
test eax, eax
jle 0x65d553
push eax
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x14]
call fcn.004ac570
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 6
call fcn.004aa540
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x65d553
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x38]
call fcn.007ddfe5
mov ecx, dword [ebp - 0x14]
push 0
push 0x9021
push ecx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 7
call fcn.007de497
test eax, eax
jne 0x65d5c5
mov edx, dword [esi]
mov eax, dword [edx + 0x50]
mov ecx, esi
call eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 3
call fcn.007de0e4
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
mov byte [ebp - 4], 2
call eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.007e6bb7
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x65d436
xor edi, edi
jmp 0x65d5d0
mov edx, dword [esi]
mov edx, dword [edx + 0x38]
push 0x400
lea eax, [ebp]
push eax
mov ecx, esi
call edx
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
cmp eax, 0x400
jne 0x65d628
mov ecx, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x28]
test ecx, ecx
jl 0x65d612
jg 0x65d5ff
test esi, esi
jb 0x65d612
add edi, 0x400
mov eax, edi
cdq
cmp edx, ecx
jg 0x65d62e
jl 0x65d612
cmp eax, esi
jae 0x65d62e
push 0x400
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x38]
call fcn.007ddce9
mov esi, dword [ebp - 0x20]
jmp 0x65d5d0
test eax, eax
jle 0x65d63e
jmp 0x65d631
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp]
push ecx
lea ecx, [ebp - 0x38]
call fcn.007ddce9
lea edx, [ebp - 0x14]
push edx
lea ecx, [ebx + 0x30]
call fcn.004aa540
mov edi, dword [ebp - 0x20]
mov eax, dword [edi]
mov edx, dword [eax + 0x50]
mov ecx, edi
call edx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 3
call fcn.007de0e4
mov eax, dword [edi]
mov edx, dword [eax + 4]
push 1
mov ecx, edi
mov byte [ebp - 4], 2
call edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.007e6bb7
mov eax, dword [ebx + 0x30]
push eax
mov ecx, ebx
mov dword [ebp - 4], 0
call fcn.0065c0e0
mov bl, al
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x65d3c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, bl
jmp 0x65d6d7
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x608]
xor ecx, ebp
call fcn.0080262b
lea esp, [ebp + 0x60c]
pop ebp
ret 4