Function at 0x480470
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 0x4804ae
push 0x470be0
push 0x53de88
mov esi, ecx
call sym.fastboot.exe_CRYPTO_once
mov ecx, esi
add esp, 8
mov edx, 0x53de90
mov ebx, dword [edx + 4]
test edi, edi
cmove edi, edx
xor esi, esi
lea eax, [ebx + ebx + 2]
cmp eax, ecx
jbe 0x4804e0
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 0x48072a
mov ebp, ebx
mov dword [esp + 8], edx
not ebp
add ebp, ecx
push ebp
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x480710
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.004802e0
add esp, 0xc
test eax, eax
je 0x48072a
test ebx, ebx
je 0x48058d
xor eax, eax
cmp ebx, 0x1f
jbe 0x480571
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 0x480540
mov ebx, edx
cmp edx, eax
je 0x48058d
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 0x480580
mov ecx, esi
mov edx, ebp
push edi
push ebx
lea eax, [esp + 0x18]
push eax
call fcn.004802e0
add esp, 0xc
test eax, eax
je 0x48072a
mov ecx, dword [esp + 0xbc]
mov edi, dword [esp]
test ebp, ebp
je 0x48064c
xor edx, edx
cmp ebp, 0x1f
jbe 0x480640
mov eax, dword [esp + 0xb4]
mov edi, dword [esp + 0xb0]
lea eax, [edi + eax]
mov edi, dword [esp]
cmp esi, eax
jae 0x4805e0
lea eax, [esi + ebp]
cmp edi, eax
jb 0x480640
mov eax, dword [esp + 0xb0]
mov edx, ebp
mov dword [esp + 4], ebx
and edx, 0xffffffe0
lea edi, [eax + ebx + 0x11]
xor eax, eax
nop word cs:[eax + eax]
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 0x480600
mov ebx, dword [esp + 4]
mov edi, dword [esp]
cmp ebp, edx
je 0x48064c
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [edi + edx]
xor byte [esi + edx], al
inc edx
cmp ebp, edx
jne 0x480640
sub esp, 4
lea edi, [esp + 0x54]
push dword [esp + 0xc]
push 0
push edi
push ecx
push dword [esp + 0xcc]
call sym.fastboot.exe_EVP_Digest
add esp, 0x18
test eax, eax
je 0x48072a
push ebx
push edi
push esi
call sym.fastboot.exe_CRYPTO_memcmp
add esp, 0xc
cmp ebx, ebp
jae 0x480740
mov ecx, dword [esp + 0xb0]
mov edx, eax
mov edi, dword [esp + 0xb4]
dec eax
mov dword [esp + 4], ebp
mov dword [esp + 0xc], esi
not edx
movzx ecx, byte [ecx]
dec edi
dec ecx
and ecx, edx
mov edx, 0xffffffff
and ecx, eax
lea eax, [ebx + ebx]
sar ecx, 0x1f
sub edi, eax
xor eax, eax
not ecx
mov dword [esp], ecx
mov ecx, ebx
nop
mov ebx, edx
mov dword [esp + 8], edx
mov edx, dword [esp + 0xc]
movzx esi, byte [edx + ecx]
mov edx, esi
dec esi
xor edx, 1
sar esi, 0x1f
dec edx
not esi
sar edx, 0x1f
mov ebp, edx
not edx
and edx, dword [esp + 8]
and ebp, ebx
mov ebx, ebp
not ebp
and ebx, ecx
and eax, ebp
inc ecx
or eax, ebx
and esi, edx
or dword [esp], esi
mov esi, dword [esp + 0xc]
dec edi
jne 0x4806c0
or edx, dword [esp]
mov ebp, dword [esp + 4]
inc eax
test edx, edx
jne 0x4804c0
jmp 0x480752
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 0x4804c0
sub ebp, eax
cmp ebp, dword [esp + 0xac]
jbe 0x48076e
push 0x1d2
push str.external_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x71
jmp 0x4804cf
mov edi, dword [esp + 0xa8]
test ebp, ebp
je 0x48078e
mov ecx, esi
add ecx, eax
push ebp
push ecx
push dword [esp + 0xac]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [edi], ebp
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, 1
jmp 0x480735