Function at 0x5d6b10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov edi, dword [ebp + 0x24]
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 0xc]
test eax, eax
jne 0x5d6b40
push 0x5be020
push 0x9b6e38
call sym.adb.exe_CRYPTO_once
add esp, 8
mov eax, 0x9b6e3c
test edi, edi
cmove edi, eax
mov edx, dword [eax + 4]
lea ecx, [edx + edx]
add ecx, 2
cmp ecx, esi
jbe 0x5d6b59
push 0x147
jmp 0x5d6b88
mov dword [esp + 8], edx
lea ecx, [edx + edx]
mov ebx, ecx
not ebx
lea edx, [esi + ebx]
dec edx
cmp edx, dword [ebp + 0x14]
jae 0x5d6b7b
push 0x14d
push str.external_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x72
jmp 0x5d6b8f
dec esi
or ecx, 1
cmp esi, ecx
jae 0x5d6ba7
push 0x152
push str.external_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x7e
push 0
push 4
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor edi, edi
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x18], edi
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 8]
mov byte [ecx], 0
mov edi, dword [esp + 8]
add ecx, edi
inc ecx
sub esp, 4
push eax
push 0
mov dword [esp + 0x10], ecx
push ecx
push dword [ebp + 0x1c]
push edx
call sym.adb.exe_EVP_Digest
add esp, 0x18
xor edi, edi
test eax, eax
je 0x5d6ded
mov edi, esi
sub edi, dword [ebp + 0x14]
add ebx, edi
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
je 0x5d6c07
mov eax, dword [esp + 8]
add eax, ecx
push ebx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add esp, 0xc
mov ebx, eax
not eax
add edi, eax
mov byte [ecx + edi], 1
mov eax, dword [ebp + 8]
lea edi, [eax + 1]
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x5d6c35
mov eax, dword [esp + 4]
add eax, esi
sub eax, edx
sub eax, ebx
push edx
push dword [ebp + 0x10]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esp + 0x10], edi
push 0x8bf7c3
push ebx
push edi
call fcn.005b67d0
add esp, 0xc
mov edi, esi
sub edi, ebx
push edi
call sym.adb.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x5d6df4
mov dword [esp + 0xc], eax
mov ecx, eax
mov dword [esp + 0x14], edi
mov edx, edi
push dword [esp + 0x18]
push ebx
push dword [esp + 0x18]
call fcn.005d6fc0
add esp, 0xc
test eax, eax
je 0x5d6e15
cmp esi, ebx
mov esi, dword [esp + 0xc]
je 0x5d6e69
mov eax, dword [esp + 0x14]
cmp eax, 2
mov ecx, 1
cmovae ecx, eax
mov eax, ecx
xor ecx, ecx
cmp eax, 8
jb 0x5d6dbb
lea edx, [esi + eax]
cmp dword [esp + 4], edx
jae 0x5d6cc7
mov edx, dword [esp + 8]
add edx, eax
mov ebx, dword [ebp + 8]
add edx, ebx
inc edx
cmp esi, edx
jb 0x5d6dbb
xor ecx, ecx
cmp eax, 0x20
jb 0x5d6d8c
lea ecx, [eax - 0x20]
mov edx, ecx
shr edx, 5
inc edx
mov edi, edx
xor edx, edx
cmp ecx, 0x20
mov ebx, esi
jb 0x5d6d46
mov ecx, edi
and ecx, 0xfffffffe
mov edx, dword [esp + 8]
mov esi, dword [ebp + 8]
add esi, edx
add esi, 0x31
xor edx, edx
movups xmm0, xmmword [ebx + edx]
movups xmm1, xmmword [ebx + edx + 0x10]
movups xmm2, xmmword [esi + edx - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [esi + edx - 0x20]
xorps xmm0, xmm1
movups xmmword [esi + edx - 0x30], xmm2
movups xmmword [esi + edx - 0x20], xmm0
movups xmm0, xmmword [ebx + edx + 0x20]
movups xmm1, xmmword [ebx + edx + 0x30]
movups xmm2, xmmword [esi + edx - 0x10]
xorps xmm2, xmm0
movups xmm0, xmmword [esi + edx]
xorps xmm0, xmm1
movups xmmword [esi + edx - 0x10], xmm2
movups xmmword [esi + edx], xmm0
add edx, 0x40
add ecx, 0xfffffffe
jne 0x5d6cf9
mov ecx, eax
and ecx, 0xffffffe0
mov esi, eax
mov eax, edi
test al, 1
mov eax, esi
mov esi, ebx
je 0x5d6d80
movups xmm0, xmmword [esi + edx]
movups xmm1, xmmword [esi + edx + 0x10]
mov edi, eax
mov eax, dword [esp + 4]
movups xmm2, xmmword [eax + edx]
xorps xmm2, xmm0
movups xmm0, xmmword [eax + edx + 0x10]
xorps xmm0, xmm1
movups xmmword [eax + edx], xmm2
movups xmmword [eax + edx + 0x10], xmm0
mov eax, edi
cmp eax, ecx
je 0x5d6e69
test al, 0x18
je 0x5d6dbb
mov edx, ecx
mov edi, eax
mov ecx, eax
and ecx, 0xfffffff8
mov eax, dword [esp + 4]
movsd xmm0, qword [esi + edx]
movsd xmm1, qword [eax + edx]
xorps xmm1, xmm0
movlps qword [eax + edx], xmm1
add edx, 8
cmp ecx, edx
jne 0x5d6d99
mov eax, edi
cmp edi, ecx
je 0x5d6e69
mov edi, ecx
not edi
add edi, eax
mov dword [esp + 0x1c], eax
mov esi, eax
and esi, 3
je 0x5d6e20
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 4]
nop word cs:[eax + eax]
movzx ebx, byte [edx + ecx]
xor byte [eax + ecx], bl
inc ecx
dec esi
jne 0x5d6de0
jmp 0x5d6e24
xor esi, esi
jmp 0x5d6fac
push 0x169
push str.external_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x41
push 0
push 4
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor esi, esi
xor edi, edi
jmp 0x5d6fac
mov esi, dword [esp + 0xc]
xor edi, edi
jmp 0x5d6fac
mov edx, dword [esp + 0xc]
cmp edi, 3
mov esi, edx
mov edi, dword [esp + 0x1c]
jb 0x5d6e69
mov edx, dword [esp + 8]
mov ebx, dword [ebp + 8]
add edx, ebx
add edx, 4
nop dword [eax + eax]
movzx ebx, byte [esi + ecx]
xor byte [edx + ecx - 3], bl
movzx ebx, byte [esi + ecx + 1]
xor byte [edx + ecx - 2], bl
movzx ebx, byte [esi + ecx + 2]
xor byte [edx + ecx - 1], bl
movzx ebx, byte [esi + ecx + 3]
xor byte [edx + ecx], bl
add ecx, 4
cmp edi, ecx
jne 0x5d6e40
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0x30], xmm0
movaps xmmword [esp + 0x20], xmm0
lea ecx, [esp + 0x20]
mov ebx, dword [esp + 8]
mov edx, ebx
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0xc]
call fcn.005d6fc0
add esp, 0xc
test eax, eax
mov edi, 0
je 0x5d6fac
mov edi, 1
test ebx, ebx
je 0x5d6fac
xor eax, eax
cmp ebx, 8
mov edx, dword [esp + 0x10]
jb 0x5d6f9f
xor eax, eax
cmp ebx, 0x20
jb 0x5d6f7d
lea eax, [ebx - 0x20]
mov ecx, eax
shr ecx, 5
inc ecx
mov dword [esp + 4], ecx
xor ecx, ecx
cmp eax, 0x20
mov edx, dword [ebp + 8]
jb 0x5d6f42
mov eax, dword [esp + 4]
and eax, 0xfffffffe
xor ecx, ecx
movups xmm0, xmmword [esp + ecx + 0x20]
movups xmm1, xmmword [esp + ecx + 0x30]
movups xmm2, xmmword [edx + ecx + 1]
xorps xmm2, xmm0
movups xmm0, xmmword [edx + ecx + 0x11]
xorps xmm0, xmm1
movups xmmword [edx + ecx + 1], xmm2
movups xmmword [edx + ecx + 0x11], xmm0
movups xmm0, xmmword [esp + ecx + 0x40]
movups xmm1, xmmword [esp + ecx + 0x50]
movups xmm2, xmmword [edx + ecx + 0x21]
xorps xmm2, xmm0
movups xmm0, xmmword [edx + ecx + 0x31]
xorps xmm0, xmm1
movups xmmword [edx + ecx + 0x21], xmm2
movups xmmword [edx + ecx + 0x31], xmm0
add ecx, 0x40
add eax, 0xfffffffe
jne 0x5d6ef2
mov eax, ebx
and eax, 0xffffffe0
test byte [esp + 4], 1
mov edx, dword [esp + 0x10]
je 0x5d6f74
movups xmm0, xmmword [esp + ecx + 0x20]
movups xmm1, xmmword [esp + ecx + 0x30]
movups xmm2, xmmword [edx + ecx]
xorps xmm2, xmm0
movups xmm0, xmmword [edx + ecx + 0x10]
xorps xmm0, xmm1
movups xmmword [edx + ecx], xmm2
movups xmmword [edx + ecx + 0x10], xmm0
cmp ebx, eax
je 0x5d6fac
test bl, 0x18
je 0x5d6f9f
mov ecx, eax
mov eax, ebx
and eax, 0xfffffff8
movsd xmm0, qword [esp + ecx + 0x20]
movsd xmm1, qword [edx + ecx]
xorps xmm1, xmm0
movlps qword [edx + ecx], xmm1
add ecx, 8
cmp eax, ecx
jne 0x5d6f84
jmp 0x5d6fa8
movzx ecx, byte [esp + eax + 0x20]
xor byte [edx + eax], cl
inc eax
cmp ebx, eax
jne 0x5d6f9f
push esi
call sym.adb.exe_OPENSSL_free
add esp, 4
jmp 0x5d6b9d