Function at 0x101dfca0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4c
call fcn.100bab40
mov eax, dword [0x102db080]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
mov ebx, dword [esp + 0x54]
push ebp
push esi
push edi
mov al, byte [ebx]
lea edx, [ebx + 0x10]
mov edi, dword [esp + 0x68]
lea esi, [ebx + 0x20]
mov ecx, dword [ebx + 0x2c]
mov byte [esp + 0x13], al
test byte [esp + 0x13], 0x40
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edx
jne 0x101dfd04
push ecx
push edx
push ebx
call eax
mov eax, dword [esi + 4]
add esp, 0xc
add dword [esi], 1
adc eax, 0
mov dword [esi + 4], eax
jmp 0x101dfd08
mov dword [esp + 0x14], edx
movzx eax, byte [esp + 0x13]
mov edx, 0xf
and eax, 7
xor ecx, ecx
sub edx, eax
mov byte [ebx], al
mov dword [esp + 0x44], edx
cmp edx, 0xf
jae 0x101dfd43
movzx eax, byte [ebx + edx]
or ecx, eax
mov byte [ebx + edx], 0
inc edx
shl ecx, 8
cmp edx, 0xf
jb 0x101dfd24
lea edx, [ebx + 0x10]
lea esi, [ebx + 0x20]
mov dword [esp + 0x14], edx
jmp 0x101dfd47
mov edx, dword [esp + 0x14]
movzx eax, byte [ebx + 0xf]
mov ebp, dword [esp + 0x6c]
or ecx, eax
mov byte [ebx + 0xf], 1
cmp ecx, ebp
je 0x101dfd6f
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.100b9f43
add esp, 0x4c
ret
lea eax, [ebp + 0xf]
or eax, 8
shr eax, 3
add dword [esi], eax
adc dword [esi + 4], 0
cmp dword [esi + 4], 0x20000000
jb 0x101dfda6
ja 0x101dfd8e
cmp dword [esi], 0
jbe 0x101dfda6
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.100b9f43
add esp, 0x4c
ret
mov esi, dword [esp + 0x64]
cmp ebp, 0x10
jb 0x101dfe46
mov eax, ebp
lea ecx, [ebx + 0x18]
shr eax, 4
mov dword [esp + 0x18], eax
nop
mov eax, dword [esi]
xor dword [edx], eax
mov eax, dword [esi + 4]
xor dword [edx + 4], eax
push dword [esp + 0x20]
mov eax, dword [esi + 8]
xor dword [ecx], eax
mov eax, dword [esi + 0xc]
xor dword [ecx + 4], eax
push edx
push edx
call dword [esp + 0x28]
push dword [esp + 0x2c]
lea eax, [esp + 0x58]
push eax
push ebx
call dword [esp + 0x34]
add esp, 0x18
mov eax, 8
dec eax
add byte [eax + ebx + 8], 1
jne 0x101dfe01
test eax, eax
jne 0x101dfdf5
mov eax, dword [esi + 4]
sub ebp, 0x10
mov ecx, dword [esp + 0x48]
xor ecx, dword [esi]
xor eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
mov dword [edi], ecx
mov ecx, dword [esp + 0x50]
mov dword [edi + 4], eax
xor ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
add esi, 0x10
xor eax, dword [esp + 0x54]
mov dword [edi + 8], ecx
lea ecx, [ebx + 0x18]
mov dword [edi + 0xc], eax
add edi, 0x10
sub dword [esp + 0x18], 1
jne 0x101dfdc0
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], esi
lea eax, [ebx + 0x18]
mov dword [esp + 0x18], eax
test ebp, ebp
je 0x101dffe8
mov ecx, dword [esp + 0x14]
mov ebx, ebp
mov edx, esi
mov al, byte [edx]
lea edx, [edx + 1]
xor byte [ecx], al
lea ecx, [ecx + 1]
sub ebx, 1
jne 0x101dfe61
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
push ebx
push edx
push edx
call dword [esp + 0x28]
push ebx
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0x58]
push eax
push ebx
call dword [esp + 0x34]
add esp, 0x18
xor edx, edx
cmp ebp, 8
jb 0x101dffbb
lea ecx, [ebp - 1]
lea eax, [esp + ebp + 0x47]
add ecx, edi
cmp edi, eax
ja 0x101dfeb5
lea eax, [esp + 0x48]
cmp ecx, eax
jae 0x101dffbb
lea eax, [ebp - 1]
add eax, esi
cmp edi, eax
ja 0x101dfec6
cmp ecx, esi
jae 0x101dffbb
cmp ebp, 0x40
jb 0x101dff8f
mov ebx, esi
mov ecx, ebp
sub ebx, edi
and ecx, 0x3f
mov dword [esp + 0x18], ebx
mov eax, ebp
mov ebp, dword [esp + 0x18]
lea ebx, [esp + 0x48]
sub ebx, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], ebx
sub eax, ecx
lea ebx, [esp + 0x58]
mov dword [esp + 0x3c], eax
sub ebx, edi
lea ecx, [esi + 0x30]
mov esi, dword [esp + 0x30]
lea eax, [edi + 0x10]
mov dword [esp + 0x34], ebx
lea ebx, [esp + 0x68]
sub ebx, edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x38], ebx
nop dword [eax + eax]
movups xmm0, xmmword [ecx - 0x30]
mov ebx, dword [esp + 0x38]
lea ecx, [ecx + 0x40]
movups xmm1, xmmword [esp + edx + 0x48]
add edx, 0x40
lea eax, [eax + 0x40]
pxor xmm1, xmm0
movups xmm0, xmmword [eax + ebp - 0x40]
movups xmmword [eax - 0x50], xmm1
movups xmm1, xmmword [esi + eax - 0x40]
pxor xmm1, xmm0
movups xmm0, xmmword [ecx - 0x50]
movups xmmword [eax - 0x40], xmm1
movups xmm1, xmmword [edi + eax - 0x40]
pxor xmm1, xmm0
movups xmm0, xmmword [ecx - 0x40]
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [ebx + eax - 0x40]
mov ebx, dword [esp + 0x24]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x3c]
jb 0x101dff20
cmp dword [esp + 0x40], 8
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x6c]
jb 0x101dffbb
mov eax, ebp
and eax, 0xfffffff8
nop dword [eax]
nop dword [eax + eax]
movq xmm1, qword [esi + edx]
movq xmm0, qword [esp + edx + 0x48]
pxor xmm1, xmm0
movq qword [edi + edx], xmm1
add edx, 8
cmp edx, eax
jb 0x101dffa0
lea eax, [ebx + 0x18]
mov dword [esp + 0x18], eax
cmp edx, ebp
jae 0x101dffe8
lea eax, [esp + 0x48]
sub esi, eax
sub edi, eax
nop
lea ecx, [esp + 0x48]
add ecx, edx
inc edx
mov al, byte [ecx + esi]
xor al, byte [ecx]
mov byte [ecx + edi], al
cmp edx, ebp
jb 0x101dffd0
lea esi, [ebx + 0x18]
jmp 0x101dffec
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
lea edi, [ebx + 0x18]
mov ebp, dword [esp + 0x14]
cmp ecx, 0x10
jae 0x101e0014
mov eax, 0x10
sub eax, ecx
push eax
lea eax, [ecx + ebx]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov esi, edi
push dword [esp + 0x20]
lea eax, [esp + 0x4c]
push eax
push ebx
call dword [esp + 0x28]
mov eax, dword [esp + 0x54]
add esp, 0xc
xor dword [ebp], eax
mov eax, dword [esp + 0x4c]
xor dword [ebp + 4], eax
mov eax, dword [esp + 0x50]
xor dword [esi], eax
mov eax, dword [esp + 0x54]
xor dword [esi + 4], eax
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x58]
pop edi
pop esi
mov byte [ebx], al
xor eax, eax
pop ebp
pop ebx
xor ecx, esp
call fcn.100b9f43
add esp, 0x4c
ret