Function at 0x100246b0
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x628]
sub esp, 0x628
push 0xffffffffffffffff
push 0x1004e808
mov eax, dword fs:[0]
push eax
sub esp, 0xc
mov eax, dword [0x1006500c]
xor eax, ebp
mov dword [ebp + 0x624], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [0x1006713c]
mov dword [ebp], 0
mov dword [ebp], 0x1006713c
test eax, eax
je 0x10024709
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 0
mov eax, dword [0x10065d20]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1002487a
cmp edi, 0x10065d10
je 0x1002485c
cmp dword [0x10065d24], 8
mov edx, 0x10065d10
mov ecx, dword [edi + 0x14]
cmovae edx, dword [0x10065d10]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
cmp eax, ecx
ja 0x10024771
mov ebx, edi
cmp ecx, 8
jb 0x10024755
mov ebx, dword [edi]
lea esi, [eax + eax]
mov dword [edi + 0x10], eax
push esi
push edx
push ebx
call fcn.10037950
add esp, 0xc
xor eax, eax
mov word [ebx + esi], ax
jmp 0x1002485c
cmp eax, 0x7ffffffe
ja 0x10024b23
mov esi, eax
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x10024790
mov esi, 0x7ffffffe
jmp 0x100247ae
mov edx, ecx
mov eax, 0x7ffffffe
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x100247a6
mov esi, 0x7ffffffe
jmp 0x100247ae
lea eax, [ecx + edx]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x100247c0
or ecx, 0xffffffff
jmp 0x100247c8
cmp ecx, 0x1000
jb 0x100247ef
lea eax, [ecx + 0x23]
or edx, 0xffffffff
cmp eax, ecx
cmovbe eax, edx
push eax
call fcn.10036327
add esp, 4
test eax, eax
je 0x10024b28
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x10024802
test ecx, ecx
je 0x10024800
push ecx
call fcn.10036327
add esp, 4
mov ebx, eax
jmp 0x10024802
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], eax
lea esi, [eax + eax]
push esi
push dword [ebp - 0x10]
push ebx
call fcn.10037ed0
mov ecx, dword [ebp - 0x14]
xor eax, eax
add esp, 0xc
mov word [ebx + esi], ax
cmp ecx, 8
jb 0x1002485a
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10024850
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10024b28
mov eax, edx
push ecx
push eax
call fcn.10036357
add esp, 8
mov dword [edi], ebx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x1006713c]
test eax, eax
je 0x10024873
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 1
jmp 0x10024af9
push 0x20c
lea eax, [ebp + 0x418]
push 0
push eax
call fcn.10038450
add esp, 0xc
lea eax, [ebp + 0x418]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x10024ae0
xor eax, eax
push 0x412
push eax
mov word [ebp + 0x622], ax
lea eax, [ebp + 4]
push eax
call fcn.10038450
add esp, 0xc
lea eax, [ebp + 4]
push 0x208
push eax
lea eax, [ebp + 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x100249e6
test eax, eax
je 0x100249e6
add eax, eax
cmp eax, 0x412
jae 0x10024b32
xor ecx, ecx
mov word [ebp + eax + 4], cx
lea eax, [ebp + 4]
push eax
call fcn.1003dd45
mov ecx, dword [edi + 0x14]
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
cmp eax, ecx
ja 0x10024936
mov ebx, edi
cmp ecx, 8
jb 0x10024928
mov ebx, dword [edi]
mov dword [edi + 0x10], eax
lea esi, [eax + eax]
lea eax, [ebp + 4]
jmp 0x10024a17
cmp eax, 0x7ffffffe
ja 0x10024b2d
mov esi, eax
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x10024955
mov esi, 0x7ffffffe
jmp 0x10024973
mov edx, ecx
mov eax, 0x7ffffffe
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x1002496b
mov esi, 0x7ffffffe
jmp 0x10024973
lea eax, [ecx + edx]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x10024985
or ecx, 0xffffffff
jmp 0x1002498d
cmp ecx, 0x1000
jb 0x100249b4
lea eax, [ecx + 0x23]
or edx, 0xffffffff
cmp eax, ecx
cmovbe eax, edx
push eax
call fcn.10036327
add esp, 4
test eax, eax
je 0x10024b28
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x100249c7
test ecx, ecx
je 0x100249c5
push ecx
call fcn.10036327
add esp, 4
mov ebx, eax
jmp 0x100249c7
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], eax
lea esi, [eax + eax]
push esi
lea eax, [ebp + 4]
push eax
push ebx
call fcn.10037ed0
mov ecx, dword [ebp - 0x10]
jmp 0x1002481b
lea eax, [ebp + 0x418]
push eax
call fcn.1003dd45
mov ecx, dword [edi + 0x14]
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
cmp eax, ecx
ja 0x10024a2d
mov ebx, edi
cmp ecx, 8
jb 0x10024a0b
mov ebx, dword [edi]
mov dword [edi + 0x10], eax
lea esi, [eax + eax]
lea eax, [ebp + 0x418]
push esi
push eax
push ebx
call fcn.10037950
add esp, 0xc
xor eax, eax
mov word [ebx + esi], ax
jmp 0x1002485c
cmp eax, 0x7ffffffe
ja 0x10024b37
mov esi, eax
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x10024a4c
mov esi, 0x7ffffffe
jmp 0x10024a6a
mov edx, ecx
mov eax, 0x7ffffffe
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x10024a62
mov esi, 0x7ffffffe
jmp 0x10024a6a
lea eax, [ecx + edx]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x10024a7c
or ecx, 0xffffffff
jmp 0x10024a84
cmp ecx, 0x1000
jb 0x10024aab
lea eax, [ecx + 0x23]
or edx, 0xffffffff
cmp eax, ecx
cmovbe eax, edx
push eax
call fcn.10036327
add esp, 4
test eax, eax
je 0x10024b28
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x10024abe
test ecx, ecx
je 0x10024abc
push ecx
call fcn.10036327
add esp, 4
mov ebx, eax
jmp 0x10024abe
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], eax
lea esi, [eax + eax]
push esi
lea eax, [ebp + 0x418]
push eax
push ebx
call fcn.10037ed0
mov ecx, dword [ebp - 0x10]
jmp 0x1002481b
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x1006713c]
test eax, eax
je 0x10024af7
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
mov dword [ebp], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x624]
xor ecx, ebp
call fcn.10036316
lea esp, [ebp + 0x628]
pop ebp
ret
call fcn.10002957
call fcn.1003df6b
call fcn.10002957
call fcn.1003673c
call fcn.10002957
int3