Function at 0x509b10
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x404]
sub esp, 0x404
push 0xffffffffffffffff
push 0x5a602e
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x634384]
xor eax, ebp
mov dword [ebp + 0x400], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x40c]
mov ecx, dword [ebp + 0x410]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 4], 2
cmp byte [0x633de8], 0
jne 0x509dd6
cmp dword [0x633e10], 3
je 0x509dd6
push 0x50
call fcn.00539040
add esp, 4
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x509ba9
push 0
push 1
push 0
mov ecx, eax
call fcn.0050e960
mov esi, eax
jmp 0x509bab
xor esi, esi
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x509bbd
mov eax, dword [ecx]
push 1
call dword [eax + 8]
mov dword [ebp - 0x10], esi
test esi, esi
je 0x509d22
xor edi, edi
lea eax, [ebp - 0x30]
mov esi, 0xff
push eax
call fcn.00445c20
add esp, 4
test eax, eax
je 0x509bed
push 0x64ef90
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push dword [ebp - 0x24]
lea eax, [ebp]
push dword [ebp - 0x28]
push str._016I64x
push eax
call fcn.00506870
add esp, 0x10
lea eax, [ebp]
push eax
call fcn.0055e441
cdq
idiv esi
movzx eax, word [ebp - 0x30]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
movzx eax, ax
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
movzx eax, ax
push eax
push dword [ebp - 0x20]
push str._s_04x__04x_04x__02x__s.tmp
push 0x104
push ebx
call fcn.0043af20
mov ecx, dword [0x633de0]
mov dword [ebp - 0x1c], ecx
lea ebx, [ecx + 2]
add ebx, eax
push ebx
call fcn.00539947
mov esi, eax
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 8
mov eax, 0x633dd0
cmp dword [0x633de4], 0x10
cmovae eax, dword [0x633dd0]
push eax
push ebx
push esi
call fcn.0055c7a7
mov eax, dword [ebp - 0x1c]
add esp, 0x34
test eax, eax
je 0x509c9f
cmp byte [esi + eax - 1], 0x5c
je 0x509c9f
push 0x5eae00
push ebx
push esi
call fcn.00561801
add esp, 0xc
push dword [ebp - 0x14]
push ebx
push esi
call fcn.00561801
mov ecx, dword [ebp - 0x10]
add esp, 0xc
push 1
push esi
call fcn.0050f320
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x418]
push dword [ebp + 0x414]
mov eax, dword [ecx]
push 2
mov eax, dword [eax + 0x10]
call eax
test al, al
jne 0x509d65
cmp edi, 0x3e8
jge 0x509d0a
push 0
push 0xa
call dword [sym.imp.KERNEL32.dll_SleepEx]
mov byte [ebp - 4], 2
test esi, esi
je 0x509cfa
push esi
call fcn.00539650
add esp, 4
mov ebx, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x18], 0
jmp 0x509bca
mov byte [ebp - 4], 2
test esi, esi
je 0x509d1b
push esi
call fcn.00539650
add esp, 4
mov dword [ebp - 0x18], 0
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x509d39
mov edx, dword [ecx]
push 1
call dword [edx + 8]
mov eax, esi
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x400]
xor ecx, ebp
call fcn.005395e6
lea esp, [ebp + 0x404]
pop ebp
ret
call fcn.004917e0
lea edi, [eax + 0xb0]
lea eax, [edi + 4]
lock bts dword [eax], 0
jb 0x509d90
mov ecx, dword [edi + 8]
lea eax, [edi + 0xc]
push edi
push eax
call fcn.004ed240
mov ecx, eax
call fcn.00432290
mov byte [edi], al
cmp byte [edi], 0
je 0x509da2
push dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
call fcn.0050fb30
jmp 0x509daf
push esi
push ebx
push dword [ebp - 0x14]
call fcn.0055c7a7
add esp, 0xc
mov byte [ebp - 4], 2
test esi, esi
je 0x509dc0
push esi
call fcn.00539650
add esp, 4
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0
jmp 0x509d24
cmp dword [0x633de4], 0x10
mov eax, 0x633dd0
push ebx
cmovae eax, dword [0x633dd0]
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x509d22
push 0x50
call fcn.00539040
add esp, 4
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x509e21
push 0
push 1
push ebx
mov ecx, eax
call fcn.0050e960
mov esi, eax
jmp 0x509e23
xor esi, esi
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x509e35
mov eax, dword [ecx]
push 1
call dword [eax + 8]
mov dword [ebp - 0x10], esi
test esi, esi
je 0x509d22
push dword [ebp + 0x418]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp + 0x414]
push 2
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x509d22
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
jmp 0x509d24