Function at 0x1014ffd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
mov eax, dword [esi + 0xc]
add eax, ebx
cmp eax, dword [esi + 8]
jle 0x1014fff5
mov byte [esi + 0x10], 1
xor al, al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebp + 8]
push edi
test dl, 3
je 0x101500cb
cmp ebx, 8
jl 0x101500cb
movzx eax, byte [edx]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov dword [ebp - 4], eax
mov eax, ecx
sub eax, edi
cmp eax, 8
jge 0x1015002c
mov dword [esi + 0xc], ecx
mov byte [esi + 0x10], 1
jmp 0x101500b8
mov ecx, edi
lea eax, [edi + 8]
sar ecx, 5
mov ebx, edi
mov dword [esi + 0xc], eax
and ebx, 0x1f
mov dword [ebp - 8], ebx
lea edi, [ecx*4]
lea eax, [edi + 4]
cmp eax, dword [esi + 4]
jbe 0x10150066
push 0x207
push str.C:Users_adminDesktopGamer_Moments222FedorawareFedoraware_TF2_srcSDKIncludes_bitbuf.h
push str._iDWord__4__sizeof_long______unsigned_int_m_nDataBytes
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov edx, dword [esi]
mov cl, bl
rol dword [ebp - 4], cl
add edx, edi
mov eax, 0x1f
mov dword [ebp - 0xc], edx
sub eax, ebx
mov ecx, 0x7f
shrx edi, ecx, eax
mov ebx, dword [edx]
mov eax, edi
and eax, 1
mov ecx, dword [edx + eax*4]
lea edx, [edx + eax*4]
xor ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
and ecx, edi
xor dword [edx], ecx
mov ecx, ebx
xor ecx, dword [ebp - 4]
mov edx, 0xff
shlx eax, edx, eax
mov edx, dword [ebp + 8]
and ecx, eax
mov eax, dword [ebp - 0xc]
xor ecx, ebx
mov ebx, dword [ebp + 0xc]
mov dword [eax], ecx
inc edx
sub ebx, 8
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ebx
test dl, 3
jne 0x10150002
cmp ebx, 0x20
jl 0x101501e7
mov ecx, dword [esi + 0xc]
test cl, 7
jne 0x10150148
sar ecx, 3
mov edi, ebx
add ecx, dword [esi]
sar edi, 3
mov eax, ecx
or eax, edi
mov dword [ebp + 8], edi
or eax, edx
test al, 3
jne 0x10150110
sar edi, 2
test edi, edi
jle 0x10150131
mov ebx, edx
sub ebx, ecx
nop
mov eax, dword [ebx + ecx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edi, 1
jne 0x10150100
jmp 0x1015012e
test edi, edi
jle 0x10150134
mov ebx, edx
sub ebx, ecx
nop dword [eax + eax]
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edi, 1
jne 0x10150120
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
lea eax, [edi*8]
add edx, edi
sub ebx, eax
mov dword [ebp + 8], edx
add dword [esi + 0xc], eax
mov ecx, dword [esi + 0xc]
cmp ebx, 0x20
jl 0x101501e7
mov edi, ecx
mov eax, 0x20
and edi, 0x1f
sar ecx, 5
sub eax, edi
mov dword [ebp - 8], edi
mov dword [ebp - 4], eax
imul eax, edi, 0x84
mov eax, dword [eax + 0x1028dc38]
mov dword [ebp - 0xc], eax
mov eax, dword [edi*4 + 0x1028dbb8]
mov dword [ebp - 0x10], eax
mov eax, dword [esi]
lea edi, [eax + ecx*4]
mov eax, ebx
shr eax, 5
mov dword [ebp + 8], eax
neg eax
shl eax, 5
add ebx, eax
mov dword [ebp + 0xc], ebx
mov ebx, dword [ebp + 8]
nop dword [eax]
mov eax, dword [edx]
lea edi, [edi + 4]
mov ecx, dword [edi - 4]
add edx, 4
and ecx, dword [ebp - 0xc]
mov dword [ebp + 8], edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
shlx eax, eax, edx
mov edx, dword [ebp + 8]
or ecx, eax
mov eax, dword [ebp - 4]
mov dword [edi - 4], ecx
cmp eax, 0x20
jae 0x101501db
mov ecx, dword [edi]
and ecx, dword [ebp - 0x10]
shrx eax, dword [ebp - 0x14], eax
or ecx, eax
mov dword [edi], ecx
add dword [esi + 0xc], 0x20
sub ebx, 1
jne 0x101501a0
mov ebx, dword [ebp + 0xc]
cmp ebx, 8
jl 0x101502bb
mov eax, ebx
shr eax, 3
mov dword [ebp - 8], eax
neg eax
lea ebx, [ebx + eax*8]
mov dword [ebp + 0xc], ebx
movzx eax, byte [edx]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov dword [ebp - 4], eax
mov eax, ecx
sub eax, edi
cmp eax, 8
jge 0x10150221
mov dword [esi + 0xc], ecx
mov byte [esi + 0x10], 1
jmp 0x101502aa
mov ecx, edi
lea eax, [edi + 8]
sar ecx, 5
mov ebx, edi
mov dword [esi + 0xc], eax
and ebx, 0x1f
mov dword [ebp - 0x14], ebx
lea edi, [ecx*4]
lea eax, [edi + 4]
cmp eax, dword [esi + 4]
jbe 0x1015025b
push 0x207
push str.C:Users_adminDesktopGamer_Moments222FedorawareFedoraware_TF2_srcSDKIncludes_bitbuf.h
push str._iDWord__4__sizeof_long______unsigned_int_m_nDataBytes
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov edx, dword [esi]
mov cl, bl
rol dword [ebp - 4], cl
add edx, edi
mov eax, 0x1f
mov dword [ebp - 0x10], edx
sub eax, ebx
mov ecx, 0x7f
shrx edi, ecx, eax
mov ebx, dword [edx]
mov eax, edi
and eax, 1
mov ecx, dword [edx + eax*4]
lea edx, [edx + eax*4]
xor ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
and ecx, edi
xor dword [edx], ecx
mov edx, 0xff
mov ecx, ebx
xor ecx, dword [ebp - 4]
shlx eax, edx, eax
mov edx, dword [ebp + 8]
and ecx, eax
mov eax, dword [ebp - 0x10]
xor ecx, ebx
mov dword [eax], ecx
inc edx
sub dword [ebp - 8], 1
mov dword [ebp + 8], edx
jne 0x10150200
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x1015038a
mov ecx, dword [esi + 8]
mov eax, ecx
movzx edi, byte [edx]
mov edx, dword [esi + 0xc]
sub eax, edx
cmp eax, ebx
jge 0x101502eb
mov byte [esi + 0x10], 1
cmp byte [esi + 0x10], 0
pop edi
mov dword [esi + 0xc], ecx
sete al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, edx
mov ecx, edx
and eax, 0x1f
sar ecx, 5
mov dword [ebp + 0xc], eax
lea eax, [edx + ebx]
mov dword [esi + 0xc], eax
lea eax, [ecx*4]
mov dword [ebp + 8], eax
add eax, 4
cmp eax, dword [esi + 4]
jbe 0x10150328
push 0x207
push str.C:Users_adminDesktopGamer_Moments222FedorawareFedoraware_TF2_srcSDKIncludes_bitbuf.h
push str._iDWord__4__sizeof_long______unsigned_int_m_nDataBytes
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov cl, byte [ebp + 0xc]
lea eax, [ebx - 1]
mov edx, dword [esi]
add edx, dword [ebp + 8]
rol edi, cl
mov ecx, 1
shlx eax, ecx, eax
mov dword [ebp - 0x14], eax
mov ecx, 0x1f
sub ecx, dword [ebp + 0xc]
dec eax
mov ebx, dword [edx]
mov dword [ebp + 8], edi
shrx edi, eax, ecx
mov eax, edi
mov dword [ebp - 0x10], edx
and eax, 1
mov ecx, dword [edx + eax*4]
lea edx, [edx + eax*4]
xor ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
and ecx, edi
xor dword [edx], ecx
mov ecx, dword [ebp + 0xc]
lea eax, [eax*2 - 1]
shlx ecx, eax, ecx
mov eax, ebx
xor eax, dword [ebp + 8]
and ecx, eax
mov eax, dword [ebp - 0x10]
xor ecx, ebx
mov dword [eax], ecx
cmp byte [esi + 0x10], 0
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 8