Function at 0x4f11f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov edi, dword [esp + 0x38]
cmp dword [edi + 4], 0
je 0x4f1262
cmp dword [edi + 0xc], 0
je 0x4f1262
mov dword [esp + 0x20], 0
push 0x18
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x4f1289
mov esi, eax
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov dword [eax + 0x12], 0
mov dword [eax + 0xe], 0
push 0x80
push 0
call sym.fastboot.exe_OPENSSL_realloc
add esp, 8
test eax, eax
je 0x4f1298
mov dword [esi + 4], eax
mov dword [esi + 0xc], 0x20
mov ecx, dword [esi + 8]
mov dword [eax + ecx*4], 0
add dword [esi + 8], 1
jmp 0x4f129e
push 0x2c1
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x90
push 0
push 4
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ebp, ebp
mov eax, ebp
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x6f
push str.external_boringssl_src_crypto_fipsmodule_bn_ctx.c
push 0x41
push 0
push 3
jmp 0x4f1275
mov word [esi + 0x14], 0x101
push esi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov ebp, eax
push esi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test ebp, ebp
je 0x4f1369
mov ebx, eax
test eax, eax
je 0x4f1369
push ebp
push dword [esp + 0x48]
push dword [esp + 0x48]
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
test eax, eax
je 0x4f1685
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov eax, dword [edi + 4]
mov ebx, dword [ebp]
mov dword [esp + 0xc], ebp
mov ecx, dword [ebp + 4]
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov esi, dword [eax + 4]
cmp ecx, esi
mov dword [esp], esi
mov dword [esp + 8], ecx
cmovb esi, ecx
xor eax, eax
test esi, esi
je 0x4f133c
xor edi, edi
nop
mov edx, dword [ebx + edi*4]
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + edi*4]
mov ecx, ebx
mov ebx, edx
sub ebx, ebp
xor ebp, edx
xor ebx, edx
or ebx, ebp
xor ebx, edx
sar ebx, 0x1f
or ebx, 1
test ebp, ebp
cmovne eax, ebx
mov ebx, ecx
add edi, 1
cmp esi, edi
jne 0x4f1310
mov dword [esp + 4], eax
mov ecx, dword [esp + 8]
mov eax, ecx
mov edx, dword [esp]
sub eax, edx
jae 0x4f137a
mov eax, edx
sub eax, ecx
xor esi, esi
cmp eax, 8
jae 0x4f1390
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
jmp 0x4f1500
push 0x2d4
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x41
jmp 0x4f1679
jbe 0x4f13bd
xor esi, esi
cmp eax, 8
jae 0x4f13ce
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xc]
jmp 0x4f1600
mov esi, eax
and esi, 0xfffffff8
mov dword [esp + 0x14], esi
add esi, 0xfffffff8
mov ebx, esi
shr ebx, 3
add ebx, 1
mov ebp, ebx
and ebp, 3
cmp esi, 0x18
jae 0x4f1406
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x4f1487
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 4]
jmp 0x4f1621
mov edx, eax
and edx, 0xfffffff8
mov dword [esp + 0x10], edx
add edx, 0xfffffff8
mov edi, edx
shr edi, 3
add edi, 1
mov esi, edi
and esi, 3
mov dword [esp + 0x14], esi
cmp edx, 0x18
jae 0x4f1523
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
mov edx, dword [esp]
jmp 0x4f1591
and ebx, 0xfffffffc
mov esi, eax
mov eax, dword [esp + 0x10]
lea edi, [eax + ecx*4]
add edi, 0x70
mov eax, esi
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm2, xmmword [edi + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edi + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edi + esi*4 - 0x50]
movdqu xmm3, xmmword [edi + esi*4 - 0x40]
movdqu xmm4, xmmword [edi + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edi + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edi + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edi + esi*4]
por xmm1, xmm2
add esi, 0x20
add ebx, 0xfffffffc
jne 0x4f1430
test ebp, ebp
mov ebx, dword [esp + 0x10]
je 0x4f14ba
add esi, ecx
lea esi, [ebx + esi*4]
add esi, 0x10
shl ebp, 5
xor edi, edi
nop dword [eax]
movdqu xmm2, xmmword [esi + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi]
por xmm1, xmm2
add edi, 0x20
cmp ebp, edi
jne 0x4f14a0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
mov ebp, dword [esp + 0x14]
cmp eax, ebp
jne 0x4f14e6
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xc]
jmp 0x4f150a
mov eax, ebp
add ecx, ebp
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xc]
nop word cs:[eax + eax]
nop dword [eax]
or esi, dword [ebx + ecx*4]
add ecx, 1
cmp edx, ecx
jne 0x4f1500
mov ecx, esi
not ecx
add esi, 0xffffffff
and esi, ecx
sar esi, 0x1f
not esi
mov eax, dword [esp + 4]
or eax, esi
jmp 0x4f1621
and edi, 0xfffffffc
mov edx, dword [esp]
lea ebp, [ebx + edx*4]
add ebp, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
movdqu xmm2, xmmword [ebp + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebp + esi*4 - 0x50]
movdqu xmm3, xmmword [ebp + esi*4 - 0x40]
movdqu xmm4, xmmword [ebp + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebp + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebp + esi*4]
por xmm1, xmm2
add esi, 0x20
add edi, 0xfffffffc
jne 0x4f1539
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x4f15c0
add esi, edx
lea esi, [ebx + esi*4]
add esi, 0x10
shl ebp, 5
xor edi, edi
movdqu xmm2, xmmword [esi + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi]
por xmm1, xmm2
add edi, 0x20
cmp ebp, edi
jne 0x4f15a6
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
mov edi, dword [esp + 0x10]
cmp eax, edi
mov ebp, dword [esp + 0xc]
jne 0x4f15ec
mov edi, dword [esp + 0x38]
jmp 0x4f160a
mov eax, edi
add edx, edi
mov edi, dword [esp + 0x38]
nop word cs:[eax + eax]
nop
or esi, dword [ebx + edx*4]
add edx, 1
cmp ecx, edx
jne 0x4f1600
mov ecx, esi
not ecx
add esi, 0xffffffff
and esi, ecx
sar esi, 0x1f
mov eax, dword [esp + 4]
and eax, esi
add eax, esi
add eax, 1
test eax, eax
mov esi, dword [esp + 0x1c]
js 0x4f1637
push 0x2de
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x73
jmp 0x4f1679
mov ecx, edi
mov edx, esi
call fcn.004f1d50
test eax, eax
je 0x4f166d
mov ecx, dword [edi + 0x2c]
cmp dword [edi + 8], 0
jne 0x4f1709
mov eax, ecx
and eax, 8
jne 0x4f1709
push 0x2ee
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x82
jmp 0x4f1679
push 0x2e3
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x44
push 0
push 4
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ebp, ebp
xor ebx, ebx
cmp byte [esi + 0x14], 0
jne 0x4f16a2
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x10], eax
push sym.fastboot.exe_BN_free
push 0x4fa650
push dword [esi]
call sym.fastboot.exe_sk_pop_free_ex
add esp, 0xc
push dword [esi + 4]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
test ebx, ebx
je 0x4f127f
mov esi, dword [esp + 0x20]
cmp esi, 0x400
jne 0x4f16e6
push ebx
call fcn.004eb660
jmp 0x4f1701
mov ebx, edi
add edi, 0x30
push edi
call sym.fastboot.exe_CRYPTO_MUTEX_lock_write
add esp, 4
mov eax, dword [ebx + 0x58]
mov byte [eax + esi], 0
push edi
call sym.fastboot.exe_CRYPTO_MUTEX_unlock_write
add esp, 4
jmp 0x4f127f
xor ebx, ebx
mov dword [esp + 0x10], ecx
test cl, 8
jne 0x4f1742
lea edx, [esp + 0x20]
mov ecx, edi
call fcn.004f1f90
test eax, eax
je 0x4f17df
mov ebx, eax
push esi
push dword [edi + 0x34]
push dword [edi + 8]
push eax
push ebp
call fcn.004eb6f0
add esp, 0x14
test eax, eax
je 0x4f199a
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4f18d4
mov esi, dword [edi + 0x14]
test esi, esi
je 0x4f18d4
cmp dword [edi + 8], 0
je 0x4f18d4
cmp dword [edi + 0x18], 0
je 0x4f18d4
cmp dword [edi + 0x1c], 0
je 0x4f18d4
cmp dword [edi + 0x20], 0
je 0x4f18d4
cmp dword [esi + 0xc], 0
jne 0x4f18d4
mov ecx, dword [edi + 0x38]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esi + 4]
mov dword [esp], edx
sub edx, ecx
jbe 0x4f18ca
mov esi, dword [esi]
mov dword [esp + 8], esi
xor esi, esi
mov dword [esp + 4], edx
cmp edx, 8
jb 0x4f18ad
mov edx, dword [esp + 4]
and edx, 0xfffffff8
lea esi, [edx - 8]
mov edi, esi
shr edi, 3
add edi, 1
mov ebp, edi
and ebp, 3
mov dword [esp + 0x14], ebp
cmp esi, 0x18
jae 0x4f17e9
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x4f1858
push 0x2f5
jmp 0x4f1672
and edi, 0xfffffffc
mov esi, dword [esp + 8]
lea ebp, [esi + ecx*4]
add ebp, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
movdqu xmm2, xmmword [ebp + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebp + esi*4 - 0x50]
movdqu xmm3, xmmword [ebp + esi*4 - 0x40]
movdqu xmm4, xmmword [ebp + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebp + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebp + esi*4]
por xmm1, xmm2
add esi, 0x20
add edi, 0xfffffffc
jne 0x4f1800
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x4f188b
add esi, ecx
mov edi, dword [esp + 8]
lea esi, [edi + esi*4]
add esi, 0x10
shl ebp, 5
xor edi, edi
movdqu xmm2, xmmword [esi + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi]
por xmm1, xmm2
add edi, 0x20
cmp ebp, edi
jne 0x4f1871
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
cmp dword [esp + 4], edx
je 0x4f18be
add ecx, edx
mov edi, dword [esp + 8]
mov edx, dword [esp]
or esi, dword [edi + ecx*4]
add ecx, 1
cmp edx, ecx
jne 0x4f18b4
test esi, esi
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xc]
jne 0x4f18d4
cmp dword [eax + 0xc], 0
je 0x4f19a1
push dword [edi + 0x34]
mov esi, dword [esp + 0x20]
push esi
push dword [edi + 4]
push dword [edi + 0x40]
push ebp
push dword [esp + 0x2c]
call sym.fastboot.exe_BN_mod_exp_mont_consttime
add esp, 0x18
test eax, eax
je 0x4f199a
cmp dword [edi + 8], 0
je 0x4f193a
push esi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test eax, eax
je 0x4f1982
push dword [edi + 0x34]
push esi
push dword [edi + 4]
push dword [edi + 8]
push dword [esp + 0x28]
push eax
mov dword [esp + 0x18], eax
call sym.fastboot.exe_BN_mod_exp_mont
add esp, 0x18
test eax, eax
mov eax, dword [esp]
je 0x4f1982
push ebp
push eax
call sym.fastboot.exe_BN_equal_consttime
add esp, 8
test eax, eax
je 0x4f1982
test byte [esp + 0x10], 8
jne 0x4f195a
push esi
push dword [edi + 0x34]
push dword [ebx + 4]
mov eax, dword [esp + 0x24]
push eax
push eax
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x4f199a
push dword [esp + 0x18]
push dword [esp + 0x48]
push dword [esp + 0x44]
call sym.fastboot.exe_BN_bn2bin_padded
add esp, 0xc
mov ebp, 1
test eax, eax
jne 0x4f1689
push 0x32d
jmp 0x4f1987
push 0x31b
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x44
push 0
push 4
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ebp, ebp
jmp 0x4f1689
mov ecx, dword [edi + 0x3c]
mov ecx, dword [ecx + 0x18]
mov edx, dword [eax + 4]
mov esi, edx
sub esi, ecx
mov dword [esp], esi
jbe 0x4f1acf
mov eax, dword [eax]
xor esi, esi
cmp dword [esp], 8
jb 0x4f1ab5
mov esi, dword [esp]
and esi, 0xfffffff8
mov dword [esp + 8], esi
add esi, 0xfffffff8
mov edi, esi
shr edi, 3
add edi, 1
mov ebp, edi
and ebp, 3
mov dword [esp + 4], ebp
cmp esi, 0x18
jae 0x4f19f4
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x4f1a5f
and edi, 0xfffffffc
lea ebp, [eax + ecx*4]
add ebp, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
movdqu xmm2, xmmword [ebp + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebp + esi*4 - 0x50]
movdqu xmm3, xmmword [ebp + esi*4 - 0x40]
movdqu xmm4, xmmword [ebp + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebp + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebp + esi*4]
por xmm1, xmm2
add esi, 0x20
add edi, 0xfffffffc
jne 0x4f1a07
mov ebp, dword [esp + 4]
test ebp, ebp
je 0x4f1a8e
add esi, ecx
lea esi, [eax + esi*4]
add esi, 0x10
shl ebp, 5
xor edi, edi
movdqu xmm2, xmmword [esi + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi]
por xmm1, xmm2
add edi, 0x20
cmp ebp, edi
jne 0x4f1a74
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
mov edi, dword [esp + 8]
cmp dword [esp], edi
je 0x4f1abf
add ecx, dword [esp + 8]
or esi, dword [eax + ecx*4]
add ecx, 1
cmp edx, ecx
jne 0x4f1ab5
test esi, esi
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xc]
jne 0x4f18d4
mov ecx, dword [esp + 0x18]
mov edx, ebp
mov esi, dword [esp + 0x1c]
push esi
push edi
call fcn.004f2180
add esp, 8
test eax, eax
jne 0x4f18f7
jmp 0x4f199a