Function at 0x6c1f80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov edi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x72a00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
test edx, edx
jne 0x6c1fbe
push 0x540090
push 0x73007c
mov esi, ecx
call fcn.0065fd50
mov ecx, esi
add esp, 8
mov edx, 0x730080
test edi, edi
cmove edi, edx
mov esi, dword [edx + 4]
lea eax, [esi*2 + 2]
mov dword [ebp - 0x94], 0
cmp eax, ecx
jbe 0x6c201e
push 0x1e4
push str........._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
push 0x85
push 0
push 4
call fcn.006d0e70
add esp, 0x14
mov edi, dword [ebp - 0x94]
push edi
call fcn.0065b9b0
add esp, 4
xor esi, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0066e1f1
mov eax, esi
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x9c], edx
mov ebx, esi
not ebx
add ebx, ecx
push ebx
call fcn.0065b960
add esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x6c21c1
mov eax, dword [ebp + 0x14]
add eax, esi
inc eax
pcmpeqd xmm0, xmm0
lea ecx, [ebp - 0x50]
movdqu xmmword [ecx + 0x30], xmm0
movdqu xmmword [ecx + 0x20], xmm0
movdqu xmmword [ecx + 0x10], xmm0
movdqu xmmword [ecx], xmm0
mov edx, esi
push edi
push ebx
mov dword [ebp - 0xa0], eax
push eax
call fcn.00543620
add esp, 0xc
test eax, eax
je 0x6c1ff6
test esi, esi
je 0x6c2092
mov eax, dword [ebp + 0x14]
inc eax
xor ecx, ecx
mov dl, byte [eax + ecx]
xor byte [ebp + ecx - 0x50], dl
inc ecx
cmp esi, ecx
jne 0x6c2086
mov ecx, dword [ebp - 0x94]
mov edx, ebx
push edi
mov dword [ebp - 0x98], esi
push esi
lea eax, [ebp - 0x50]
push eax
call fcn.00543620
add esp, 0xc
test eax, eax
je 0x6c1ff6
mov ecx, dword [ebp + 0x20]
test ebx, ebx
mov edi, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa0]
je 0x6c20da
xor edx, edx
mov eax, ebx
mov bl, byte [esi + edx]
xor byte [edi + edx], bl
mov ebx, eax
inc edx
cmp eax, edx
jne 0x6c20cb
pcmpeqd xmm0, xmm0
lea esi, [ebp - 0x90]
movdqu xmmword [esi + 0x30], xmm0
movdqu xmmword [esi + 0x20], xmm0
movdqu xmmword [esi + 0x10], xmm0
movdqu xmmword [esi], xmm0
sub esp, 4
push dword [ebp - 0x9c]
push 0
push esi
push ecx
push dword [ebp + 0x1c]
call fcn.0053ff00
add esp, 0x18
test eax, eax
je 0x6c1ffc
push dword [ebp - 0x98]
push esi
push edi
call fcn.0065bac0
add esp, 0xc
mov ecx, eax
not ecx
dec eax
and eax, ecx
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x98]
dec edx
and edx, eax
not edx
sar edx, 0x1f
cmp ecx, ebx
mov dword [ebp - 0xa4], ebx
jae 0x6c21c8
lea ebx, [ecx + ecx]
not ebx
add ebx, dword [ebp + 0x18]
xor edi, edi
dec edi
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x98], ecx
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
movzx ebx, byte [ecx + eax]
mov esi, ebx
xor esi, 1
dec esi
sar esi, 0x1f
mov eax, esi
and eax, edi
mov ecx, eax
not eax
and eax, dword [ebp - 0x9c]
and ecx, dword [ebp - 0x98]
or eax, ecx
not esi
and esi, edi
test ebx, ebx
cmovne ebx, esi
or edx, ebx
mov ebx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x98]
inc ecx
mov dword [ebp - 0x9c], eax
mov edi, esi
dec ebx
jne 0x6c2161
jmp 0x6c21cd
xor edi, edi
jmp 0x6c1ffc
xor eax, eax
xor esi, esi
dec esi
or edx, esi
test edx, edx
jne 0x6c1fdb
inc eax
mov ecx, dword [ebp - 0xa4]
mov esi, ecx
sub esi, eax
cmp esi, dword [ebp + 0x10]
jbe 0x6c21f8
push 0x1d7
push str........._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
push 0x71
jmp 0x6c1fea
mov edi, dword [ebp + 0xc]
cmp ecx, eax
mov ebx, dword [ebp - 0x94]
je 0x6c2216
mov ecx, ebx
add ecx, eax
push esi
push ecx
push dword [ebp + 8]
call fcn.00670ee0
add esp, 0xc
mov dword [edi], esi
push ebx
call fcn.0065b9b0
add esp, 4
xor esi, esi
inc esi
jmp 0x6c2007