Function at 0x4e2e30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xcc
mov esi, dword [esp + 0xe8]
cmp esi, 0x20
je 0x4e2e6a
xor ebx, ebx
cmp esi, 0x10
jne 0x4e3173
push 0x4e2320
push 0x5ab868
call sym.fastboot.exe_CRYPTO_once
add esp, 8
mov eax, 0x5ab870
jmp 0x4e2e81
push 0x4e26c0
push 0x5ab9ec
call sym.fastboot.exe_CRYPTO_once
add esp, 8
mov eax, 0x5ab9f0
mov ecx, dword [esp + 0xe4]
xorps xmm0, xmm0
movups xmmword [esp + 0xac], xmm0
movups xmmword [esp + 0xa0], xmm0
movups xmmword [esp + 0x90], xmm0
movups xmmword [esp + 0x80], xmm0
movups xmmword [esp + 0x70], xmm0
movups xmmword [esp + 0x60], xmm0
movups xmmword [esp + 0x50], xmm0
movups xmmword [esp + 0x40], xmm0
movups xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x20], xmm0
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp], xmm0
sub esp, 4
lea edx, [esp + 4]
push eax
push esi
push ecx
push edx
call sym.fastboot.exe_CMAC_Init
add esp, 0x14
xor ebx, ebx
test eax, eax
je 0x4e30db
mov edi, dword [esp + 0xf0]
mov ebp, dword [esp + 0xec]
mov eax, dword [esp]
mov ecx, dword [esp + 0xb8]
mov esi, dword [eax + 4]
xorps xmm0, xmm0
movups xmmword [esp + 0xbc], xmm0
test ecx, ecx
je 0x4e2f73
mov ebx, esi
sub ebx, ecx
cmp ebx, edi
cmovae ebx, edi
lea edx, [esp + 0xa8]
test ebx, ebx
je 0x4e2f44
add ecx, edx
push ebx
push ebp
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp]
mov ecx, dword [esp + 0xb8]
add ecx, ebx
mov dword [esp + 0xb8], ecx
sub edi, ebx
je 0x4e2fc6
lea ecx, [esp + 0xbc]
push esi
lea edx, [esp + 0xac]
push edx
push ecx
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0x20]
add esp, 0x10
test eax, eax
je 0x4e2fbf
add ebp, ebx
cmp edi, esi
jbe 0x4e2f9d
lea ebx, [esp + 0xbc]
nop
mov eax, dword [esp]
push esi
push ebp
push ebx
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0x20]
add esp, 0x10
test eax, eax
je 0x4e2fbf
add ebp, esi
sub edi, esi
cmp edi, esi
ja 0x4e2f80
test edi, edi
je 0x4e2fb3
lea eax, [esp + 0xa8]
push edi
push ebp
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esp + 0xb8], edi
mov eax, dword [esp]
jmp 0x4e2fc8
xor ebx, ebx
jmp 0x4e30db
mov edi, ecx
mov ebp, dword [esp + 0xe0]
test ebp, ebp
je 0x4e2fea
mov ebx, dword [eax + 4]
cmp edi, ebx
jne 0x4e2ff4
lea eax, [esp + 0x88]
test ebx, ebx
jne 0x4e302e
jmp 0x4e30c3
mov ebx, 1
jmp 0x4e30e2
mov byte [esp + edi + 0xa8], 0x80
mov ecx, dword [esp + 0xb8]
mov eax, ecx
not eax
add eax, ebx
je 0x4e301f
add ecx, esp
add ecx, 0xa9
push eax
push 0
push ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea eax, [esp + 0x98]
test ebx, ebx
je 0x4e30c3
xor ecx, ecx
cmp ebx, 8
jb 0x4e30af
xor ecx, ecx
cmp ebx, 0x20
jb 0x4e3089
mov ecx, ebx
and ecx, 0xffffffe0
xor edx, edx
nop word cs:[eax + eax]
movups xmm0, xmmword [esp + edx + 0xa8]
movups xmm1, xmmword [esp + edx + 0xb8]
movups xmm2, xmmword [eax + edx]
xorps xmm2, xmm0
movups xmm0, xmmword [eax + edx + 0x10]
xorps xmm0, xmm1
movups xmmword [ebp + edx], xmm2
movups xmmword [ebp + edx + 0x10], xmm0
add edx, 0x20
cmp ecx, edx
jne 0x4e3050
cmp ebx, ecx
je 0x4e30c3
test bl, 0x18
je 0x4e30af
mov edx, ecx
mov ecx, ebx
and ecx, 0xfffffff8
movsd xmm0, qword [esp + edx + 0xa8]
movsd xmm1, qword [eax + edx]
xorps xmm1, xmm0
movlps qword [ebp + edx], xmm1
add edx, 8
cmp ecx, edx
jne 0x4e3090
jmp 0x4e30bf
movzx edx, byte [eax + ecx]
xor dl, byte [esp + ecx + 0xa8]
mov byte [ebp + ecx], dl
inc ecx
cmp ebx, ecx
jne 0x4e30af
mov eax, dword [esp]
push ebx
push ebp
push ebp
lea ecx, [esp + 0xc]
push ecx
call dword [eax + 0x20]
add esp, 0x10
xor ebx, ebx
test eax, eax
setne bl
mov eax, dword [esp]
test eax, eax
je 0x4e30f1
mov eax, dword [eax + 0x24]
test eax, eax
je 0x4e30f1
mov ecx, esp
push ecx
call eax
add esp, 4
push dword [esp + 8]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
xorps xmm0, xmm0
movups xmmword [esp + 0x70], xmm0
movups xmmword [esp + 0x60], xmm0
movups xmmword [esp + 0x50], xmm0
movups xmmword [esp + 0x40], xmm0
movups xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x20], xmm0
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp], xmm0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
lea eax, [esp + 0x88]
push 0x10
push eax
call sym.fastboot.exe_OPENSSL_cleanse
add esp, 8
lea eax, [esp + 0x98]
push 0x10
push eax
call sym.fastboot.exe_OPENSSL_cleanse
add esp, 8
lea eax, [esp + 0xa8]
push 0x10
push eax
call sym.fastboot.exe_OPENSSL_cleanse
add esp, 8
mov eax, ebx
add esp, 0xcc
pop esi
pop edi
pop ebx
pop ebp
ret