Function at 0x447170
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [ebp], 0
push 0x435f70
push 0x53f3a0
call sym.fastboot.exe_CRYPTO_once
add esp, 8
test ebx, ebx
je 0x4471d4
mov esi, dword [ebx + 0xc]
cmp esi, dword [0x53f3b0]
jne 0x4471c7
push 0x53f3a4
push ebx
call sym.fastboot.exe_BN_ucmp
add esp, 8
mov ecx, eax
neg ecx
test esi, esi
cmove ecx, eax
test ecx, ecx
jg 0x4471d4
jmp 0x4474bd
mov edi, 1
test esi, esi
jne 0x4474c2
mov edi, dword [ebx + 4]
test edi, edi
jle 0x44726a
mov esi, dword [ebx]
mov ebx, dword [esi]
test bl, 1
jne 0x447295
xor ebx, 2
cmp edi, 2
jl 0x447279
lea ecx, [edi - 1]
mov eax, 1
cmp ecx, 8
jb 0x44725a
mov edx, ecx
mov dword [esp], esi
movd xmm1, ebx
lea esi, [esi + 0x14]
pxor xmm0, xmm0
and edx, 0xfffffff8
lea eax, [edx + 1]
mov ebx, edx
nop dword [eax]
movdqu xmm2, xmmword [esi - 0x10]
movdqu xmm3, xmmword [esi]
add esi, 0x20
add ebx, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x447220
por xmm0, xmm1
mov esi, dword [esp]
cmp ecx, edx
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebx, xmm0
je 0x447279
sub edi, eax
lea eax, [esi + eax*4]
nop
or ebx, dword [eax]
add eax, 4
dec edi
jne 0x447260
jmp 0x447279
test edi, edi
je 0x4474b8
mov eax, dword [ebx]
mov ebx, dword [eax]
xor ebx, 2
xor eax, eax
test ebx, ebx
jne 0x4474ba
mov ecx, dword [esp + 0x7c]
xor eax, eax
cmp dword [ecx + 0xc], 0
sete al
jmp 0x4474ba
mov ecx, ebx
xor ecx, 3
cmp edi, 2
jl 0x447328
lea edx, [edi - 1]
mov eax, 1
cmp edx, 8
jb 0x44730e
mov ebp, esi
mov esi, edx
movd xmm1, ecx
pxor xmm0, xmm0
and esi, 0xfffffff8
mov dword [esp], ebp
lea ecx, [ebp + 0x14]
lea eax, [esi + 1]
mov ebp, esi
nop word [eax + eax]
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add ebp, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x4472d0
por xmm0, xmm1
cmp edx, esi
mov ebp, dword [esp + 0x78]
mov esi, dword [esp]
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ecx, xmm0
je 0x447328
mov edx, edi
sub edx, eax
lea eax, [esi + eax*4]
nop word cs:[eax + eax]
nop
or ecx, dword [eax]
add eax, 4
dec edx
jne 0x447320
test ecx, ecx
jne 0x44733a
mov eax, dword [esp + 0x7c]
cmp dword [eax + 0xc], 0
je 0x447508
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4473b6
cmp edi, 0x20
mov eax, 0x800
mov ecx, 0x200
mov dword [esp], esi
mov ebp, 1
cmovg ecx, eax
mov dword [esp + 4], ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx esi, word [ebp + ebp + 0x52951c]
push esi
push dword [esp + 0x80]
call sym.fastboot.exe_bn_mod_u16_consttime
add esp, 8
test ax, ax
je 0x4474cc
inc ebp
cmp ebp, dword [esp + 4]
jb 0x447370
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4473b6
push eax
push 0xffffffffffffffff
push 1
call dword [eax + 4]
add esp, 0xc
test eax, eax
je 0x4478da
mov ecx, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x7c]
test ecx, ecx
je 0x4474ed
xor edi, edi
test ebp, ebp
mov esi, 0
mov dword [esp + 0x60], ecx
jne 0x447441
push 0x2c
call sym.fastboot.exe_OPENSSL_malloc
add esp, 4
test eax, eax
je 0x447784
mov esi, eax
mov ebp, 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 ebp
call sym.fastboot.exe_BN_CTX_start
add esp, 4
mov dword [esp + 0x20], ebp
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test eax, eax
je 0x447501
mov ebp, eax
push 0x435f70
push 0x53f3a0
call sym.fastboot.exe_CRYPTO_once
add esp, 8
push 0x53f3a4
push ebx
push ebp
call fcn.004357e0
add esp, 0xc
test eax, eax
je 0x447841
mov ecx, dword [ebx + 4]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x14], esi
nop word cs:[eax + eax]
nop
test ecx, ecx
jle 0x44760d
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4 - 4]
dec ecx
test eax, eax
je 0x4474a0
jmp 0x44761c
xor eax, eax
mov dword [ebp], eax
mov edi, 1
mov eax, edi
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, esi
cmp edi, 2
jl 0x447511
lea ecx, [edi - 1]
mov eax, 1
cmp ecx, 8
jae 0x4477a0
mov ecx, dword [esp + 0x78]
jmp 0x4477fb
mov ecx, dword [ebx + 4]
test ecx, ecx
jle 0x44751a
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4 - 4]
dec ecx
test eax, eax
je 0x4474f0
jmp 0x447527
xor eax, eax
jmp 0x447845
mov dword [ebp], 1
jmp 0x4474bd
mov ecx, dword [esp + 0x78]
jmp 0x447818
je 0x4478f8
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4 - 4]
dec ecx
shl ecx, 5
xor edx, edx
test eax, eax
setne dl
or edx, ecx
mov ecx, eax
shr ecx, 0x10
mov esi, ecx
xor ecx, eax
neg esi
sar esi, 0x1f
and ecx, esi
and esi, 0x10
xor ecx, eax
or esi, edx
mov eax, ecx
shr eax, 8
mov edx, eax
xor eax, ecx
neg edx
sar edx, 0x1f
and eax, edx
and edx, 8
xor eax, ecx
or edx, esi
mov ecx, eax
shr ecx, 4
mov esi, ecx
xor ecx, eax
neg esi
sar esi, 0x1f
and ecx, esi
and esi, 4
xor ecx, eax
or esi, edx
mov eax, ecx
shr eax, 2
mov edx, eax
xor eax, ecx
neg edx
sar edx, 0x1f
and eax, edx
and edx, 2
xor eax, ecx
or edx, esi
mov ecx, 3
shr eax, 1
neg eax
shr eax, 0x1f
add eax, edx
cmp eax, 0xea2
jg 0x4473d0
mov ecx, 4
cmp eax, 0x540
jg 0x4473d0
mov ecx, 5
cmp eax, 0x1db
jg 0x4473d0
mov ecx, 6
cmp eax, 0x18f
jg 0x4473d0
mov ecx, 7
cmp eax, 0x15a
jg 0x4473d0
mov ecx, 8
cmp eax, 0x133
jg 0x4473d0
cmp eax, 0x36
mov eax, 0x1b
mov ecx, 0x22
cmovg ecx, eax
jmp 0x4473d0
test ecx, ecx
je 0x447902
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4 - 4]
dec ecx
shl ecx, 5
xor edx, edx
test eax, eax
mov ebp, dword [esp + 0x34]
setne dl
or edx, ecx
mov ecx, eax
shr ecx, 0x10
mov esi, ecx
xor ecx, eax
neg esi
sar esi, 0x1f
and ecx, esi
and esi, 0x10
xor ecx, eax
or esi, edx
mov eax, ecx
shr eax, 8
mov edx, eax
xor eax, ecx
neg edx
sar edx, 0x1f
and eax, edx
and edx, 8
xor eax, ecx
or edx, esi
mov ecx, eax
shr ecx, 4
mov esi, ecx
xor ecx, eax
neg esi
sar esi, 0x1f
and ecx, esi
and esi, 4
xor ecx, eax
or esi, edx
mov edx, ecx
shr edx, 2
mov eax, edx
xor edx, ecx
neg eax
sar eax, 0x1f
and edx, eax
and eax, 2
xor edx, ecx
or eax, esi
shr edx, 1
neg edx
shr edx, 0x1f
add edx, eax
mov dword [esp + 0x38], edx
push ebp
call sym.fastboot.exe_BN_count_low_zero_bits
add esp, 4
mov esi, dword [esp + 0x20]
mov edi, eax
push esi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test eax, eax
je 0x44783d
push esi
mov dword [esp + 0x48], edi
push edi
push ebp
mov dword [esp + 0x64], eax
push eax
call sym.fastboot.exe_bn_rshift_secret_shift
add esp, 0x10
xor edi, edi
test eax, eax
je 0x4478e1
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
mov dword [esp + 8], eax
push esi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x2c], eax
push esi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x28], eax
push esi
push ebx
call sym.fastboot.exe_BN_MONT_CTX_new_consttime
add esp, 8
test ebp, ebp
mov dword [esp + 0x50], ebp
je 0x448225
cmp dword [esp + 8], 0
mov esi, dword [esp + 0x14]
je 0x447845
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x447845
cmp dword [esp + 0x28], 0
je 0x447845
test eax, eax
je 0x447845
mov edx, dword [eax + 0x18]
mov dword [esp + 0xc], eax
test edx, edx
jle 0x447766
mov ecx, dword [eax + 0x14]
cmp dword [ecx + edx*4 - 4], 0
mov ecx, dword [esp + 0x2c]
js 0x44790f
push dword [esp + 0x20]
push eax
push eax
push ecx
mov ebp, ecx
call sym.fastboot.exe_BN_from_montgomery
add esp, 0x10
test eax, eax
jne 0x447964
jmp 0x44823d
push 0x7f
push str.external_boringssl_src_crypto_fipsmodule_bn_ctx.c
push 0x41
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor edi, edi
jmp 0x4474c2
movd xmm1, ebx
mov ebx, dword [esp]
mov edx, ecx
pxor xmm0, xmm0
and edx, 0xfffffff8
lea eax, [edx + 1]
mov ebp, edx
lea ebx, [ebx + 0x14]
nop dword [eax + eax]
movdqu xmm2, xmmword [ebx - 0x10]
movdqu xmm3, xmmword [ebx]
add ebx, 0x20
add ebp, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x4477c0
por xmm0, xmm1
cmp ecx, edx
mov ecx, dword [esp + 0x78]
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebx, xmm0
je 0x447818
mov edx, dword [esp]
sub edi, eax
lea eax, [edx + eax*4]
nop word cs:[eax + eax]
nop dword [eax]
or ebx, dword [eax]
add eax, 4
dec edi
jne 0x447810
xor eax, eax
test ebx, ebx
jne 0x4478f1
test si, si
je 0x4478ec
mov edx, dword [esp + 0x7c]
xor eax, eax
cmp dword [edx + 0xc], 0
sete al
jmp 0x4478f1
mov esi, dword [esp + 0x14]
xor eax, eax
xor edi, edi
push eax
call sym.fastboot.exe_BN_MONT_CTX_free
add esp, 4
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x44785f
dec eax
mov dword [ebp + 0x24], eax
jmp 0x4478cc
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], esi
lea edx, [ecx - 1]
mov dword [ebp + 0x18], edx
mov esi, dword [ebp + 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, esi
sub edx, eax
jbe 0x4478be
mov ecx, dword [ebp + 0xc]
mov ebx, ecx
sub ebx, edx
test edx, edx
mov dword [ebp + 0xc], ebx
je 0x4478be
dec ecx
mov edx, eax
and ecx, 0xf
sub edx, esi
nop word cs:[eax + eax]
nop dword [eax]
test ecx, ecx
je 0x4478aa
dec ecx
inc edx
jne 0x4478a0
jmp 0x4478be
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x140]
mov dword [ebp + 4], ecx
mov ecx, 0xf
inc edx
jne 0x4478a0
mov esi, dword [esp + 0x14]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x28], 0
push esi
call sym.fastboot.exe_BN_CTX_free
add esp, 4
jmp 0x4474c2
xor edi, edi
jmp 0x4474c2
mov esi, dword [esp + 0x14]
xor eax, eax
jmp 0x447845
mov eax, 1
mov dword [ecx], eax
jmp 0x4474bd
mov ecx, 0x22
jmp 0x4473d0
mov dword [esp + 0x38], 0
jmp 0x447695
push edx
push ecx
mov ebp, ecx
call fcn.004350a0
add esp, 8
test eax, eax
je 0x44823d
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [edx + 0x14]
sub ecx, dword [eax]
mov eax, dword [ebp]
mov dword [eax], ecx
mov ecx, dword [edx + 0x18]
cmp ecx, 2
jl 0x44795a
mov eax, 1
mov ecx, dword [edx + 0x14]
mov edx, dword [ebp]
mov ecx, dword [ecx + eax*4]
not ecx
mov dword [edx + eax*4], ecx
mov edx, dword [esp + 0xc]
inc eax
mov ecx, dword [edx + 0x18]
cmp eax, ecx
jl 0x447940
mov dword [ebp + 4], ecx
mov dword [ebp + 0xc], 0
push ebp
push ebx
push dword [esp + 0x30]
call fcn.004357e0
add esp, 0xc
test eax, eax
je 0x44823d
mov eax, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x3c], 1
xor eax, 0x80000000
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x48]
push dword [esp + 0x34]
push 2
push eax
mov esi, dword [esp + 0x5c]
push esi
call fcn.00448370
add esp, 0x10
test eax, eax
je 0x448221
mov eax, dword [esp + 0xc]
push eax
mov eax, dword [esp + 0x24]
push eax
push ebx
push dword [esp + 0x64]
push esi
mov esi, dword [esp + 0x1c]
push esi
call sym.fastboot.exe_BN_mod_exp_mont_consttime
add esp, 0x18
test eax, eax
je 0x448221
add edi, dword [esp + 0x48]
mov dword [esp + 0x4c], edi
sub esp, 8
mov dword [esp + 4], 0x435f70
mov dword [esp], 0x53f3a0
call sym.fastboot.exe_CRYPTO_once
add esp, 8
mov edi, dword [esi + 4]
mov edx, dword [0x53f3a8]
xor ecx, ecx
mov dword [esp + 4], edi
sub edi, edx
jge 0x447a88
mov eax, dword [esp + 4]
mov ebx, dword [0x53f3a4]
mov ebp, edx
xor ecx, ecx
sub ebp, eax
cmp ebp, 7
jbe 0x447a79
mov esi, dword [esp + 4]
mov ecx, ebx
mov ebx, ebp
pxor xmm0, xmm0
pxor xmm1, xmm1
and ebx, 0xfffffff8
mov dword [esp], ecx
lea eax, [esi + ebx]
lea ecx, [ecx + esi*4 + 0x10]
mov esi, ebx
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add esi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x447a3f
por xmm1, xmm0
cmp ebp, ebx
mov ebx, dword [esp]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x447a88
mov esi, edx
lea ebx, [ebx + eax*4]
sub esi, eax
or ecx, dword [ebx]
add ebx, 4
dec esi
jne 0x447a80
mov eax, dword [esp + 4]
cmp edx, eax
jge 0x447b02
mov esi, dword [esp + 8]
cmp edi, 7
mov ebp, dword [esi]
ja 0x447a9f
mov ebx, edx
jmp 0x447af2
mov esi, edi
movd xmm1, ecx
mov dword [esp], ebp
lea ecx, [ebp + edx*4 + 0x10]
pxor xmm0, xmm0
and esi, 0xfffffff8
lea ebx, [edx + esi]
mov ebp, esi
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add ebp, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x447ab8
por xmm0, xmm1
mov ebp, dword [esp]
cmp edi, esi
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ecx, xmm0
je 0x447b02
mov esi, eax
lea edi, [ebp + ebx*4]
sub esi, ebx
or ecx, dword [edi]
add edi, 4
dec esi
jne 0x447afa
cmp eax, edx
cmovle edx, eax
test edx, edx
jle 0x447b69
mov esi, dword [esp + 8]
mov edi, dword [0x53f3a4]
xor ebx, ebx
cmp edx, 3
mov esi, dword [esi]
jbe 0x447b5c
mov ebx, edx
movd xmm0, ecx
xor ecx, ecx
and ebx, 0xfffffffc
movdqu xmm1, xmmword [esi + ecx*4]
movdqu xmm2, xmmword [edi + ecx*4]
add ecx, 4
cmp ebx, ecx
pxor xmm2, xmm1
por xmm0, xmm2
jne 0x447b29
pshufd xmm1, xmm0, 0x4e
cmp edx, ebx
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ecx, xmm0
je 0x447b69
mov ebp, dword [edi + ebx*4]
xor ebp, dword [esi + ebx*4]
inc ebx
or ecx, ebp
cmp ebx, edx
jl 0x447b5c
mov edx, dword [esp + 8]
mov esi, dword [0x53f3b0]
xor ebp, ebp
mov edx, dword [edx + 0xc]
xor esi, edx
mov dword [esp + 0x18], edx
mov dword [esp], esi
mov esi, dword [esp + 0x34]
mov ebx, dword [esi + 4]
sub eax, ebx
mov dword [esp + 0x24], eax
jge 0x447c1b
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 4]
mov edx, ebx
xor ebp, ebp
mov edi, dword [esi]
sub edx, eax
cmp edx, 7
jbe 0x447c0c
mov ebp, dword [esp + 4]
mov esi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
mov dword [esp + 0x1c], edi
and esi, 0xfffffff8
lea eax, [ebp + esi]
lea ebp, [edi + ebp*4 + 0x10]
mov dword [esp + 0x10], eax
mov eax, esi
movdqu xmm2, xmmword [ebp - 0x10]
movdqu xmm3, xmmword [ebp]
add ebp, 0x20
add esi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x447bcc
por xmm1, xmm0
cmp edx, eax
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x447c1b
mov esi, ebx
lea edi, [edi + eax*4]
sub esi, eax
or ebp, dword [edi]
add edi, 4
dec esi
jne 0x447c13
mov eax, dword [esp + 4]
cmp ebx, eax
jge 0x447ca2
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov edi, dword [esi]
cmp edx, 7
ja 0x447c36
mov esi, ebx
jmp 0x447c93
and edx, 0xfffffff8
movd xmm1, ebp
mov dword [esp + 0x1c], edi
lea edi, [edi + ebx*4 + 0x10]
pxor xmm0, xmm0
lea esi, [ebx + edx]
mov ebp, edx
mov dword [esp + 0x10], esi
movdqu xmm2, xmmword [edi - 0x10]
movdqu xmm3, xmmword [edi]
add edi, 0x20
add ebp, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x447c52
por xmm0, xmm1
cmp dword [esp + 0x24], edx
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebp, xmm0
je 0x447ca2
mov edx, eax
sub edx, esi
lea esi, [edi + esi*4]
or ebp, dword [esi]
add esi, 4
dec edx
jne 0x447c9a
mov edi, dword [esp + 0x34]
or dword [esp], ecx
cmp eax, ebx
cmovle ebx, eax
test ebx, ebx
jle 0x447d0c
mov eax, dword [esp + 8]
mov ecx, dword [edi]
xor edx, edx
cmp ebx, 3
mov eax, dword [eax]
jbe 0x447cff
mov edx, ebx
movd xmm0, ebp
xor esi, esi
and edx, 0xfffffffc
movdqu xmm1, xmmword [eax + esi*4]
movdqu xmm2, xmmword [ecx + esi*4]
add esi, 4
cmp edx, esi
pxor xmm2, xmm1
por xmm0, xmm2
jne 0x447ccc
pshufd xmm1, xmm0, 0x4e
cmp ebx, edx
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebp, xmm0
je 0x447d0c
mov esi, dword [ecx + edx*4]
xor esi, dword [eax + edx*4]
inc edx
or ebp, esi
cmp edx, ebx
jl 0x447cff
cmp dword [esp], 0
mov eax, dword [esp + 0x18]
sete bl
xor eax, dword [edi + 0xc]
or eax, ebp
sete bh
push dword [esp + 0x20]
mov eax, dword [esp + 0x10]
push eax
push eax
mov eax, dword [esp + 0x14]
push eax
push eax
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
xor edi, edi
test eax, eax
je 0x448239
or bl, bh
movzx eax, bl
neg eax
cmp dword [esp + 0x38], 2
mov dword [esp + 0x40], eax
jl 0x4481b7
mov edx, eax
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], edx
push ebp
push eax
mov esi, dword [esp + 0x10]
push esi
push esi
push esi
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x448239
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 4]
xor ebp, ebp
xor eax, dword [esp + 0x44]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], edx
dec eax
and eax, dword [esp + 0x5c]
sub edx, ecx
mov dword [esp + 0x1c], edx
mov dword [esp], eax
jge 0x447e48
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 4]
mov ebx, ecx
xor ebp, ebp
mov esi, dword [eax]
sub ebx, edx
cmp ebx, 7
jbe 0x447e2c
mov eax, dword [esp + 4]
mov ebp, esi
mov esi, ebx
pxor xmm0, xmm0
pxor xmm1, xmm1
and esi, 0xfffffff8
mov dword [esp + 0x10], ebp
lea edx, [eax + esi]
lea ebp, [ebp + eax*4 + 0x10]
mov eax, esi
nop word [eax + eax]
movdqu xmm2, xmmword [ebp - 0x10]
movdqu xmm3, xmmword [ebp]
add ebp, 0x20
add eax, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x447df0
por xmm1, xmm0
cmp ebx, esi
mov esi, dword [esp + 0x10]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x447e48
mov eax, ecx
lea esi, [esi + edx*4]
sub eax, edx
nop word cs:[eax + eax]
nop dword [eax]
or ebp, dword [esi]
add esi, 4
dec eax
jne 0x447e40
mov ebx, dword [esp]
sar ebx, 0x1f
cmp ecx, dword [esp + 4]
jge 0x447ee8
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x1c]
mov esi, dword [eax]
cmp edx, 7
mov dword [esp + 0x10], esi
ja 0x447e6f
mov esi, ecx
jmp 0x447ecf
mov eax, edx
mov dword [esp], ebx
movd xmm1, ebp
lea ebp, [esi + ecx*4 + 0x10]
pxor xmm0, xmm0
and eax, 0xfffffff8
lea ebx, [ecx + eax]
mov dword [esp + 0x30], ebx
mov ebx, eax
nop dword [eax]
movdqu xmm2, xmmword [ebp - 0x10]
movdqu xmm3, xmmword [ebp]
add ebp, 0x20
add ebx, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x447e90
por xmm0, xmm1
mov ebx, dword [esp]
mov esi, dword [esp + 0x30]
cmp edx, eax
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebp, xmm0
je 0x447ee8
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
sub eax, esi
lea edx, [edx + esi*4]
nop dword [eax]
or ebp, dword [edx]
add edx, 4
dec eax
jne 0x447ee0
mov eax, dword [esp + 4]
or ebx, dword [esp + 0x18]
cmp eax, ecx
mov dword [esp], ebx
cmovle ecx, eax
test ecx, ecx
jle 0x447f6d
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov eax, dword [esp + 0x28]
mov esi, dword [eax]
xor eax, eax
cmp ecx, 3
jbe 0x447f60
mov eax, ecx
movd xmm0, ebp
xor ebx, ebx
and eax, 0xfffffffc
nop word [eax + eax]
movdqu xmm1, xmmword [edx + ebx*4]
movdqu xmm2, xmmword [esi + ebx*4]
add ebx, 4
cmp eax, ebx
pxor xmm2, xmm1
por xmm0, xmm2
jne 0x447f20
pshufd xmm1, xmm0, 0x4e
cmp ecx, eax
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd ebp, xmm0
je 0x447f6d
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, dword [esi + eax*4]
xor ebx, dword [edx + eax*4]
inc eax
or ebp, ebx
cmp eax, ecx
jl 0x447f60
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x28]
mov ebx, dword [esi + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], ecx
xor eax, ecx
xor ecx, ecx
or eax, ebp
mov eax, dword [esp]
sete cl
xor edx, edx
not eax
and eax, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], eax
sub ecx, ebx
mov dword [esp + 0x10], ecx
jge 0x448048
mov eax, dword [esp + 0x2c]
mov ebp, ebx
xor edx, edx
mov esi, dword [eax]
mov eax, dword [esp + 4]
sub ebp, eax
cmp ebp, 7
jbe 0x44802f
mov eax, dword [esp + 4]
mov ecx, esi
mov esi, ebp
pxor xmm0, xmm0
pxor xmm1, xmm1
and esi, 0xfffffff8
mov dword [esp + 0x30], ecx
lea edx, [eax + esi]
mov dword [esp + 0x54], edx
lea edx, [ecx + eax*4 + 0x10]
mov ecx, esi
nop word cs:[eax + eax]
nop
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
add edx, 0x20
add ecx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x447ff0
por xmm1, xmm0
cmp ebp, esi
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x54]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x448048
mov ecx, ebx
lea esi, [esi + eax*4]
sub ecx, eax
nop word cs:[eax + eax]
or edx, dword [esi]
add esi, 4
dec ecx
jne 0x448040
mov ebp, dword [esp + 0x18]
neg ebp
cmp ebx, dword [esp + 4]
mov dword [esp + 0x18], ebp
jge 0x4480e8
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
cmp ecx, 7
ja 0x44806f
mov esi, ebx
jmp 0x4480d1
and ecx, 0xfffffff8
movd xmm1, edx
lea edx, [eax + ebx*4 + 0x10]
pxor xmm0, xmm0
mov dword [esp + 0x30], eax
lea esi, [ebx + ecx]
mov ebp, ecx
nop word [eax + eax]
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
add edx, 0x20
add ebp, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x448090
por xmm0, xmm1
cmp dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd edx, xmm0
je 0x4480e8
mov ecx, dword [esp + 4]
sub ecx, esi
lea esi, [eax + esi*4]
nop word [eax + eax]
or edx, dword [esi]
add esi, 4
dec ecx
jne 0x4480e0
mov eax, dword [esp + 4]
or dword [esp], ebp
cmp eax, ebx
cmovle ebx, eax
test ebx, ebx
jle 0x44816d
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 8]
xor ebp, ebp
cmp ebx, 3
mov ecx, dword [eax]
mov esi, dword [esi]
jbe 0x448160
mov ebp, ebx
movd xmm0, edx
xor edx, edx
and ebp, 0xfffffffc
nop word cs:[eax + eax]
movdqu xmm1, xmmword [ecx + edx*4]
movdqu xmm2, xmmword [esi + edx*4]
add edx, 4
cmp ebp, edx
pxor xmm2, xmm1
por xmm0, xmm2
jne 0x448120
pshufd xmm1, xmm0, 0x4e
cmp ebx, ebp
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd edx, xmm0
je 0x44816d
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + ebp*4]
xor eax, dword [ecx + ebp*4]
inc ebp
or edx, eax
cmp ebp, ebx
jl 0x448160
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
or dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
xor ecx, dword [eax + 0xc]
xor eax, eax
or ecx, edx
mov edx, dword [esp]
sete al
mov ecx, edx
not ecx
test eax, ecx
jne 0x4481b7
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x20]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
jl 0x447d69
jmp 0x4481bf
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp dword [esp + 0x40], 0
je 0x44822e
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x3c]
test eax, eax
je 0x4481e3
push eax
push ebp
push 1
call dword [eax + 4]
add esp, 0xc
test eax, eax
je 0x448239
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x60]
inc ebp
xor eax, eax
cmp ebp, 0x11
mov dword [esp + 0x3c], ebp
setb al
mov ebp, eax
mov edx, ecx
mov eax, ecx
sub edx, edi
xor eax, edi
mov edi, ecx
xor edx, ecx
or edx, eax
lea eax, [esp + 0x48]
xor edx, ecx
sar edx, 0x1f
or edx, ebp
jne 0x447995
mov dword [esi], 1
jmp 0x448234
xor edi, edi
jmp 0x448239
mov esi, dword [esp + 0x14]
jmp 0x447845
mov dword [esi], 0
mov edi, 1
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
jmp 0x447845