Function at 0x4641f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
cmp dword [ebx + 4], 0
je 0x4642cd
cmp dword [ebx + 0xc], 0
je 0x4642cd
push 0x2c
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x4642f4
mov edi, eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x28], 0
push eax
call sym.fastboot.exe_BN_CTX_start
add esp, 4
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov ebp, eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test ebp, ebp
je 0x464303
mov esi, eax
test eax, eax
je 0x464303
push ebp
push dword [esp + 0x60]
push dword [esp + 0x60]
call sym.fastboot.exe_BN_bin2bn
add esp, 0xc
test eax, eax
je 0x46431b
push dword [ebx + 4]
push ebp
call sym.fastboot.exe_BN_ucmp
add esp, 8
test eax, eax
js 0x4643ee
push 0x2ae
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x73
jmp 0x46430f
push 0x291
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, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x7f
push str.external_boringssl_src_crypto_fipsmodule_bn_ctx.c
push 0x41
push 0
push 3
jmp 0x4642e0
push 0x2a4
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x41
push 0
push 4
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ebp, ebp
mov dword [esp + 0x20], 0
xor esi, esi
mov eax, dword [edi + 0x24]
test eax, eax
je 0x464334
dec eax
mov dword [edi + 0x24], eax
jmp 0x4643a6
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x1c], esi
lea edx, [ecx - 1]
mov dword [edi + 0x18], edx
mov ebx, dword [edi + 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, ebx
sub edx, eax
jbe 0x464394
mov esi, dword [edi + 0xc]
mov ecx, esi
sub ecx, edx
test edx, edx
mov dword [edi + 0xc], ecx
je 0x464394
dec esi
mov edx, eax
and esi, 0xf
sub edx, ebx
nop word [eax + eax]
test esi, esi
je 0x464380
dec esi
inc edx
jne 0x464370
jmp 0x464394
mov ecx, dword [edi + 4]
mov esi, 0xf
mov ecx, dword [ecx + 0x140]
mov dword [edi + 4], ecx
inc edx
jne 0x464370
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], 0
push edi
call sym.fastboot.exe_BN_CTX_free
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4642ea
cmp esi, 0x400
jne 0x4643cb
push eax
call fcn.0045fda0
jmp 0x4643e6
mov edi, esi
lea esi, [ebx + 0x30]
push esi
call sym.fastboot.exe_CRYPTO_MUTEX_lock_write
add esp, 4
mov eax, dword [ebx + 0x58]
mov byte [eax + edi], 0
push esi
call sym.fastboot.exe_CRYPTO_MUTEX_unlock_write
add esp, 4
jmp 0x4642ea
mov ecx, ebx
mov edx, edi
call fcn.00465360
test eax, eax
je 0x46441f
mov ecx, dword [ebx + 0x2c]
cmp dword [ebx + 8], 0
jne 0x464430
mov eax, ecx
and eax, 8
jne 0x464430
push 0x2be
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x82
jmp 0x46430f
push 0x2b3
push str.external_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x44
jmp 0x46430f
xor eax, eax
test cl, 8
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], 0
mov dword [esp + 8], esi
jne 0x464617
lea eax, [ebx + 0x30]
mov dword [esp], eax
push eax
call sym.fastboot.exe_CRYPTO_MUTEX_lock_write
add esp, 4
mov eax, ebx
mov ebx, dword [ebx + 0x50]
test ebx, ebx
je 0x46447f
mov esi, eax
mov eax, dword [eax + 0x58]
xor ecx, ecx
cmp byte [eax + ecx], 0
je 0x46448d
inc ecx
cmp ecx, ebx
jb 0x46446a
mov dword [esp + 0x1c], 0
jmp 0x4644b8
mov esi, eax
mov dword [esp + 0x1c], 0
xor ebx, ebx
jmp 0x4644b8
mov byte [eax + ecx], 1
mov ebx, esi
mov dword [esp + 0x1c], ecx
mov eax, dword [esi + 0x54]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x4644b5
push dword [esp]
mov esi, eax
call sym.fastboot.exe_CRYPTO_MUTEX_unlock_write
mov eax, esi
add esp, 4
jmp 0x4645f6
mov ebx, dword [ebx + 0x50]
push dword [esp]
call sym.fastboot.exe_CRYPTO_MUTEX_unlock_write
add esp, 4
call fcn.0045fca0
test eax, eax
je 0x46458a
cmp ebx, 0x3ff
jbe 0x4644e7
mov dword [esp + 0x1c], 0x400
mov ebx, esi
jmp 0x4645f6
mov dword [esp + 0x20], eax
push dword [esp]
call sym.fastboot.exe_CRYPTO_MUTEX_lock_write
add esp, 4
mov eax, dword [esi + 0x50]
mov ebx, esi
lea eax, [eax*4 + 4]
push eax
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x464571
mov esi, eax
mov eax, dword [ebx + 0x50]
lea ecx, [eax*4]
test ecx, ecx
je 0x46452f
push ecx
push dword [ebx + 0x54]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x50]
mov ecx, dword [esp + 0x20]
mov dword [esi + eax*4], ecx
mov eax, dword [ebx + 0x50]
inc eax
push eax
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x464568
mov ecx, dword [ebx + 0x50]
mov dword [esp + 4], eax
test ecx, ecx
je 0x4645b7
push ecx
push dword [ebx + 0x58]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x10]
add esp, 0xc
mov ecx, dword [ebx + 0x50]
jmp 0x4645b9
push esi
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov esi, ebx
push dword [esp]
call sym.fastboot.exe_CRYPTO_MUTEX_unlock_write
add esp, 4
push dword [esp + 0x20]
call fcn.0045fda0
add esp, 4
push 0x2c5
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
mov ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, ebp
mov dword [esp + 0x20], 0
jmp 0x464327
xor ecx, ecx
mov byte [eax + ecx], 1
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x1c], eax
push dword [ebx + 0x54]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov dword [ebx + 0x54], esi
push dword [ebx + 0x58]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esp + 4]
mov dword [ebx + 0x58], eax
inc dword [ebx + 0x50]
push dword [esp]
call sym.fastboot.exe_CRYPTO_MUTEX_unlock_write
add esp, 4
mov eax, dword [esp + 0x20]
push edi
push dword [ebx + 0x34]
push dword [ebx + 8]
mov dword [esp + 0x2c], eax
push eax
push ebp
call fcn.0045fe20
add esp, 0x14
test eax, eax
je 0x464d9a
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov esi, ebx
mov dword [esp + 0x1c], eax
test ecx, ecx
mov dword [esp], ecx
je 0x46471c
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x46471c
cmp dword [esi + 8], 0
je 0x46471c
cmp dword [esi + 0x18], 0
je 0x46471c
cmp dword [esi + 0x1c], 0
je 0x46471c
cmp dword [esi + 0x20], 0
je 0x46471c
cmp dword [ebx + 0xc], 0
jne 0x46471c
mov ecx, dword [esi + 0x38]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x18]
mov ecx, eax
sub ecx, edx
jbe 0x46470f
mov esi, dword [ebx]
xor ebx, ebx
cmp ecx, 8
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
jb 0x4646f2
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x10]
pxor xmm0, xmm0
pxor xmm1, xmm1
and edx, 0xfffffff8
lea ebx, [ebx + esi*4 + 0x10]
add esi, edx
mov dword [esp + 0x14], edx
mov dword [esp + 4], esi
movdqu xmm2, xmmword [ebx - 0x10]
movdqu xmm3, xmmword [ebx]
add ebx, 0x20
add edx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x4646b5
mov edx, dword [esp + 0xc]
por xmm1, xmm0
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
cmp edx, dword [esp + 0x14]
por xmm1, xmm0
movd ebx, xmm1
je 0x464707
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x10]
sub eax, esi
lea edx, [edx + esi*4]
or ebx, dword [edx]
add edx, 4
dec eax
jne 0x4646ff
mov esi, dword [esp + 0x50]
test ebx, ebx
jne 0x46471c
mov eax, dword [esp]
cmp dword [eax + 0xc], 0
je 0x464b8b
push dword [esi + 0x34]
push edi
push dword [esi + 4]
push dword [esi + 0x40]
push ebp
push dword [esp + 0x1c]
call sym.fastboot.exe_BN_mod_exp_mont_consttime
add esp, 0x18
test eax, eax
mov ebx, esi
je 0x464d9a
cmp dword [ebx + 8], 0
mov esi, dword [esp + 0x1c]
je 0x464957
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test eax, eax
je 0x464938
push dword [ebx + 0x34]
push edi
push dword [ebx + 4]
push dword [ebx + 8]
push dword [esp + 0x18]
push eax
mov dword [esp + 0x1c], eax
call sym.fastboot.exe_BN_mod_exp_mont
add esp, 0x18
test eax, eax
mov eax, dword [esp + 4]
je 0x464938
mov ebx, dword [eax + 4]
mov eax, dword [ebp + 4]
xor edx, edx
mov dword [esp + 0x10], ebx
sub ebx, eax
mov dword [esp], eax
mov dword [esp + 0xc], ebx
jge 0x46481e
mov esi, dword [esp]
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp]
xor edx, edx
sub esi, ecx
cmp esi, 7
jbe 0x46480e
mov edx, dword [esp + 0x10]
mov eax, esi
pxor xmm0, xmm0
pxor xmm1, xmm1
mov dword [esp + 0x14], ebx
and eax, 0xfffffff8
mov dword [esp + 0x18], eax
lea ecx, [edx + eax]
lea edx, [ebx + edx*4 + 0x10]
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
add edx, 0x20
add eax, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x4647d1
por xmm1, xmm0
cmp esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x46481e
mov eax, dword [esp]
lea ebx, [ebx + ecx*4]
sub eax, ecx
or edx, dword [ebx]
add ebx, 4
dec eax
jne 0x464816
mov ecx, dword [esp + 0x10]
cmp dword [esp], ecx
jge 0x4648b2
mov eax, dword [esp + 4]
mov ebx, dword [eax]
mov eax, dword [esp + 0xc]
cmp eax, 7
ja 0x46483f
mov esi, dword [esp]
jmp 0x4648a3
mov dword [esp + 0x14], ebx
movd xmm1, edx
mov ebx, dword [esp]
and eax, 0xfffffff8
pxor xmm0, xmm0
mov edx, dword [esp + 0x14]
lea esi, [ebx + eax]
lea edx, [edx + ebx*4 + 0x10]
mov ebx, eax
mov dword [esp + 0x18], esi
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
add edx, 0x20
add ebx, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x464862
por xmm0, xmm1
cmp dword [esp + 0xc], eax
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd edx, xmm0
je 0x4648b2
mov eax, ecx
lea ebx, [ebx + esi*4]
sub eax, esi
or edx, dword [ebx]
add ebx, 4
dec eax
jne 0x4648aa
mov esi, dword [esp]
cmp ecx, esi
cmovle esi, ecx
test esi, esi
jle 0x464922
mov eax, dword [esp + 4]
mov ebx, esi
mov esi, dword [ebp]
xor ecx, ecx
cmp ebx, 3
mov dword [esp], ebx
mov eax, dword [eax]
jbe 0x464914
mov ecx, dword [esp]
movd xmm0, edx
xor edx, edx
mov ebx, ecx
and ecx, 0xfffffffc
movdqu xmm1, xmmword [eax + edx*4]
movdqu xmm2, xmmword [esi + edx*4]
add edx, 4
cmp ecx, edx
pxor xmm2, xmm1
por xmm0, xmm2
jne 0x4648e1
pshufd xmm1, xmm0, 0x4e
cmp ebx, ecx
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd edx, xmm0
je 0x464922
mov ebx, dword [esi + ecx*4]
xor ebx, dword [eax + ecx*4]
inc ecx
or edx, ebx
cmp ecx, dword [esp]
jl 0x464914
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
xor eax, dword [ecx + 0xc]
or eax, edx
je 0x464957
push 0x2eb
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 0x464327
test byte [esp + 0x34], 8
jne 0x46497b
push edi
push dword [ebx + 0x34]
mov eax, dword [esp + 0x28]
push dword [eax + 4]
mov eax, dword [esp + 0x14]
push eax
push eax
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x464950
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x5c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
lea edx, [eax*4]
cmp edx, ebp
jbe 0x464a54
lea edx, [eax*4]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov esi, ebx
xor eax, eax
mov ecx, edx
sub ecx, ebp
cmp ecx, 8
jb 0x464a24
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp]
mov dword [esp + 4], ecx
and ecx, 0xfffffff8
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm0, xmm0
mov dword [esp + 0x34], ecx
lea ebp, [ecx + eax]
lea eax, [ebx + eax + 4]
movd xmm3, dword [eax - 4]
movd xmm4, dword [eax]
add eax, 8
add ecx, 0xfffffff8
punpcklbw xmm3, xmm1
punpcklbw xmm4, xmm1
punpcklwd xmm3, xmm1
punpcklwd xmm4, xmm1
por xmm2, xmm3
por xmm0, xmm4
jne 0x4649d7
mov ecx, dword [esp + 4]
por xmm0, xmm2
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
cmp ecx, dword [esp + 0x34]
por xmm0, xmm1
movd eax, xmm0
je 0x464a33
sub edx, ebp
add ebp, dword [esp]
movzx ebx, byte [ebp]
inc ebp
or eax, ebx
dec edx
jne 0x464a29
test eax, eax
mov eax, dword [esp + 0x5c]
mov ebx, esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp]
mov edx, eax
mov eax, dword [esp + 8]
je 0x464a54
push 0x2fd
jmp 0x46493d
test edx, edx
mov dword [esp + 8], edx
je 0x464b64
xor ebp, ebp
cmp dword [esp + 8], 0x1f
ja 0x464a70
mov edx, ecx
jmp 0x464b4b
shl eax, 2
mov edx, eax
mov eax, dword [esp + 0x5c]
cmp edx, eax
cmova edx, eax
not edx
add edx, eax
mov eax, dword [esp + 0x54]
lea eax, [eax + edx + 1]
mov edx, ecx
mov ecx, dword [esp + 8]
lea ecx, [edx + ecx]
cmp eax, ecx
jae 0x464aaa
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
lea eax, [ecx + eax]
cmp edx, eax
jb 0x464b4b
mov ebp, dword [esp + 8]
mov dword [esp], edx
lea ecx, [edx + 0x10]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
pxor xmm0, xmm0
and ebp, 0xffffffe0
lea eax, [edx + eax - 0x10]
mov edx, ebp
movdqu xmm1, xmmword [ecx - 0x10]
movdqu xmm2, xmmword [ecx]
add ecx, 0x20
movdqa xmm3, xmm1
punpckhbw xmm1, xmm0
punpcklbw xmm3, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm1, xmm3
movdqu xmmword [eax], xmm1
movdqa xmm1, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm1
movdqu xmmword [eax - 0x10], xmm2
add eax, 0xffffffe0
add edx, 0xffffffe0
jne 0x464ac9
cmp dword [esp + 8], ebp
mov edx, dword [esp]
je 0x464b64
mov eax, dword [esp + 0x5c]
dec eax
sub eax, ebp
add eax, dword [esp + 0x54]
movzx ecx, byte [edx + ebp]
inc ebp
mov byte [eax], cl
dec eax
cmp ebp, dword [esp + 8]
jb 0x464b56
mov eax, dword [esp + 0x5c]
mov ebp, 1
sub eax, dword [esp + 8]
je 0x464327
push eax
push 0
push dword [esp + 0x5c]
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x464327
mov ecx, dword [esi + 0x3c]
mov eax, dword [esp]
mov ebx, dword [ecx + 0x18]
mov ecx, dword [eax + 4]
mov edx, ecx
mov dword [esp + 4], ebx
sub edx, ebx
jbe 0x464c2f
mov eax, dword [esp]
mov eax, dword [eax]
mov dword [esp], eax
xor eax, eax
cmp edx, 8
jb 0x464c0f
mov esi, dword [esp + 4]
mov eax, dword [esp]
mov ebx, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and ebx, 0xfffffff8
mov dword [esp + 0x10], ebx
lea eax, [eax + esi*4 + 0x10]
add esi, ebx
mov dword [esp + 4], esi
movdqu xmm2, xmmword [eax - 0x10]
movdqu xmm3, xmmword [eax]
add eax, 0x20
add ebx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x464bd6
por xmm1, xmm0
cmp edx, dword [esp + 0x10]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd eax, xmm1
je 0x464c23
mov edx, dword [esp + 4]
mov ebx, dword [esp]
sub ecx, edx
lea edx, [ebx + edx*4]
or eax, dword [edx]
add edx, 4
dec ecx
jne 0x464c1b
mov esi, dword [esp + 0x50]
test eax, eax
jne 0x46471c
push edi
call sym.fastboot.exe_BN_CTX_start
add esp, 4
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov ebx, eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test ebx, ebx
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0x10], ebx
je 0x464d26
cmp dword [esp + 4], 0
je 0x464d26
mov ecx, dword [esp + 0x50]
mov edx, edi
call fcn.00465360
test eax, eax
je 0x464d26
mov eax, dword [esp + 0x50]
mov esi, dword [eax + 0x48]
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x38]
mov dword [esp + 0x28], esi
mov esi, dword [eax + 0x3c]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], edx
test eax, eax
je 0x464cf0
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x464cf0
mov ebx, dword [eax + 0xc]
cmp ebx, dword [ecx + 0xc]
jne 0x465030
push ecx
push eax
call sym.fastboot.exe_BN_ucmp
add esp, 8
mov ecx, eax
neg ecx
test ebx, ebx
cmove ecx, eax
test ecx, ecx
js 0x464cf4
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
jmp 0x464d00
test eax, eax
je 0x464cd2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x20], 0
je 0x464da5
push 0x318
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
mov eax, dword [edi + 0x24]
test eax, eax
je 0x464d33
dec eax
mov dword [edi + 0x24], eax
jmp 0x464d8c
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
lea edx, [ecx - 1]
mov dword [edi + 0x18], edx
mov ebx, dword [edi + 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, ebx
mov esi, eax
sub edx, eax
jbe 0x464d82
mov eax, dword [edi + 0xc]
mov ecx, eax
sub ecx, edx
test edx, edx
mov dword [edi + 0xc], ecx
je 0x464d82
dec eax
mov edx, esi
and eax, 0xf
sub edx, ebx
test eax, eax
je 0x464d6e
dec eax
inc edx
jne 0x464d64
jmp 0x464d82
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x140]
mov dword [edi + 4], eax
mov eax, 0xf
inc edx
jne 0x464d64
mov dword [edi + 0x20], esi
mov dword [edi + 0x28], 0
cmp dword [esp], 0
mov ebx, dword [esp + 0x50]
jne 0x46473d
mov esi, dword [esp + 0x1c]
xor ebp, ebp
jmp 0x464327
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x38], eax
lea eax, [ecx + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x18]
mov eax, dword [ecx + 0x18]
mov edx, eax
mov dword [esp + 0x18], ebx
sub edx, ebx
jbe 0x464e59
mov ecx, dword [esp + 0x30]
xor ebx, ebx
cmp edx, 8
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
jb 0x464e3c
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
mov esi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and esi, 0xfffffff8
lea ebx, [ebx + ecx*4 + 0x10]
add ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, esi
movdqu xmm2, xmmword [ebx - 0x10]
movdqu xmm3, xmmword [ebx]
add ebx, 0x20
add ecx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x464e05
por xmm1, xmm0
cmp edx, esi
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebx, xmm1
je 0x464e51
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
sub eax, ecx
lea ecx, [edx + ecx*4]
or ebx, dword [ecx]
add ecx, 4
dec eax
jne 0x464e49
test ebx, ebx
jne 0x464d0e
push edi
push dword [esp + 0x10]
push ebp
push dword [esp + 0x1c]
call sym.fastboot.exe_BN_from_montgomery
add esp, 0x10
test eax, eax
je 0x464d26
push edi
mov eax, dword [esp + 0x10]
push eax
push eax
mov eax, dword [esp + 0x1c]
push eax
push eax
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x464d26
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0x14]
push eax
push edi
mov dword [esp + 0x20], ecx
push ecx
push dword [esp + 0x30]
push dword [esp + 0x20]
push dword [esp + 0x18]
call sym.fastboot.exe_BN_mod_exp_mont_consttime
add esp, 0x18
test eax, eax
je 0x464d26
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x20], 0
jne 0x464d0e
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], ecx
mov edx, eax
sub edx, ecx
jbe 0x464f6a
mov ecx, dword [esp + 0x18]
xor ebx, ebx
cmp edx, 8
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
jb 0x464f4d
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov esi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and esi, 0xfffffff8
lea ebx, [ebx + ecx*4 + 0x10]
add ecx, esi
mov dword [esp + 0x24], ecx
mov ecx, esi
movdqu xmm2, xmmword [ebx - 0x10]
movdqu xmm3, xmmword [ebx]
add ebx, 0x20
add ecx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x464f16
por xmm1, xmm0
cmp edx, esi
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebx, xmm1
je 0x464f62
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
sub eax, ecx
lea ecx, [edx + ecx*4]
or ebx, dword [ecx]
add ecx, 4
dec eax
jne 0x464f5a
test ebx, ebx
jne 0x464d0e
push edi
push dword [esp + 0x18]
push ebp
push dword [esp + 0x1c]
call sym.fastboot.exe_BN_from_montgomery
add esp, 0x10
test eax, eax
je 0x464d26
push edi
mov eax, dword [esp + 0x18]
push eax
push eax
mov eax, dword [esp + 0x1c]
push eax
push eax
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x464d26
push dword [esp + 0x14]
push edi
push dword [esp + 0x38]
push dword [esp + 0x34]
push dword [esp + 0x20]
push dword [esp + 0x1c]
call sym.fastboot.exe_BN_mod_exp_mont_consttime
add esp, 0x18
test eax, eax
je 0x464d26
push edi
push dword [esp + 0x34]
push dword [esp + 0xc]
mov eax, dword [esp + 0x14]
push eax
push eax
call fcn.004399f0
add esp, 0x14
test eax, eax
je 0x464d26
push edi
push dword [esp + 0x18]
mov eax, dword [esp + 0x58]
push dword [eax + 0x4c]
mov eax, dword [esp + 0x14]
push eax
push eax
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x464d26
mov eax, dword [esp + 8]
cmp dword [eax + 0xc], 0
jne 0x46501b
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x20], 0
je 0x46503d
push 0x28d
push str.external_boringssl_src_crypto_fipsmodule_bn_mul.c
push 0x6d
push 0
push 3
jmp 0x464d1e
test ebx, ebx
jne 0x464cf4
jmp 0x464cd2
mov ecx, dword [esp + 8]
mov edx, ecx
push edi
push dword [esp + 0x1c]
call fcn.00444900
add esp, 8
test eax, eax
je 0x464d26
push dword [esp + 4]
mov eax, dword [esp + 0xc]
push eax
push eax
call fcn.00434eb0
add esp, 0xc
test eax, eax
je 0x464d26
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 4], ecx
mov edx, eax
sub edx, ecx
jbe 0x46513a
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x10], ebx
mov dword [esp], ecx
xor ecx, ecx
cmp edx, 8
jb 0x4650fe
mov ecx, dword [esp + 4]
mov esi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and esi, 0xfffffff8
lea ebx, [ecx + esi]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp]
lea ecx, [ebx + ecx*4 + 0x10]
mov ebx, esi
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add ebx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x4650c7
por xmm1, xmm0
cmp edx, esi
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x465112
mov ebx, dword [esp + 0x10]
mov edx, dword [esp]
sub eax, ebx
lea edx, [edx + ebx*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x46510a
test ecx, ecx
je 0x46517b
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
mov dword [esp], 0
jmp 0x464d26
push dword [esp + 4]
push dword [esp + 0xc]
call fcn.004350a0
add esp, 8
test eax, eax
je 0x464d26
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov eax, dword [eax + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x46517b
mov edx, dword [esp + 8]
shl eax, 2
add eax, dword [edx]
push ecx
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [eax + 4], ecx
mov dword [esp], 1
jmp 0x464d26