Function at 0x4c4c10
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov edx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
mov ecx, dword [esp + 0xb4]
test edx, edx
jne 0x4c4c4e
push 0x4b59a0
push 0x537f54
mov esi, ecx
call sym.fastboot.exe_CRYPTO_once
mov ecx, esi
add esp, 8
mov edx, 0x537f58
mov ebx, dword [edx + 4]
test edi, edi
cmove edi, edx
xor esi, esi
lea eax, [ebx + ebx + 2]
cmp eax, ecx
jbe 0x4c4c80
push 0x1de
push str.external_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x85
push 0
push 4
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
jmp 0x4c4ed8
mov ebp, ebx
mov dword [esp + 4], edx
not ebp
add ebp, ecx
push ebp
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x4c4ebe
mov esi, eax
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0x10]
mov edx, ebx
lea eax, [eax + ebx + 1]
push edi
push ebp
mov dword [esp + 8], eax
push eax
call fcn.004c4aa0
add esp, 0xc
test eax, eax
je 0x4c4ed8
test ebx, ebx
je 0x4c4d2d
xor eax, eax
cmp ebx, 0x1f
jbe 0x4c4d11
mov eax, ebx
mov edx, ebx
mov ebx, dword [esp + 0xb0]
xor ecx, ecx
and eax, 0xffffffe0
movups xmm0, xmmword [ebx + ecx + 1]
movups xmm2, xmmword [esp + ecx + 0x10]
movups xmm1, xmmword [ebx + ecx + 0x11]
movups xmm3, xmmword [esp + ecx + 0x20]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [esp + ecx + 0x10], xmm2
movups xmmword [esp + ecx + 0x20], xmm3
add ecx, 0x20
cmp eax, ecx
jne 0x4c4ce0
mov ebx, edx
cmp edx, eax
je 0x4c4d2d
mov ecx, dword [esp + 0xb0]
inc ecx
nop dword [eax]
movzx edx, byte [ecx + eax]
xor byte [esp + eax + 0x10], dl
inc eax
cmp ebx, eax
jne 0x4c4d20
mov ecx, esi
mov edx, ebp
push edi
push ebx
lea eax, [esp + 0x18]
push eax
call fcn.004c4aa0
add esp, 0xc
test eax, eax
je 0x4c4ed8
mov ecx, dword [esp + 0xbc]
mov edi, dword [esp]
test ebp, ebp
je 0x4c4dec
xor edx, edx
cmp ebp, 0x1f
jbe 0x4c4de0
mov eax, dword [esp + 0xb4]
mov edi, dword [esp + 0xb0]
add eax, edi
mov edi, dword [esp]
cmp esi, eax
jae 0x4c4d7f
lea eax, [esi + ebp]
cmp edi, eax
jb 0x4c4de0
mov eax, dword [esp + 0xb0]
mov edx, ebp
mov dword [esp + 8], ebx
and edx, 0xffffffe0
lea edi, [ebx + eax + 0x11]
xor eax, eax
nop word cs:[eax + eax]
nop
movups xmm0, xmmword [edi + eax - 0x10]
movups xmm2, xmmword [esi + eax]
movups xmm1, xmmword [edi + eax]
movups xmm3, xmmword [esi + eax + 0x10]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [esi + eax], xmm2
movups xmmword [esi + eax + 0x10], xmm3
add eax, 0x20
cmp edx, eax
jne 0x4c4da0
mov ebx, dword [esp + 8]
mov edi, dword [esp]
cmp ebp, edx
je 0x4c4dec
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [edi + edx]
xor byte [esi + edx], al
inc edx
cmp ebp, edx
jne 0x4c4de0
sub esp, 4
lea edi, [esp + 0x54]
push dword [esp + 8]
push 0
push edi
push ecx
push dword [esp + 0xcc]
call sym.fastboot.exe_EVP_Digest
add esp, 0x18
test eax, eax
je 0x4c4ed8
push ebx
push edi
push esi
call sym.fastboot.exe_CRYPTO_memcmp
add esp, 0xc
cmp ebx, ebp
jae 0x4c4eee
mov ecx, dword [esp + 0xb0]
mov edx, eax
dec eax
mov dword [esp + 8], ebp
mov ebp, ebx
mov dword [esp + 0xc], esi
not edx
movzx ecx, byte [ecx]
dec ecx
and ecx, edx
mov edx, 0xffffffff
and ecx, eax
lea eax, [ebx + ebx]
not eax
sar ecx, 0x1f
add eax, dword [esp + 0xb4]
not ecx
mov dword [esp + 4], ecx
mov dword [esp], eax
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [esp + 0xc]
mov edi, edx
movzx esi, byte [ecx + ebp]
mov edx, esi
dec esi
xor edx, 1
sar esi, 0x1f
dec edx
not esi
sar edx, 0x1f
mov ebx, edx
not edx
and ebx, edi
and edx, edi
mov ecx, ebx
not ebx
and esi, edx
and ecx, ebp
and eax, ebx
or dword [esp + 4], esi
mov esi, dword [esp + 0xc]
inc ebp
or eax, ecx
dec dword [esp]
jne 0x4c4e70
or edx, dword [esp + 4]
mov ebp, dword [esp + 8]
inc eax
test edx, edx
jne 0x4c4c60
jmp 0x4c4f00
push 0x19f
push str.external_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x41
push 0
push 4
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor esi, esi
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
xor eax, eax
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 1
mov edx, 0xffffffff
test edx, edx
jne 0x4c4c60
sub ebp, eax
cmp ebp, dword [esp + 0xac]
jbe 0x4c4f1c
push 0x1d2
push str.external_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x71
jmp 0x4c4c6f
mov edi, dword [esp + 0xa8]
test ebp, ebp
je 0x4c4f3c
mov ecx, esi
add ecx, eax
push ebp
push ecx
push dword [esp + 0xac]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [edi], ebp
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, 1
jmp 0x4c4ee3