Function at 0x10137770
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4c
call fcn.10183130
mov eax, dword [0x1022ee64]
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 0x101377d4
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 0x101377d8
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 0x10137813
movzx eax, byte [ebx + edx]
or ecx, eax
mov byte [ebx + edx], 0
inc edx
shl ecx, 8
cmp edx, 0xf
jb 0x101377f4
lea edx, [ebx + 0x10]
lea esi, [ebx + 0x20]
mov dword [esp + 0x14], edx
jmp 0x10137817
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 0x1013783f
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.10182c97
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 0x10137876
ja 0x1013785e
cmp dword [esi], 0
jbe 0x10137876
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.10182c97
add esp, 0x4c
ret
mov esi, dword [esp + 0x64]
cmp ebp, 0x10
jb 0x10137916
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 0x101378d1
test eax, eax
jne 0x101378c5
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 0x10137890
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 0x10137aa8
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 0x10137931
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 0x10137a7a
lea ecx, [ebp - 1]
lea eax, [esp + ebp + 0x47]
add ecx, edi
cmp edi, eax
ja 0x10137985
lea eax, [esp + 0x48]
cmp ecx, eax
jae 0x10137a7a
lea eax, [ebp - 1]
add eax, esi
cmp edi, eax
ja 0x10137996
cmp ecx, esi
jae 0x10137a7a
cmp ebp, 0x40
jb 0x10137a5b
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]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax + ebp - 0x40]
movups xmm1, xmmword [esi + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [ecx - 0x50]
movups xmm1, xmmword [edi + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [ebx + eax - 0x40]
mov ebx, dword [esp + 0x24]
movups xmm0, xmmword [ecx - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x3c]
jb 0x101379f0
cmp dword [esp + 0x40], 8
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x6c]
jb 0x10137a7a
mov eax, ebp
and eax, 0xfffffff8
movq xmm1, qword [esi + edx]
movq xmm0, qword [esp + edx + 0x48]
xorps xmm1, xmm0
movq qword [edi + edx], xmm1
add edx, 8
cmp edx, eax
jb 0x10137a60
lea eax, [ebx + 0x18]
mov dword [esp + 0x18], eax
cmp edx, ebp
jae 0x10137aa8
lea eax, [esp + 0x48]
sub esi, eax
sub edi, eax
nop dword [eax]
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 0x10137a90
lea esi, [ebx + 0x18]
jmp 0x10137aac
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
lea edi, [ebx + 0x18]
mov ebp, dword [esp + 0x14]
cmp ecx, 0x10
jae 0x10137ad4
mov eax, 0x10
sub eax, ecx
push eax
lea eax, [ecx + ebx]
push 0
push eax
call fcn.10184ad0
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.10182c97
add esp, 0x4c
ret