Function at 0x5bfc90
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov ebp, dword [esp + 0x24]
cmp dword [ebp + 0xc], 0
je 0x5bfcdb
push 0x135
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
push 0x1c
push str.external_boringssl_src_crypto_fipsmodule_ec_scalar.c
push 0x85
push 0
push 0xf
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor eax, eax
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 0x1c]
mov esi, dword [edi + 0xc]
mov ebx, dword [ebp + 4]
mov eax, ebx
sub eax, esi
jbe 0x5bfe3f
mov ecx, dword [ebp]
xor edx, edx
mov edi, esi
mov esi, eax
mov dword [esp], edi
mov eax, edi
cmp esi, 8
jb 0x5bfe0a
mov dword [esp + 4], esi
lea edx, [esi - 8]
mov eax, edx
shr eax, 3
inc eax
mov ebp, eax
and ebp, 3
cmp edx, 0x18
jae 0x5bfd2c
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
mov esi, dword [esp]
jmp 0x5bfda7
and eax, 0xfffffffc
mov esi, dword [esp]
lea edx, [ecx + esi*4]
add edx, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[eax + eax]
movdqu xmm2, xmmword [edx + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edx + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edx + edi*4 - 0x50]
movdqu xmm3, xmmword [edx + edi*4 - 0x40]
movdqu xmm4, xmmword [edx + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edx + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edx + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edx + edi*4]
por xmm1, xmm2
add edi, 0x20
add eax, 0xfffffffc
jne 0x5bfd50
mov eax, dword [esp + 4]
and eax, 0xfffffff8
test ebp, ebp
je 0x5bfdda
add edi, esi
lea edx, [ecx + edi*4]
add edx, 0x10
shl ebp, 5
xor edi, edi
nop
movdqu xmm2, xmmword [edx + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edx + edi]
por xmm1, xmm2
add edi, 0x20
cmp ebp, edi
jne 0x5bfdc0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edx, xmm0
cmp dword [esp + 4], eax
jne 0x5bfe04
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
jmp 0x5bfe28
add eax, esi
mov ebp, dword [esp + 0x24]
mov esi, dword [esp]
mov edi, dword [esp + 0x1c]
nop word cs:[eax + eax]
or edx, dword [ecx + eax*4]
inc eax
cmp ebx, eax
jne 0x5bfe20
mov ebx, esi
test edx, edx
je 0x5bfe3f
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x5bfcad
mov eax, dword [esp + 0x20]
shl esi, 2
test esi, esi
je 0x5bfe5a
push esi
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, dword [esp + 0x2c]
add esp, 0xc
shl ebx, 2
test ebx, ebx
je 0x5bfe72
push ebx
push dword [ebp]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [edi + 0xc]
test edx, edx
je 0x5bfcb9
mov ecx, dword [edi + 8]
cmp edx, 1
mov dword [esp + 4], edx
jne 0x5bfe8f
xor eax, eax
xor esi, esi
jmp 0x5bfede
and edx, 0xfffffffe
mov dword [esp], edx
mov ebx, eax
xor eax, eax
xor esi, esi
nop dword [eax + eax]
mov edx, dword [ebx + esi*4]
mov ebp, dword [ecx + esi*4]
mov edi, edx
sub edi, ebp
xor ebp, edx
xor edi, edx
or edi, ebp
xor edi, edx
mov edx, dword [ebx + esi*4 + 4]
sar edi, 0x1f
test ebp, ebp
mov ebp, dword [ecx + esi*4 + 4]
cmove edi, eax
mov eax, edx
sub eax, ebp
xor ebp, edx
xor eax, edx
or eax, ebp
xor eax, edx
sar eax, 0x1f
test ebp, ebp
cmove eax, edi
add esi, 2
cmp dword [esp], esi
jne 0x5bfea0
test byte [esp + 4], 1
je 0x5bff03
mov edx, dword [esp + 0x20]
mov edx, dword [edx + esi*4]
mov ecx, dword [ecx + esi*4]
mov esi, edx
sub esi, ecx
xor ecx, edx
xor esi, edx
or esi, ecx
xor esi, edx
sar esi, 0x1f
test ecx, ecx
cmovne eax, esi
test eax, eax
jns 0x5bfcb9
mov eax, 1
jmp 0x5bfcd3