Function at 0x100faa20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xd0
call fcn.101aa6d0
mov eax, dword [0x102745f0]
xor eax, esp
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe0]
push ebx
mov ebx, dword [esp + 0xdc]
push ebp
mov ebp, dword [esp + 0xe4]
push esi
push edi
mov edi, dword [eax + 0x60]
mov dword [esp + 0x1c], eax
mov esi, dword [edi + 0xc8]
mov dword [esp + 0x38], ebx
lea eax, [esi + 0x10]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edi
cmp ecx, eax
jne 0x100fad87
lea eax, [esp + 0x3c]
neg eax
and eax, 0xf
lea ecx, [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x20], ecx
lea eax, [ecx + 0x40]
mov dword [esp + 0x14], eax
lea eax, [ecx + 0x30]
mov dword [esp + 0x18], eax
lea eax, [edi + 0x20]
push eax
mov dword [eax], 0
push edi
cmp esi, 0x40
ja 0x100fabdd
push 0x80
push 0x10214228
push ecx
mov dword [esp + 0x44], 0x80
call fcn.1005fa80
push dword [esp + 0x34]
lea eax, [edi + 0xd0]
push eax
call fcn.10006fa0
mov eax, dword [esp + 0x34]
movq xmm0, qword [edi + 0x94]
mov dword [edi + 0x70], 0
movq qword [eax], xmm0
movq xmm0, qword [edi + 0x9c]
movq qword [eax + 8], xmm0
mov eax, dword [esp + 0x38]
xor ecx, ecx
add esp, 0x1c
mov dword [edi + 0xa8], 0xd
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], esi
mov dword [edi + 0xb4], 0
mov dword [esp + 0x10], ecx
cmp dword [eax + 8], ecx
je 0x100fab66
test esi, esi
je 0x100faba6
mov eax, dword [esp + 0x14]
mov ecx, ebx
sub ebp, eax
sub ecx, eax
mov edx, eax
mov dword [esp + 0x10], esi
mov edi, ecx
lea ecx, [ecx]
movzx ecx, byte [edx + ebp]
movzx eax, byte [edx]
xor ecx, eax
mov byte [edx], cl
mov byte [edi + edx], cl
lea edx, [edx + 1]
dec esi
jne 0x100fab50
jmp 0x100fab9a
test esi, esi
je 0x100faba6
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
sub edi, ebx
sub ebx, ebp
mov dword [esp + 0x10], esi
lea ebx, [ebx]
mov al, byte [ebp]
lea ecx, [ebx + ebp]
lea ebp, [ebp + 1]
mov dl, byte [ecx + edi]
xor al, dl
mov byte [ebp - 1], dl
mov byte [ecx], al
dec esi
jne 0x100fab80
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov esi, ecx
neg esi
and esi, 0xf
push esi
add eax, ecx
push 0
push eax
add ebp, ecx
add ebx, ecx
call fcn.101aad60
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add eax, esi
add esp, 0xc
add ecx, eax
add eax, 0x10
lea esi, [edi + 0xd0]
jmp 0x100facbd
push 0x40
push 0x10214228
push ecx
mov dword [esp + 0x44], 0x40
call fcn.1005fa80
push dword [esp + 0x34]
lea eax, [edi + 0xd0]
push eax
call fcn.10006fa0
push 0x10
lea eax, [edi + 0x94]
push eax
lea eax, [edi + 0xd0]
mov dword [edi + 0x20], 1
push eax
mov dword [edi + 0x70], 0
call fcn.10005e16
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
add esp, 0x28
mov dword [edi + 0xa8], 0xd
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], esi
mov dword [edi + 0xb4], 0
cmp dword [eax + 8], 0
je 0x100fac7b
lea eax, [edi + 0x20]
push eax
push edi
push esi
push ebp
push ebx
call fcn.1005fa80
push esi
lea eax, [edi + 0xd0]
push ebx
push eax
call fcn.10005e16
jmp 0x100fac96
push esi
lea eax, [edi + 0xd0]
push ebp
push eax
call fcn.10005e16
lea eax, [edi + 0x20]
push eax
push edi
push esi
push ebp
push ebx
call fcn.1005fa80
add ebp, esi
add ebx, esi
add esp, 0x20
neg esi
and esi, 0xf
push esi
push 0x10214228
lea esi, [edi + 0xd0]
push esi
call fcn.10005e16
mov ecx, dword [esp + 0x20]
add esp, 0xc
xor eax, eax
movq xmm0, qword [edi + 0xa8]
add eax, 0x10
push eax
push dword [esp + 0x1c]
movq qword [ecx], xmm0
movq xmm0, qword [edi + 0xb0]
push esi
movq qword [ecx + 8], xmm0
call fcn.10005e16
push dword [esp + 0x3c]
push dword [esp + 0x30]
call sym.libcrypto_1_1.dll_OPENSSL_cleanse
mov eax, dword [esp + 0x30]
add esp, 0x14
cmp dword [eax + 8], 0
lea eax, [edi + 0x84]
jne 0x100fad08
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.1000604b
mov eax, dword [esp + 0x24]
add esp, 8
mov dword [edi + 0xc8], 0xffffffff
cmp dword [eax + 8], 0
je 0x100fad5c
movq xmm0, qword [edi + 0x84]
movq qword [ebx], xmm0
movq xmm0, qword [edi + 0x8c]
movq qword [ebx + 8], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101aa6fb
add esp, 0xd0
ret
push 0x10
push ebp
push dword [esp + 0x20]
call sym.libcrypto_1_1.dll_CRYPTO_memcmp
add esp, 0xc
test eax, eax
je 0x100fad3f
mov ecx, dword [esp + 0x2c]
sub ebx, ecx
lea eax, [ecx - 0x10]
push eax
push 0
add ebx, 0x10
push ebx
call fcn.101aad60
add esp, 0xc
or eax, 0xffffffff
jmp 0x100fad43