Function at 0x100307f5
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push 0x460
mov eax, 0x101a07cc
call fcn.1017516e
mov dword [ebp - 0x464], edx
mov edi, ecx
mov dword [ebp - 0x468], edi
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, ebx
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x460], esi
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x218]
push 0x208
push ebx
push eax
call fcn.100e19a0
mov eax, dword [ebp - 0x464]
add esp, 0xc
mov dword [ebp - 0x454], eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x44c], eax
lea eax, [ebp - 0x46c]
mov dword [ebp - 0x450], 0x2060000
push eax
push 0xc
lea eax, [ebp - 0x454]
push eax
push 0x58
call dword [edi + 4]
jmp 0x100308ea
mov eax, dword [ebp - 0x44e]
add eax, eax
movzx edi, ax
add edi, 2
mov word [ebp - 0x44e], ax
push edi
call fcn.10174e2b
pop ecx
mov ecx, esi
mov dword [ebp - 0x45c], eax
mov esi, eax
mov dword [ebp - 0x460], esi
test ecx, ecx
je 0x100308af
push ecx
call fcn.10174e26
pop ecx
mov eax, esi
push edi
push ebx
push eax
call fcn.100e19a0
mov eax, dword [ebp - 0x45c]
add esp, 0xc
mov dword [ebp - 0x44c], eax
xor eax, eax
mov word [ebp - 0x450], ax
lea eax, [ebp - 0x46c]
push eax
push 0xc
lea eax, [ebp - 0x454]
push eax
mov eax, dword [ebp - 0x468]
push 0x58
call dword [eax + 4]
cmp eax, 0xc0000004
je 0x10030876
mov edi, dword [ebp + 0xc]
test eax, eax
js 0x1003092d
cmp word [ebp - 0x450], 0
je 0x100309ba
cmp dword [ebp - 0x44c], 0
je 0x100309ba
push dword [ebp - 0x44c]
push edi
push dword [ebp - 0x458]
call fcn.100255a7
test eax, eax
jne 0x10030a86
mov dword [ebp - method.std::_Facet_base.virtual_4], 0x10205170
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0x43c], eax
lea eax, [ebp - 0x434]
push 0x104
push eax
mov dword [ebp - 0x448], 0x10205b7c
mov dword [ebp - 0x440], ebx
mov dword [ebp - 0x438], edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov byte [ebp - 4], 2
lea edx, [ebp - 0x448]
mov ecx, dword [ebp - 0x468]
call fcn.10030448
mov edi, dword [ebp - 0x440]
mov byte [ebp - 4], bl
mov dword [ebp - method.std::_Facet_base.virtual_4], 0x10205170
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x100309b2
push esi
call fcn.10174e26
pop ecx
mov eax, edi
call fcn.10175118
ret
mov dword [ebp - 0x22c], 0x6799
mov eax, dword [ebp - 0x22c]
xor eax, 0x53
mov word [ebp - 0x228], ax
mov eax, dword [ebp - 0x22c]
inc eax
xor eax, 0x79
mov word [ebp - 0x226], ax
mov eax, dword [ebp - 0x22c]
add eax, 2
xor eax, 0x73
mov word [ebp - 0x224], ax
mov eax, dword [ebp - 0x22c]
add eax, 3
xor eax, 0x74
mov word [ebp - 0x222], ax
mov eax, dword [ebp - 0x22c]
add eax, 4
xor eax, 0x65
mov word [ebp - 0x220], ax
mov eax, dword [ebp - 0x22c]
add eax, 5
xor eax, 0x6d
mov word [ebp - 0x21e], ax
xor eax, eax
mov word [ebp - 0x21c], ax
mov ax, word [ebp - 0x228]
mov ax, word [ebp + ebx*2 - 0x228]
mov ecx, dword [ebp - 0x22c]
add ecx, ebx
movzx eax, ax
xor ecx, eax
mov word [ebp + ebx*2 - 0x228], cx
inc ebx
cmp ebx, 6
jb 0x10030a41
xor eax, eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x228]
push eax
push edi
push dword [ebp - 0x458]
call fcn.100078b2
mov esi, dword [ebp - 0x460]
xor edi, edi
inc edi
jmp 0x100309a3