Function at 0x10002010
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 8], 1
mov dword [ebp - 4], 0x2a
mov dword [ebp - 0x10], 0x40
mov dword [ebp - 0x14], 0x5060
mov eax, 4
imul ecx, eax, 0x11
mov edx, 4
imul eax, edx, 3
mov ecx, dword [ecx + 0x1007f028]
add ecx, dword [eax + 0x1007f028]
cmp ecx, 0x309
jne 0x10002089
mov edx, dword [0x1007f024]
sub edx, 0x43
sub edx, dword [0x1007f024]
add edx, dword [section..data]
mov dword [section..data], edx
mov eax, dword [0x1007f024]
add eax, 1
movzx ecx, word [0x1007f008]
sub eax, ecx
mov dword [section..data], eax
jmp 0x100020c6
movzx edx, word [0x1007f008]
imul eax, dword [0x1007f024], 0x28fd
sub edx, eax
mov dword [0x1007f024], edx
mov ecx, dword [0x1007f024]
sub ecx, 0x15c65
sub ecx, dword [0x1007f024]
add ecx, dword [section..data]
add ecx, dword [section..data]
mov dword [section..data], ecx
movzx edx, byte [0x1007f004]
imul eax, edx, 0x25
add eax, 0x79481
movzx ecx, word [0x1007f008]
sub ecx, eax
mov word [0x1007f008], cx
movzx edx, word [0x1007f008]
add edx, dword [ebp - 4]
add edx, dword [ebp + 8]
mov word [0x1007f008], dx
mov eax, 4
shl eax, 4
cmp dword [eax + 0x1007f028], 0x1c72
jne 0x1000212f
mov ecx, 4
shl ecx, 1
mov edx, dword [ebp - 4]
add edx, dword [ecx + 0x1007f028]
mov dword [ebp - 4], edx
imul eax, dword [ebp - 4], 0x24
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [section..data], ecx
imul edx, dword [ebp - 4], 0x28fd
mov eax, dword [ebp - 8]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
mov dword [0x10097134], ecx
mov edx, dword [ebp - 4]
sub edx, 0x45
sub edx, dword [ebp + 8]
mov word [0x1007f008], dx
mov eax, 4
imul ecx, eax, 0x11
mov edx, 4
imul eax, edx, 3
mov ecx, dword [ecx + 0x1007f028]
add ecx, dword [eax + 0x1007f028]
cmp ecx, 0x309
jne 0x100021a6
mov edx, dword [ebp - 4]
sub edx, 0x43
sub edx, dword [ebp - 4]
add edx, dword [section..data]
mov dword [section..data], edx
mov eax, dword [ebp - 4]
add eax, 1
movzx ecx, byte [0x1007f004]
sub eax, ecx
mov dword [section..data], eax
jmp 0x100021d7
movzx edx, byte [0x1007f004]
imul eax, dword [ebp - 4], 0x28fd
sub edx, eax
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
sub ecx, 0x15c65
sub ecx, dword [ebp - 4]
add ecx, dword [section..data]
add ecx, dword [section..data]
mov dword [section..data], ecx
movzx edx, word [0x1007f008]
sub edx, 0x45
sub edx, dword [ebp - 8]
mov dword [ebp - 4], edx
push 0x57a
push 0x1007fc18
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov dword [ebp - 4], eax
movzx eax, byte [0x1007f004]
add eax, dword [ebp - 8]
add eax, dword [ebp - 8]
mov byte [0x1007f004], al
mov ecx, dword [ebp - 8]
sub ecx, 0x15c65
movzx edx, byte [0x1007f004]
sub ecx, edx
movzx eax, word [0x1007f008]
add ecx, eax
movzx edx, word [0x1007f008]
add edx, ecx
mov word [0x1007f008], dx
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [0x10097134]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, 4
imul edx, ecx, 0x11
mov eax, 4
imul ecx, eax, 3
mov edx, dword [edx + 0x1007f028]
add edx, dword [ecx + 0x1007f028]
cmp edx, 0x309
jne 0x100022a0
mov eax, dword [0x1007f024]
sub eax, 0x43
sub eax, dword [0x1007f024]
add eax, dword [section..data]
mov dword [section..data], eax
mov ecx, dword [0x1007f024]
add ecx, 1
sub ecx, dword [ebp - 8]
mov dword [section..data], ecx
jmp 0x100022d8
imul edx, dword [0x1007f024], 0x28fd
mov eax, dword [ebp - 8]
sub eax, edx
mov dword [0x1007f024], eax
mov ecx, dword [0x1007f024]
sub ecx, 0x15c65
sub ecx, dword [0x1007f024]
add ecx, dword [section..data]
add ecx, dword [section..data]
mov dword [section..data], ecx
movzx edx, word [0x1007f008]
movzx eax, byte [0x1007f004]
add edx, dword [ebp - 8]
add eax, edx
mov byte [0x1007f004], al
mov ecx, 4
shl ecx, 1
movzx edx, byte [0x1007f004]
cmp dword [ecx + 0x1007f028], edx
ja 0x10002368
mov eax, 4
imul ecx, eax, 6
mov edx, dword [ebp - 4]
mov dword [ecx + 0x1007f028], edx
mov eax, dword [section..data]
sub eax, 9
movzx ecx, byte [0x1007f004]
sub eax, ecx
mov dword [ebp - 4], eax
movzx edx, byte [0x1007f004]
sub edx, 0x15c65
sub edx, dword [ebp - 4]
add edx, dword [section..data]
add edx, dword [section..data]
mov dword [section..data], edx
movzx eax, byte [0x1007f004]
imul ecx, dword [ebp - 4], 0x25
add eax, ecx
mov edx, dword [section..data]
sub edx, eax
mov dword [section..data], edx
mov eax, dword [ebp - 8]
sub eax, 0x15c65
sub eax, dword [ebp - 4]
movzx ecx, word [0x1007f008]
add eax, ecx
movzx edx, word [0x1007f008]
add edx, eax
mov word [0x1007f008], dx
movzx eax, word [0x1007f008]
imul ecx, eax, 0x24
mov edx, dword [ebp + 8]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, 4
shl eax, 4
cmp dword [eax + 0x1007f028], 0x1c72
jne 0x100023e3
mov ecx, 4
shl ecx, 1
movzx edx, word [0x1007f008]
add edx, dword [ecx + 0x1007f028]
mov word [0x1007f008], dx
movzx eax, word [0x1007f008]
movzx ecx, word [0x1007f008]
imul edx, ecx, 0x24
sub eax, edx
mov dword [ebp - 4], eax
movzx eax, byte [0x1007f004]
imul ecx, eax, 0x24
mov edx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 8], edx
push 0x57a
push 0x100801e0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov dword [ebp - 4], eax
mov eax, 4
shl eax, 1
mov ecx, dword [eax + 0x1007f028]
cmp ecx, dword [ebp + 8]
ja 0x1000246e
movzx edx, word [0x1007f008]
mov eax, 4
imul ecx, eax, 6
mov dword [ecx + 0x1007f028], edx
mov edx, dword [ebp - 4]
sub edx, 9
sub edx, dword [ebp + 8]
mov word [0x1007f008], dx
mov eax, dword [ebp + 8]
sub eax, 0x15c65
movzx ecx, word [0x1007f008]
sub eax, ecx
add eax, dword [ebp - 4]
add eax, dword [ebp - 4]
mov dword [ebp - 4], eax
movzx edx, word [0x1007f008]
imul eax, edx, 0x25
add eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 4], ecx
push dword [0x10097134]
mov dword [ebp - 0xc], 0x27
jmp 0x10002486
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 2
jle 0x100024d9
mov eax, 4
imul ecx, eax, 5
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x1007f028]
jne 0x100024a1
jmp 0x100024d9
mov eax, dword [ebp - 4]
sub eax, 9
sub eax, dword [ebp + 8]
mov word [0x1007f008], ax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx*4 + 0x1007f028]
add edx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [eax*4 + 0x1007f028], edx
mov ecx, dword [ebp - 4]
sub ecx, 9
sub ecx, dword [ebp + 8]
mov word [0x1007f008], cx
jmp 0x1000247d
movzx edx, byte [0x1007f004]
imul eax, edx, 0x25
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
sub ecx, eax
mov dword [ebp - 8], ecx
movzx edx, word [0x1007f008]
imul eax, edx, 0x24
mov ecx, dword [ebp + 8]
sub ecx, eax
mov dword [ebp - 4], ecx
movzx edx, word [0x1007f008]
movzx eax, byte [0x1007f004]
add edx, dword [ebp - 8]
add eax, edx
mov byte [0x1007f004], al
mov ecx, 4
shl ecx, 4
cmp dword [ecx + 0x1007f028], 0x1c72
jne 0x1000255c
mov edx, 4
shl edx, 1
movzx eax, word [0x1007f008]
add eax, dword [edx + 0x1007f028]
mov word [0x1007f008], ax
movzx ecx, word [0x1007f008]
movzx edx, word [0x1007f008]
imul eax, edx, 0x24
sub ecx, eax
mov dword [ebp - 4], ecx
movzx ecx, byte [0x1007f004]
imul edx, ecx, 0x25
add edx, dword [ebp - 8]
mov eax, dword [ebp - 8]
sub eax, edx
mov dword [ebp - 8], eax
movzx ecx, word [0x1007f008]
add ecx, 1
sub ecx, dword [ebp + 8]
mov dword [ebp - 4], ecx
ret