Function at 0x10018250
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, eax
sub eax, 0x80
push edi
mov edi, ecx
je 0x1001827f
sub eax, 0x40
je 0x10018277
sub eax, 0x40
je 0x1001826f
pop edi
mov eax, 0xffffffe0
pop esi
ret
mov dword [edi], 0xe
jmp 0x10018285
mov dword [edi], 0xc
jmp 0x10018285
mov dword [edi], 0xa
cmp dword [reloc.PSAPI.DLL_GetMappedFileNameW], 0
jne 0x1001829d
call fcn.10018040
mov dword [reloc.PSAPI.DLL_GetMappedFileNameW], 1
shr esi, 5
lea eax, [edi + 8]
xor edx, edx
push ebx
mov dword [edi + 4], eax
test esi, esi
jbe 0x100182df
mov ecx, dword [esp + 0x10]
add ecx, 2
push ebp
movzx ebx, byte [ecx + 1]
movzx ebp, byte [ecx]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [ecx - 1]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [ecx - 2]
shl ebx, 8
or ebx, ebp
mov dword [eax + edx*4], ebx
inc edx
add ecx, 4
cmp edx, esi
jb 0x100182b5
pop ebp
mov ecx, dword [edi]
sub ecx, 0xa
je 0x100185b6
sub ecx, 2
je 0x100183d2
sub ecx, 2
jne 0x100187ac
xor esi, esi
mov edi, edi
mov edi, dword [eax + 0x1c]
movzx edx, byte [eax + 0x1f]
movzx edx, byte [edx + 0x4577ea1a]
mov ecx, edi
and ecx, 0xff
movzx ecx, byte [ecx + 0x4577ea1a]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0x1e]
movzx edx, byte [edx + 0x4577ea1a]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0x1d]
movzx edx, byte [edx + 0x4577ea1a]
shl ecx, 8
xor ecx, edx
xor ecx, dword [esi + reloc.PSAPI.DLL_GetMappedFileNameW]
mov edx, dword [eax + 4]
xor ecx, dword [eax]
add esi, 4
xor edx, ecx
mov dword [eax + 0x20], ecx
mov ecx, dword [eax + 8]
xor ecx, edx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x24], edx
mov edx, dword [eax + 0xc]
xor edx, ecx
mov dword [eax + 0x2c], edx
movzx ecx, byte [eax + 0x2f]
movzx ecx, byte [ecx + 0x4577ea1a]
movzx ebx, byte [eax + 0x2e]
movzx ebx, byte [ebx + 0x4577ea1a]
shl ecx, 8
xor ecx, ebx
movzx ebx, byte [eax + 0x2d]
movzx ebx, byte [ebx + 0x4577ea1a]
shl ecx, 8
xor ecx, ebx
and edx, 0xff
movzx edx, byte [edx + 0x4577ea1a]
shl ecx, 8
xor ecx, edx
xor ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
xor edx, ecx
mov dword [eax + 0x30], ecx
mov ecx, dword [eax + 0x18]
xor ecx, edx
mov dword [eax + 0x38], ecx
xor ecx, edi
mov dword [eax + 0x34], edx
mov dword [eax + 0x3c], ecx
add eax, 0x20
cmp esi, 0x1c
jb 0x10018300
pop ebx
pop edi
xor eax, eax
pop esi
ret
xor edx, edx
jmp 0x100183e0
mov edi, dword [eax + 0x14]
movzx esi, byte [eax + 0x17]
movzx esi, byte [esi + 0x4577ea1a]
mov ecx, edi
and ecx, 0xff
movzx ecx, byte [ecx + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x16]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x15]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 4]
xor ecx, dword [eax]
xor esi, ecx
mov dword [eax + 0x18], ecx
mov ecx, dword [eax + 8]
xor ecx, esi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x1c], esi
mov esi, dword [eax + 0xc]
xor esi, ecx
mov ecx, dword [eax + 0x10]
xor ecx, esi
mov dword [eax + 0x28], ecx
xor ecx, edi
mov dword [eax + 0x2c], ecx
and ecx, 0xff
mov dword [eax + 0x24], esi
movzx ecx, byte [ecx + 0x4577ea1a]
movzx esi, byte [eax + 0x2f]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x2e]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x2d]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 0x1c]
xor ecx, dword [eax + 0x18]
mov edi, dword [eax + 0x28]
xor esi, ecx
mov dword [eax + 0x30], ecx
mov ecx, dword [eax + 0x20]
xor ecx, esi
mov dword [eax + 0x38], ecx
mov dword [eax + 0x34], esi
mov esi, dword [eax + 0x24]
xor esi, ecx
mov ecx, dword [eax + 0x2c]
xor edi, esi
xor ecx, edi
mov dword [eax + 0x44], ecx
mov dword [eax + 0x3c], esi
movzx esi, byte [eax + 0x47]
and ecx, 0xff
mov dword [eax + 0x40], edi
movzx ecx, byte [ecx + 0x4577ea1a]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x46]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x45]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
xor ecx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
xor esi, ecx
mov dword [eax + 0x48], ecx
mov ecx, dword [eax + 0x38]
xor ecx, esi
mov dword [eax + 0x4c], esi
mov esi, dword [eax + 0x3c]
xor esi, ecx
mov dword [eax + 0x50], ecx
mov ecx, dword [eax + 0x44]
xor edi, esi
xor ecx, edi
mov dword [eax + 0x5c], ecx
mov dword [eax + 0x54], esi
movzx esi, byte [eax + 0x5f]
and ecx, 0xff
mov dword [eax + 0x58], edi
movzx ecx, byte [ecx + 0x4577ea1a]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x5e]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x5d]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 0x4c]
xor ecx, dword [eax + 0x48]
add edx, 0x10
xor esi, ecx
mov dword [eax + 0x60], ecx
mov ecx, dword [eax + 0x50]
xor ecx, esi
mov dword [eax + 0x64], esi
mov esi, dword [eax + 0x54]
xor esi, ecx
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], esi
mov ecx, edi
xor ecx, esi
mov esi, dword [eax + 0x5c]
xor esi, ecx
mov dword [eax + 0x70], ecx
mov dword [eax + 0x74], esi
add eax, 0x60
cmp edx, 0x20
jb 0x100183e0
pop ebx
pop edi
xor eax, eax
pop esi
ret
xor edx, edx
jmp 0x100185c0
mov ebx, dword [eax + 0xc]
movzx esi, byte [eax + 0xf]
movzx esi, byte [esi + 0x4577ea1a]
mov ecx, ebx
and ecx, 0xff
movzx ecx, byte [ecx + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0xe]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0xd]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 4]
xor ecx, dword [eax]
mov edi, dword [eax + 8]
xor esi, ecx
mov dword [eax + 0x10], ecx
xor edi, esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], edi
mov ecx, ebx
xor ecx, edi
mov dword [eax + 0x1c], ecx
movzx esi, byte [eax + 0x1f]
movzx esi, byte [esi + 0x4577ea1a]
and ecx, 0xff
movzx ecx, byte [ecx + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x1e]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x1d]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 0x14]
xor ecx, dword [eax + 0x10]
xor esi, ecx
mov dword [eax + 0x20], ecx
mov ecx, dword [eax + 0x1c]
xor edi, esi
xor ecx, edi
mov dword [eax + 0x2c], ecx
and ecx, 0xff
mov dword [eax + 0x24], esi
movzx esi, byte [eax + 0x2f]
mov dword [eax + 0x28], edi
movzx ecx, byte [ecx + 0x4577ea1a]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x2e]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x2d]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 0x24]
xor ecx, dword [eax + 0x20]
xor esi, ecx
mov dword [eax + 0x30], ecx
mov ecx, dword [eax + 0x2c]
xor edi, esi
xor ecx, edi
mov dword [eax + 0x3c], ecx
and ecx, 0xff
mov dword [eax + 0x34], esi
mov dword [eax + 0x38], edi
movzx ecx, byte [ecx + 0x4577ea1a]
shl ecx, 8
movzx esi, byte [eax + 0x3f]
movzx esi, byte [esi + 0x4577ea1a]
xor ecx, esi
movzx esi, byte [eax + 0x3e]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x3d]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 0x34]
xor ecx, dword [eax + 0x30]
add edx, 0x14
xor esi, ecx
mov dword [eax + 0x40], ecx
mov ecx, dword [eax + 0x3c]
xor edi, esi
xor ecx, edi
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x44], esi
movzx esi, byte [eax + 0x4f]
and ecx, 0xff
mov dword [eax + 0x48], edi
movzx ecx, byte [ecx + 0x4577ea1a]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x4e]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
movzx esi, byte [eax + 0x4d]
movzx esi, byte [esi + 0x4577ea1a]
shl ecx, 8
xor ecx, esi
xor ecx, dword [edx + reloc.PSAPI.DLL_GetMappedFileNameW]
mov esi, dword [eax + 0x44]
xor ecx, dword [eax + 0x40]
add eax, 0x50
xor esi, ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
mov ecx, edi
xor ecx, esi
mov esi, dword [eax - 4]
xor esi, ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
cmp edx, 0x28
jb 0x100185c0
pop ebx
pop edi
xor eax, eax
pop esi
ret