Function at 0x448370
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [edx + 4]
mov eax, dword [edx]
lea edi, [ebp*4 + 4]
nop dword [eax + eax]
test ebp, ebp
je 0x448412
mov ebx, ebp
dec ebp
add edi, 0xfffffffc
mov esi, dword [eax + ebx*4 - 4]
test esi, esi
je 0x448390
test ebp, ebp
jne 0x4483aa
cmp dword [eax], ecx
jbe 0x448412
lea eax, [ebp + 1]
mov dword [esp + 4], eax
push eax
push dword [esp + 0x28]
call fcn.004350a0
add esp, 8
xor ecx, ecx
test eax, eax
je 0x44842c
mov eax, esi
shr eax, 1
or eax, esi
mov ecx, eax
shr ecx, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or eax, ecx
mov ecx, eax
shr ecx, 8
or ecx, eax
mov eax, dword [esp + 0x2c]
mov esi, ecx
shr esi, 0x10
or esi, ecx
mov ecx, esi
shr ecx, 1
test ebp, ebp
jne 0x448436
cmp ecx, eax
jae 0x448436
push 0x137
push str.external_boringssl_src_crypto_fipsmodule_bn_random.c
push 0x6c
push 0
push 3
call sym.fastboot.exe_ERR_put_error
xor ecx, ecx
add esp, 0x14
jmp 0x44842c
push 0xe2
push str.external_boringssl_src_crypto_fipsmodule_bn_random.c
push 0x6c
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ecx, ecx
mov eax, ecx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 8], ecx
push 0x526b67
push edi
mov eax, dword [esp + 0x2c]
mov edi, eax
push dword [eax]
call fcn.004497a0
mov ecx, dword [esp + 0x38]
mov edx, ecx
add esp, 0xc
mov eax, dword [edi]
mov ecx, dword [esp + 0x30]
and dword [eax + ebx*4 - 4], esi
test edx, edx
mov eax, dword [edi]
mov ecx, dword [ecx]
mov dword [esp + 0xc], ecx
je 0x448482
test ebp, ebp
je 0x448490
cmp ebp, 7
ja 0x448494
mov edi, dword [esp + 4]
xor esi, esi
mov edx, 1
jmp 0x4484f0
mov edx, eax
mov dword [esp], 0xffffffff
jmp 0x448523
xor esi, esi
jmp 0x4484f8
mov ecx, ebp
lea esi, [eax + 0x14]
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
lea edx, [ecx + 1]
mov edi, ecx
nop dword [eax]
movdqu xmm2, xmmword [esi - 0x10]
movdqu xmm3, xmmword [esi]
add esi, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x4484b0
por xmm1, xmm0
mov edi, dword [esp + 4]
cmp ebp, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd esi, xmm1
je 0x4484f8
nop dword [eax + eax]
or esi, dword [eax + edx*4]
inc edx
cmp edi, edx
jne 0x4484f0
mov edi, dword [eax]
mov edx, eax
mov eax, dword [esp + 0x2c]
mov ecx, esi
dec esi
not ecx
mov dword [esp], ecx
mov ebp, edi
mov ecx, edi
sub ebp, eax
xor ecx, eax
xor ebp, edi
or ebp, ecx
xor ebp, edi
and ebp, dword [esp]
and ebp, esi
sar ebp, 0x1f
not ebp
mov dword [esp], ebp
xor esi, esi
xor edi, edi
mov eax, edx
nop dword [eax]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + edi*4]
mov edx, dword [edx + edi*4]
mov ebp, ecx
sub ebp, edx
xor edx, ecx
xor ebp, ecx
or ebp, edx
xor ebp, ecx
sar ebp, 0x1f
mov ecx, ebp
not ecx
and ecx, 1
or ecx, ebp
mov ebp, edx
dec edx
xor ebp, 0x80000000
test edx, ebp
cmovns esi, ecx
inc edi
cmp dword [esp + 4], edi
jne 0x448530
mov ecx, dword [esp + 0x2c]
shr esi, 0x1f
mov eax, dword [esp + 0x28]
and esi, dword [esp]
mov edi, ecx
mov ecx, dword [esp + 0x24]
mov dword [eax], esi
mov eax, esi
dec esi
and edi, esi
neg eax
mov edx, ecx
mov ecx, dword [ecx]
or dword [ecx], edi
mov ecx, 1
and esi, dword [esp + 8]
or esi, eax
mov eax, dword [edx]
and dword [eax + ebx*4 - 4], esi
mov dword [edx + 0xc], 0
mov eax, dword [esp + 4]
mov dword [edx + 4], eax
jmp 0x44842c