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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001b004
mov eax, dword fs:[0]
push eax
sub esp, 0x1d4
mov eax, dword [0x10022490]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x118]
push eax
push 0x104
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
xor ebx, ebx
mov ecx, 0xc8
xor eax, eax
jmp 0x10001db0
mov dl, byte [eax + 0x1001f0b4]
xor dl, cl
inc ecx
mov byte [ebp + eax - 0x134], dl
inc eax
and ecx, 0xff
cmp eax, 0x10
jb 0x10001db0
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x134]
push ecx
mov edx, eax
push edx
mov byte [ebp - 0x124], bl
call fcn.10007289
lea eax, [ebp - 0x118]
add esp, 0xc
push eax
call fcn.10007f7c
add esp, 4
lea ecx, [ebp - 0x1e0]
push ecx
call fcn.100030a0
lea edx, [ebp - 0x118]
push edx
lea ecx, [ebp - 0x1dc]
mov dword [ebp - 4], ebx
call fcn.10003e80
test eax, eax
jne 0x10001e43
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + ecx - 0x1d4]
lea ecx, [ebp + ecx - 0x1e0]
or eax, 2
cmp dword [ecx + 0x38], ebx
jne 0x10001e64
or eax, 4
jmp 0x10001e64
mov ecx, dword [ebp - 0x1e0]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp + ecx - 0x1a8]
lea ecx, [ebp + ecx - 0x1e0]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
call fcn.10001520
mov dword [ebp - 0x120], 0x6f727245
mov dword [ebp - 0x11c], 0x203a72
push esi
push ecx
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x1e0]
push eax
mov byte [ebp - 4], 1
call fcn.10004ae0
add esp, 0xc
push eax
call fcn.10004ae0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.10002b80
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + esi + 0xc]
xor edi, edi
test cl, 6
jne 0x10001ed5
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x10001ed5
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp edi, ebx
je 0x10001ef3
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], ebx
jne 0x10001eed
or eax, 4
push ebx
call fcn.10001520
xor eax, eax
mov byte [ebp - 4], bl
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x1dc]
call fcn.10003f70
test eax, eax
jne 0x10001f3b
mov edx, dword [ebp - 0x1e0]
mov ecx, dword [edx + 4]
mov eax, dword [ebp + ecx - 0x1d4]
lea ecx, [ebp + ecx - 0x1e0]
or eax, 2
cmp dword [ecx + 0x38], ebx
jne 0x10001f35
or eax, 4
push ebx
call fcn.10001520
call fcn.10001cb0
mov ecx, dword [ebp - 0x1e0]
mov edx, dword [ecx + 4]
lea eax, [ebp - 0x180]
mov dword [ebp - 0x138], eax
mov dword [ebp + edx - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
lea ecx, [ebp - 0x1dc]
mov dword [ebp - 4], 2
call fcn.10003160
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [eax + 4]
lea edx, [ebp - 0x180]
mov dword [ebp + ecx - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
push edx
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.1000682d
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1000717e
mov esp, ebp
pop ebp
ret