Function at 0x43e260
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov edi, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov dword [edi], 0
cmp dword [esi + 0xc], 0
jne 0x43e298
push dword [esp + 0xb8]
push esi
call sym.fastboot.exe_BN_ucmp
add esp, 8
test eax, eax
js 0x43e2bf
push 0xad
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x6b
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ebx, ebx
mov eax, ebx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esi + 4]
mov ebx, dword [esp + 0xac]
test ebp, ebp
je 0x43e37e
mov eax, dword [esi]
xor ecx, ecx
cmp ebp, 8
mov edx, 0
jb 0x43e339
mov ecx, ebp
mov edi, ebx
lea edx, [eax + 0x10]
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
mov ebx, ecx
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
add edx, 0x20
add ebx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43e300
por xmm1, xmm0
cmp ebp, ecx
mov ebx, edi
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x43e348
mov edi, ebp
sub edi, ecx
lea ecx, [eax + ecx*4]
or edx, dword [ecx]
add ecx, 4
dec edi
jne 0x43e340
mov edi, dword [esp + 0xb0]
test edx, edx
je 0x43e37e
test ebp, ebp
jle 0x43e35c
test byte [eax], 1
jne 0x43e3d6
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x43e371
mov eax, dword [eax]
test byte [eax], 1
jne 0x43e3e0
mov dword [edi], 1
push 0xc6
jmp 0x43e396
mov ecx, dword [esp + 0xb8]
cmp dword [ecx + 0xc], 0
je 0x43e3a2
mov dword [edi], 1
push 0xb6
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x70
jmp 0x43e2a4
mov eax, dword [ecx + 4]
test eax, eax
je 0x43e38b
mov ecx, dword [ecx]
mov esi, dword [ecx]
xor esi, 1
cmp eax, 2
jl 0x43e6e8
lea edi, [eax - 1]
mov edx, 1
cmp edi, 8
jae 0x43e674
mov edi, dword [esp + 0xb0]
jmp 0x43e6ce
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 4]
mov edi, dword [esp + 0xbc]
cmp ebp, ecx
mov edx, ebp
mov dword [esp + 0x8c], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
cmova edx, ecx
mov dword [esp + 0x1c], edx
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
mov ebp, eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x3c], eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x60], eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x68], eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x4c], eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x18], eax
push edi
call sym.fastboot.exe_BN_CTX_get
mov ecx, ebx
add esp, 4
xor ebx, ebx
test ecx, ecx
mov dword [esp + 0x48], eax
je 0x43e994
test ebp, ebp
je 0x43e994
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
je 0x43e994
test eax, eax
je 0x43e994
cmp dword [esp + 0x68], 0
je 0x43e994
test edx, edx
je 0x43e994
cmp dword [esp + 0x18], 0
je 0x43e994
cmp dword [esp + 0x48], 0
je 0x43e994
cmp ecx, esi
mov dword [esp + 0x5c], ebp
je 0x43e514
push dword [esi + 4]
mov ebx, ecx
push ecx
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e992
mov eax, dword [esi + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x43e501
push ecx
push dword [esi]
push dword [ebx]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ebp, dword [esp + 0x5c]
mov ecx, ebx
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
xor ebx, ebx
jmp 0x43e51c
test esi, esi
je 0x43e994
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x58], ecx
cmp ebp, esi
je 0x43e56b
push dword [esi + 4]
push ebp
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e994
mov eax, dword [esi + 4]
mov ebp, dword [esp + 0x5c]
lea ecx, [eax*4]
test ecx, ecx
je 0x43e562
push ecx
push dword [esi]
push dword [ebp]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [ebp + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebp + 0xc], eax
push 1
mov ebp, dword [esp + 0x40]
push ebp
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e994
mov dword [ebp + 0xc], 0
mov eax, dword [ebp]
mov dword [eax], 1
mov dword [ebp + 4], 1
push 1
mov esi, dword [esp + 0x50]
push esi
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e994
mov dword [esi + 0xc], 0
mov ecx, dword [esp + 4]
mov eax, dword [esi]
mov dword [eax], 1
mov dword [esi + 4], 1
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 4]
mov edx, eax
sub edx, ecx
jbe 0x43e708
mov esi, dword [esi]
mov dword [esp + 8], esi
mov esi, ecx
xor ecx, ecx
cmp edx, 8
jb 0x43e652
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov esi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and esi, 0xfffffff8
mov dword [esp + 0xc], esi
lea edi, [ecx + esi]
lea ecx, [ebp + ecx*4 + 0x10]
mov dword [esp + 0x10], edi
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add esi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43e60e
por xmm1, xmm0
cmp edx, dword [esp + 0xc]
mov edi, dword [esp + 0xbc]
mov esi, dword [esp + 0x10]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x43e663
mov edx, dword [esp + 8]
sub eax, esi
lea edx, [edx + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x43e65b
mov esi, dword [esp + 0x58]
test ecx, ecx
jne 0x43e97a
jmp 0x43e73f
mov ebx, edi
movd xmm1, esi
lea esi, [ecx + 0x14]
pxor xmm0, xmm0
and ebx, 0xfffffff8
lea edx, [ebx + 1]
mov ebp, ebx
movdqu xmm2, xmmword [esi - 0x10]
movdqu xmm3, xmmword [esi]
add esi, 0x20
add ebp, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x43e689
por xmm0, xmm1
cmp edi, ebx
mov ebx, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd esi, xmm0
je 0x43e6e8
sub eax, edx
lea ecx, [ecx + edx*4]
nop word cs:[eax + eax]
nop dword [eax]
or esi, dword [ecx]
add ecx, 4
dec eax
jne 0x43e6e0
test esi, esi
jne 0x43e38b
mov dword [ebx + 0xc], 0
mov dword [ebx + 4], 0
mov ebx, 1
jmp 0x43e2b2
push ecx
push esi
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e994
mov eax, dword [esi + 4]
mov ecx, dword [esp + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x43e73f
shl eax, 2
add eax, dword [esi]
push ecx
push 0
push eax
call sub.msvcrt.dll_memset
mov esi, dword [esp + 0x64]
add esp, 0xc
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0x5c]
mov dword [esi + 4], ecx
mov eax, dword [ebp + 4]
mov edx, eax
sub edx, ecx
jbe 0x43e7db
mov ebp, dword [ebp]
mov esi, ecx
xor ecx, ecx
cmp edx, 8
jb 0x43e7bf
mov ecx, dword [esp + 4]
mov edi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
mov dword [esp + 8], edi
lea esi, [ecx + edi]
lea ecx, [ebp + ecx*4 + 0x10]
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43e77f
por xmm1, xmm0
cmp edx, dword [esp + 8]
mov edi, dword [esp + 0xbc]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x43e7cd
sub eax, esi
lea edx, [ebp + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x43e7c5
mov ebp, dword [esp + 0x5c]
test ecx, ecx
jne 0x43e97a
jmp 0x43e813
push ecx
push ebp
mov esi, ecx
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e994
mov eax, dword [ebp + 4]
mov ecx, esi
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x43e813
shl eax, 2
add eax, dword [ebp]
push ecx
push 0
push eax
call sub.msvcrt.dll_memset
mov ebp, dword [esp + 0x68]
add esp, 0xc
mov esi, dword [esp + 4]
mov dword [ebp + 4], esi
mov ebp, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
mov edx, eax
sub edx, esi
jbe 0x43e8b1
mov ebp, dword [ebp]
xor ecx, ecx
cmp edx, 8
jb 0x43e895
mov ecx, dword [esp + 4]
mov edi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
lea esi, [ecx + edi]
lea ecx, [ebp + ecx*4 + 0x10]
mov dword [esp + 8], esi
mov esi, edi
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43e853
por xmm1, xmm0
cmp edx, esi
mov edi, dword [esp + 0xbc]
mov esi, dword [esp + 8]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x43e8a3
sub eax, esi
lea edx, [ebp + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x43e89b
mov ebp, dword [esp + 0x3c]
test ecx, ecx
jne 0x43e97a
jmp 0x43e8e1
push esi
push ebp
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e994
mov eax, dword [ebp + 4]
sub esi, eax
shl esi, 2
test esi, esi
je 0x43e8e1
shl eax, 2
add eax, dword [ebp]
push esi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esp + 4]
mov dword [ebp + 4], ecx
mov ebp, dword [esp + 0x68]
mov eax, dword [ebp + 4]
mov edx, eax
sub edx, ecx
jbe 0x43ea04
mov ebx, dword [ebp]
mov esi, dword [esp + 0x1c]
mov ebp, ecx
xor ecx, ecx
cmp edx, 8
jb 0x43e965
mov ecx, dword [esp + 4]
mov edi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
mov dword [esp + 8], edi
lea ebp, [ecx + edi]
lea ecx, [ebx + ecx*4 + 0x10]
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43e925
por xmm1, xmm0
cmp edx, dword [esp + 8]
mov edi, dword [esp + 0xbc]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x43e972
sub eax, ebp
lea edx, [ebx + ebp*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x43e96a
test ecx, ecx
je 0x43ea3b
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
xor ebx, ebx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x43e9a4
dec eax
mov dword [edi + 0x24], eax
jmp 0x43e2b2
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
lea edx, [ecx - 1]
mov dword [edi + 0x18], edx
mov esi, dword [edi + 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, esi
sub edx, eax
jbe 0x43e9f5
mov ecx, dword [edi + 0xc]
mov ebp, edi
mov edi, ecx
sub edi, edx
test edx, edx
mov dword [ebp + 0xc], edi
mov edi, ebp
je 0x43e9f5
dec ecx
mov edx, eax
and ecx, 0xf
sub edx, esi
test ecx, ecx
je 0x43e9e1
dec ecx
inc edx
jne 0x43e9d7
jmp 0x43e9f5
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x140]
mov dword [edi + 4], ecx
mov ecx, 0xf
inc edx
jne 0x43e9d7
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], 0
jmp 0x43e2b2
push ecx
push ebp
mov esi, ecx
call fcn.004350a0
add esp, 8
test eax, eax
je 0x43e994
mov eax, dword [ebp + 4]
mov ecx, esi
mov esi, dword [esp + 0x1c]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x43ea3b
mov edx, dword [esp + 0x68]
shl eax, 2
add eax, dword [edx]
push ecx
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
mov dword [eax + 4], ecx
mov eax, dword [edx + 4]
cmp eax, esi
jbe 0x43eae0
mov edi, dword [esp]
mov ebx, dword [edx]
mov ebp, esi
cmp ecx, edi
cmovb edi, ecx
xor edx, edx
not edi
lea ecx, [eax + edi + 1]
cmp ecx, 8
jb 0x43eac9
mov edx, 3
mov dword [esp + 8], ecx
and ecx, 0xfffffff8
pxor xmm0, xmm0
pxor xmm1, xmm1
sub edx, edi
lea ebp, [esi + ecx]
mov edi, ecx
lea edx, [ebx + edx*4]
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
add edx, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43ea8c
por xmm1, xmm0
cmp dword [esp + 8], ecx
mov esi, dword [esp + 0x1c]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x43ead6
sub eax, ebp
lea ecx, [ebx + ebp*4]
or edx, dword [ecx]
add ecx, 4
dec eax
jne 0x43eace
test edx, edx
jne 0x43ed70
jmp 0x43eb17
push esi
push edx
mov edi, edx
call fcn.004350a0
add esp, 8
test eax, eax
je 0x440cb0
mov eax, dword [edi + 4]
mov ecx, esi
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x43eb17
mov edx, dword [esp + 0x60]
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 + 0x60]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], esi
mov eax, dword [ecx + 4]
cmp eax, esi
jbe 0x43ebb8
mov ebx, dword [ecx]
mov ecx, dword [esp + 4]
mov edx, dword [esp]
cmp ecx, edx
cmovb edx, ecx
not edx
lea ebp, [eax + edx + 1]
mov edi, edx
xor edx, edx
cmp ebp, 8
jb 0x43eba1
mov edx, dword [esp + 0x1c]
mov ecx, ebp
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
lea esi, [edx + ecx]
mov edx, 3
sub edx, edi
mov edi, ecx
lea edx, [ebx + edx*4]
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
add edx, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43eb6a
por xmm1, xmm0
cmp ebp, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x43ebae
sub eax, esi
lea ecx, [ebx + esi*4]
or edx, dword [ecx]
add ecx, 4
dec eax
jne 0x43eba6
test edx, edx
jne 0x43ed70
jmp 0x43ebf3
push esi
push ecx
call fcn.004350a0
add esp, 8
test eax, eax
je 0x440cb0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x43ebf3
mov edx, dword [esp + 0x4c]
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 + 0x1c]
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov edx, eax
sub edx, dword [esp + 4]
jbe 0x43ec94
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 4]
xor ebp, ebp
cmp edx, 8
mov ecx, dword [ecx]
mov dword [esp], ecx
jb 0x43ec7a
mov esi, dword [esp + 4]
mov edi, dword [esp]
mov ecx, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
lea ebp, [edi + esi*4 + 0x10]
lea ebx, [esi + ecx]
mov edi, ecx
movdqu xmm2, xmmword [ebp - 0x10]
movdqu xmm3, xmmword [ebp]
add ebp, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43ec42
por xmm1, xmm0
cmp edx, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x43ec8a
mov ecx, dword [esp]
sub eax, ebx
lea ecx, [ecx + ebx*4]
or ebp, dword [ecx]
add ecx, 4
dec eax
jne 0x43ec82
test ebp, ebp
jne 0x43ed70
jmp 0x43ecd5
push dword [esp + 4]
push dword [esp + 0x1c]
call fcn.004350a0
add esp, 8
test eax, eax
je 0x440cb0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov eax, dword [eax + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x43ecd5
mov edx, dword [esp + 0x18]
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 + 4]
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 4]
mov edx, eax
sub edx, ecx
jbe 0x43ed96
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 4]
xor ebp, ebp
cmp edx, 8
mov ecx, dword [ecx]
mov dword [esp], ecx
jb 0x43ed5c
mov esi, dword [esp + 4]
mov edi, dword [esp]
mov ecx, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and ecx, 0xfffffff8
lea ebp, [edi + esi*4 + 0x10]
lea ebx, [esi + ecx]
mov edi, ecx
movdqu xmm2, xmmword [ebp - 0x10]
movdqu xmm3, xmmword [ebp]
add ebp, 0x20
add edi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x43ed24
por xmm1, xmm0
cmp edx, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x43ed6c
mov ecx, dword [esp]
sub eax, ebx
lea ecx, [ecx + ebx*4]
or ebp, dword [ecx]
add ecx, 4
dec eax
jne 0x43ed64
test ebp, ebp
je 0x43edd7
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
xor ebx, ebx
mov edi, dword [esp + 0xbc]
jmp 0x43e994
push dword [esp + 4]
push dword [esp + 0x4c]
call fcn.004350a0
add esp, 8
test eax, eax
je 0x440cb0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 4]
mov eax, dword [eax + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x43edd7
mov edx, dword [esp + 0x48]
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 + 4]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov ecx, eax
shl edx, 5
mov dword [esi + 4], ecx
shl ecx, 5
add ecx, edx
mov dword [esp + 0x84], ecx
jae 0x43ee0a
push 0xf5
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x66
jmp 0x440ca4
cmp dword [esp + 0x84], 0
je 0x440c81
mov eax, dword [esp + 4]
mov dword [esp + 0x88], 0
mov ecx, eax
mov edi, eax
lea esi, [eax - 2]
lea ebx, [eax - 1]
lea eax, [eax - 4]
and ecx, 3
and edi, 0xfffffff8
mov dword [esp + 0x80], esi
and esi, 0xfffffff8
mov dword [esp + 0x28], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], edi
mov dword [esp + 0x94], esi
mov edx, ecx
mov edi, ecx
dec ecx
and edi, 0xfffffff8
mov dword [esp + 0x50], ecx
and ecx, 0xfffffff8
and edx, 3
mov dword [esp + 0x6c], edi
mov edi, ebx
and ebx, 0xfffffff8
mov dword [esp + 0x7c], ecx
lea ecx, [esi + 1]
mov dword [esp + 0x64], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x90], ecx
jmp 0x43ef05
mov esi, dword [esp + 0x94]
mov ebx, dword [esp]
xor edx, edx
lea ecx, [ecx + esi*4]
movdqu xmm0, xmmword [eax + edx*4 + 0x14]
movdqu xmm1, xmmword [eax + edx*4 + 4]
movdqu xmm2, xmmword [eax + edx*4 + 8]
movdqu xmm3, xmmword [eax + edx*4 + 0x18]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [ebx + edx*4 + 4], xmm2
movdqu xmmword [ebx + edx*4 + 0x14], xmm3
add edx, 8
cmp esi, edx
jne 0x43eea1
cmp dword [esp + 0x80], esi
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x28]
jne 0x43fc11
jmp 0x43fc27
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov esi, eax
mov eax, dword [eax]
mov edx, dword [ecx]
mov edi, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
and eax, 1
mov ebx, edx
and edx, 1
mov ecx, dword [ecx]
neg eax
neg edx
and edx, eax
mov eax, dword [esp + 4]
mov dword [esp], ecx
test eax, eax
je 0x43f012
xor ebp, ebp
cmp eax, 4
mov dword [esp + 0x20], edx
jb 0x43f02b
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x14]
add dword [esp], 0x10
add esi, 0x10
add edi, 0x10
xor ecx, ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 0x10], eax
jmp 0x43ef94
mov edx, dword [edi]
mov esi, dword [esp + 8]
add eax, 0xfffffffc
add ebx, 0x10
add edi, 0x10
mov dword [esp + 0x10], eax
mov dword [esp], ebx
mov dword [esp + 0xc], edx
mov edx, dword [esi]
add esi, 0x10
mov dword [esp + 8], esi
mov esi, dword [esp + 0xc]
mov ebx, edx
mov eax, esi
sub eax, ecx
sub eax, edx
xor edx, edx
cmp esi, ebx
mov esi, dword [esp]
mov ebx, dword [esp + 8]
setb dl
cmove edx, ecx
mov ecx, edi
mov dword [esi - 0x10], eax
xor eax, eax
mov edi, dword [edi - 0xc]
sub edi, dword [ebx - 0xc]
setb al
cmove eax, edx
sub edi, edx
xor edx, edx
mov dword [esi - 0xc], edi
mov edi, dword [ecx - 8]
sub edi, dword [ebx - 8]
setb dl
cmove edx, eax
sub edi, eax
mov dword [esi - 8], edi
mov edi, ecx
mov eax, dword [ecx - 4]
xor ecx, ecx
sub eax, dword [ebx - 4]
mov ebx, esi
setb cl
cmove ecx, edx
sub eax, edx
mov dword [esi - 4], eax
mov eax, dword [esp + 0x10]
cmp eax, 4
jae 0x43ef71
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], edi
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43f040
jmp 0x43f06c
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], 0
jmp 0x43f75e
mov eax, dword [esp + 4]
mov ebx, dword [esp]
xor ecx, ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov esi, ecx
mov eax, dword [eax + ebp*4]
mov edx, dword [edx + ebp*4]
mov edi, eax
sub edi, ecx
xor ecx, ecx
sub edi, edx
cmp eax, edx
setb cl
mov dword [ebx + ebp*4], edi
cmovne esi, ecx
inc ebp
cmp dword [esp + 0x10], ebp
mov ecx, esi
jne 0x43f040
mov eax, dword [esp + 0x5c]
lea edx, [ecx - 1]
mov dword [esp + 0xc], ecx
xor ebp, ebp
and edx, dword [esp + 0x20]
cmp dword [esp + 4], 8
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
mov esi, edx
mov dword [esp + 0x24], edx
mov ebx, dword [eax]
mov eax, edx
not eax
mov dword [esp + 0x54], eax
jae 0x43f0a3
mov edx, dword [esp + 0x54]
jmp 0x43f125
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x54]
lea eax, [ebx + eax*4]
cmp ecx, eax
jae 0x43f0bd
mov eax, dword [esp + 4]
lea eax, [ecx + eax*4]
cmp ebx, eax
jb 0x43f125
mov eax, dword [esp + 0x40]
movd xmm0, esi
movd xmm1, edx
xor ebp, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [ebx + ebp*4]
movdqu xmm3, xmmword [ebx + ebp*4 + 0x10]
movdqu xmm4, xmmword [ecx + ebp*4]
movdqu xmm5, xmmword [ecx + ebp*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [ecx + ebp*4], xmm4
movdqu xmmword [ecx + ebp*4 + 0x10], xmm5
add ebp, 8
cmp eax, ebp
jne 0x43f0d5
cmp dword [esp + 4], eax
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov ebp, eax
je 0x43f13b
mov eax, dword [ebx + ebp*4]
mov edi, dword [ecx + ebp*4]
and eax, esi
and edi, edx
or edi, eax
mov dword [ecx + ebp*4], edi
inc ebp
cmp dword [esp + 4], ebp
jne 0x43f125
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 4]
neg dword [esp + 0xc]
mov esi, dword [eax]
mov eax, dword [esp + 0x58]
cmp edx, 4
mov edi, dword [eax]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
jb 0x43f1f0
mov dword [esp + 8], edx
mov edx, esi
xor ecx, ecx
mov esi, edi
mov ebx, dword [esi]
mov ebp, dword [eax]
mov dword [esp], eax
xor eax, eax
mov edi, ebx
sub edi, ecx
sub edi, ebp
cmp ebx, ebp
mov ebp, dword [esp]
mov ebx, dword [esp + 8]
mov dword [edx], edi
setb al
mov edi, dword [esi + 4]
cmove eax, ecx
xor ecx, ecx
sub edi, dword [ebp + 4]
mov ebp, dword [esp]
setb cl
cmove ecx, eax
sub edi, eax
xor eax, eax
mov dword [edx + 4], edi
mov edi, dword [esi + 8]
sub edi, dword [ebp + 8]
mov ebp, dword [esp]
setb al
cmove eax, ecx
sub edi, ecx
xor ecx, ecx
mov dword [edx + 8], edi
mov edi, dword [esi + 0xc]
sub edi, dword [ebp + 0xc]
setb cl
cmove ecx, eax
sub edi, eax
mov eax, dword [esp]
add ebx, 0xfffffffc
add esi, 0x10
mov dword [edx + 0xc], edi
add edx, 0x10
mov dword [esp + 8], ebx
add eax, 0x10
cmp ebx, 3
ja 0x43f168
cmp dword [esp + 0x44], 0
je 0x43f22a
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x44]
jmp 0x43f1f2
xor ecx, ecx
mov dword [esp + 8], esi
mov esi, edx
xor ebx, ebx
mov dword [esp], eax
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp]
mov eax, dword [eax + ebx*4]
mov edi, dword [edx + ebx*4]
xor edx, edx
mov ebp, eax
sub ebp, ecx
sub ebp, edi
cmp eax, edi
mov edi, dword [esp + 8]
setb dl
cmovne ecx, edx
mov dword [edi + ebx*4], ebp
inc ebx
cmp esi, ebx
jne 0x43f201
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
xor edx, edx
and ebx, dword [esp + 0xc]
cmp dword [esp + 4], 8
mov eax, dword [eax]
mov edi, dword [ecx]
mov esi, ebx
mov dword [esp + 0x20], ebx
not esi
mov dword [esp + 0xc], esi
mov esi, ebx
jae 0x43f260
mov ebx, dword [esp + 4]
mov ebp, edi
jmp 0x43f2e0
mov ebx, dword [esp + 4]
mov ebp, edi
lea edi, [edi + ebx*4]
cmp eax, edi
jae 0x43f274
lea edi, [eax + ebx*4]
cmp ebp, edi
jb 0x43f2e0
movd xmm1, dword [esp + 0xc]
mov edi, dword [esp + 0x40]
movd xmm0, esi
xor edx, edx
mov ecx, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
add edx, 8
cmp edi, edx
jne 0x43f290
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x20]
mov edx, edi
mov ebp, ecx
cmp ebx, edi
je 0x43f2ff
mov edi, dword [ebp + edx*4]
mov ecx, ebx
mov ebx, ebp
mov ebp, dword [eax + edx*4]
and ebp, dword [esp + 0xc]
and edi, esi
or ebp, edi
mov dword [eax + edx*4], ebp
inc edx
mov ebp, ebx
mov ebx, ecx
cmp ecx, edx
jne 0x43f2e0
mov eax, dword [esp + 0x18]
cmp ebx, 4
mov esi, ebx
mov ebp, dword [eax]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jb 0x43f3be
mov dword [esp], esi
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x10], 0
add ebx, dword [esi]
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], ebp
adc ecx, 0
add ebx, dword [edi]
mov dword [ebp], ebx
adc ecx, 0
xor edx, edx
add ecx, dword [esi + 4]
mov ebx, dword [edi + 4]
lea eax, [ecx + ebx]
setb dl
mov dword [ebp + 4], eax
xor eax, eax
mov ebp, dword [edi + 8]
add ebp, dword [esi + 8]
setb al
add ecx, ebx
adc edx, ebp
mov ebp, dword [esp + 8]
setb cl
xor ebx, ebx
mov dword [ebp + 8], edx
mov edx, dword [edi + 0xc]
add edx, dword [esi + 0xc]
setb bl
add cl, 0xff
mov ecx, dword [esp]
adc eax, edx
adc ebx, 0
mov dword [ebp + 0xc], eax
add esi, 0x10
add edi, 0x10
add ebp, 0x10
add ecx, 0xfffffffc
cmp ecx, 3
mov dword [esp], ecx
ja 0x43f339
cmp dword [esp + 0x44], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebx
je 0x43f3ff
mov eax, dword [esp + 0x44]
jmp 0x43f3d0
mov eax, esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
xor edx, edx
add ecx, dword [esi + edx*4]
adc edi, 0
add ecx, dword [ebx + edx*4]
mov dword [ebp + edx*4], ecx
mov ecx, edi
adc ecx, 0
inc edx
xor edi, edi
cmp eax, edx
jne 0x43f3e2
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 4]
xor esi, esi
mov ebp, dword [eax]
mov eax, dword [esp + 0x18]
cmp edx, 4
mov edi, dword [eax]
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
jb 0x43f4b6
xor ecx, ecx
mov ebx, edi
mov dword [esp + 8], edx
mov edi, dword [ebx]
mov edx, dword [eax]
mov dword [esp], eax
xor eax, eax
mov dword [esp + 0x10], edi
sub edi, ecx
sub edi, edx
cmp dword [esp + 0x10], edx
mov dword [ebp], edi
mov edi, dword [esp]
mov edx, dword [ebx + 4]
setb al
cmove eax, ecx
xor ecx, ecx
sub edx, dword [edi + 4]
mov edi, dword [esp]
setb cl
cmove ecx, eax
sub edx, eax
xor eax, eax
mov dword [ebp + 4], edx
mov edx, dword [ebx + 8]
sub edx, dword [edi + 8]
mov edi, dword [esp]
setb al
cmove eax, ecx
sub edx, ecx
xor ecx, ecx
mov dword [ebp + 8], edx
mov edx, dword [ebx + 0xc]
sub edx, dword [edi + 0xc]
mov edi, dword [esp + 8]
setb cl
cmove ecx, eax
sub edx, eax
mov eax, dword [esp]
add edi, 0xfffffffc
add ebx, 0x10
mov dword [ebp + 0xc], edx
add ebp, 0x10
mov dword [esp + 8], edi
add eax, 0x10
cmp edi, 3
ja 0x43f42b
cmp dword [esp + 0x44], 0
je 0x43f4ef
mov edi, ebx
mov ebx, dword [esp + 0x44]
jmp 0x43f4ba
xor ecx, ecx
mov ebx, edx
mov dword [esp], eax
mov dword [esp + 0x10], edi
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + esi*4]
mov eax, dword [esp]
mov edx, dword [eax + esi*4]
mov edi, ebp
xor eax, eax
sub edi, ecx
sub edi, edx
cmp ebp, edx
mov ebp, dword [esp + 8]
setb al
cmovne ecx, eax
mov dword [ebp + esi*4], edi
inc esi
cmp ebx, esi
jne 0x43f4c5
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
xor ebp, ebp
sub ebx, ecx
mov edi, dword [edx]
cmp dword [esp + 4], 8
mov eax, dword [eax]
mov edx, ebx
mov dword [esp + 0x14], ebx
not edx
mov dword [esp + 8], edx
mov dword [esp], edi
jae 0x43f526
mov esi, dword [esp + 4]
mov ecx, dword [esp + 8]
jmp 0x43f5aa
mov esi, dword [esp + 4]
mov ecx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x43f53d
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x43f5aa
movd xmm1, ecx
mov edx, dword [esp + 0x40]
mov ecx, dword [esp]
movd xmm0, ebx
xor ebp, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [eax + ebp*4]
movdqu xmm3, xmmword [eax + ebp*4 + 0x10]
movdqu xmm4, xmmword [ecx + ebp*4]
movdqu xmm5, xmmword [ecx + ebp*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + ebp*4], xmm4
movdqu xmmword [eax + ebp*4 + 0x10], xmm5
add ebp, 8
cmp edx, ebp
jne 0x43f558
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x43f5c1
mov edx, dword [esp]
mov edi, dword [eax + ebp*4]
mov edx, dword [edx + ebp*4]
and edi, ebx
and edx, ecx
or edx, edi
mov dword [eax + ebp*4], edx
inc ebp
cmp esi, ebp
jne 0x43f5aa
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
xor edx, edx
cmp esi, 8
mov eax, dword [eax]
mov edi, dword [ecx]
jae 0x43f5e3
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov ebp, edi
jmp 0x43f66f
mov ecx, dword [esp + 4]
mov ebp, edi
mov ebx, dword [esp + 0x20]
lea edi, [edi + ecx*4]
mov ecx, dword [esp + 0xc]
cmp eax, edi
jae 0x43f603
mov esi, dword [esp + 4]
lea edi, [eax + esi*4]
cmp ebp, edi
jb 0x43f66f
mov edi, dword [esp + 0x40]
movd xmm1, ecx
movd xmm0, ebx
xor edx, edx
mov ecx, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
add edx, 8
cmp edi, edx
jne 0x43f61d
mov ebp, ecx
cmp dword [esp + 4], edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, edi
je 0x43f68a
mov edi, dword [ebp + edx*4]
mov esi, ebp
mov ebp, dword [eax + edx*4]
and edi, ebx
and ebp, ecx
or ebp, edi
mov dword [eax + edx*4], ebp
inc edx
mov ebp, esi
cmp dword [esp + 4], edx
jne 0x43f66f
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
xor edx, edx
cmp dword [esp + 4], 8
mov eax, dword [eax]
mov edi, dword [ecx]
jae 0x43f6ae
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
mov ebp, edi
jmp 0x43f73a
mov ecx, dword [esp + 4]
mov ebp, edi
mov ebx, dword [esp + 0x24]
lea edi, [edi + ecx*4]
mov ecx, dword [esp + 0x54]
cmp eax, edi
jae 0x43f6ce
mov esi, dword [esp + 4]
lea edi, [eax + esi*4]
cmp ebp, edi
jb 0x43f73a
mov edi, dword [esp + 0x40]
movd xmm1, ecx
movd xmm0, ebx
xor edx, edx
mov ecx, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
add edx, 8
cmp edi, edx
jne 0x43f6e8
mov ebp, ecx
cmp dword [esp + 4], edi
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
mov edx, edi
je 0x43f755
mov edi, dword [ebp + edx*4]
mov esi, ebp
mov ebp, dword [eax + edx*4]
and edi, ebx
and ebp, ecx
or ebp, edi
mov dword [eax + edx*4], ebp
inc edx
mov ebp, esi
cmp dword [esp + 4], edx
jne 0x43f73a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x43fb7f
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
cmp ecx, 4
mov edi, dword [eax]
mov ebp, dword [edx]
jb 0x43f82a
mov esi, dword [esp]
xor eax, eax
xor edx, edx
mov dword [esp + 0x10], ecx
add edx, dword [edi]
mov dword [esp + 8], edi
mov edi, eax
mov dword [esp], esi
mov ebx, ebp
mov ecx, dword [esp + 8]
adc edi, 0
add edx, dword [ebp]
adc edi, 0
mov dword [esi], edx
xor edx, edx
add edi, dword [ecx + 4]
mov ecx, dword [ebp + 4]
mov dword [esp + 0xc], ecx
lea ecx, [edi + ecx]
setb dl
mov dword [esi + 4], ecx
mov esi, dword [esp + 8]
xor ecx, ecx
mov ebp, dword [ebp + 8]
add ebp, dword [esi + 8]
mov esi, dword [esp]
setb cl
add edi, dword [esp + 0xc]
adc edx, ebp
mov ebp, ebx
mov dword [esi + 8], edx
setb byte [esp + 0xc]
xor edx, edx
mov edi, dword [ebx + 0xc]
mov ebx, dword [esp + 8]
add edi, dword [ebx + 0xc]
mov ebx, dword [esp + 0x10]
setb dl
add byte [esp + 0xc], 0xff
adc ecx, edi
mov edi, dword [esp + 8]
adc edx, 0
add ebx, 0xfffffffc
mov dword [esi + 0xc], ecx
add ebp, 0x10
add esi, 0x10
mov dword [esp + 0x10], ebx
add edi, 0x10
cmp ebx, 3
ja 0x43f78a
cmp dword [esp + 0x64], 0
je 0x43f84f
mov ecx, dword [esp + 0x64]
mov dword [esp], esi
jmp 0x43f82e
xor edx, edx
xor eax, eax
mov esi, dword [esp]
xor ebx, ebx
add edx, dword [edi + ebx*4]
adc eax, 0
add edx, dword [ebp + ebx*4]
adc eax, 0
mov dword [esi + ebx*4], edx
inc ebx
mov edx, eax
cmp ecx, ebx
mov eax, 0
jne 0x43f833
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x1c]
mov ebp, dword [eax]
mov edi, dword [esi]
mov ebx, dword [ecx]
cmp edx, 4
jb 0x43f8f2
xor ecx, ecx
mov eax, edi
mov dword [esp], edx
mov edi, dword [eax]
mov esi, dword [ebx]
xor edx, edx
mov dword [esp + 8], edi
sub edi, ecx
sub edi, esi
cmp dword [esp + 8], esi
mov esi, dword [esp]
mov dword [ebp], edi
mov edi, dword [eax + 4]
setb dl
cmove edx, ecx
xor ecx, ecx
sub edi, dword [ebx + 4]
setb cl
cmove ecx, edx
sub edi, edx
xor edx, edx
mov dword [ebp + 4], edi
mov edi, dword [eax + 8]
sub edi, dword [ebx + 8]
setb dl
cmove edx, ecx
sub edi, ecx
xor ecx, ecx
mov dword [ebp + 8], edi
mov edi, dword [eax + 0xc]
sub edi, dword [ebx + 0xc]
setb cl
cmove ecx, edx
sub edi, edx
add esi, 0xfffffffc
add eax, 0x10
add ebx, 0x10
mov dword [ebp + 0xc], edi
add ebp, 0x10
cmp esi, 3
mov dword [esp], esi
ja 0x43f878
cmp dword [esp + 0x64], 0
je 0x43f92c
mov edx, dword [esp + 0x64]
mov edi, eax
jmp 0x43f8f4
xor ecx, ecx
mov dword [esp + 8], ebx
mov ebx, edx
xor esi, esi
mov dword [esp + 0x10], ebp
mov dword [esp], edi
mov eax, dword [esp]
mov edx, dword [eax + esi*4]
mov eax, dword [esp + 8]
mov edi, dword [eax + esi*4]
mov ebp, edx
xor eax, eax
sub ebp, ecx
sub ebp, edi
cmp edx, edi
mov edi, dword [esp + 0x10]
setb al
cmovne ecx, eax
mov dword [edi + esi*4], ebp
inc esi
cmp ebx, esi
jne 0x43f903
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
xor ebp, ebp
mov edi, dword [ecx]
mov eax, dword [eax]
mov ecx, edx
cmp esi, 8
not edx
mov dword [esp + 8], edx
mov dword [esp], edi
jae 0x43f95b
mov ebx, dword [esp + 8]
jmp 0x43f9db
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x43f96e
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x43f9db
movd xmm0, ecx
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp]
movd xmm1, ebx
xor ebp, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [eax + ebp*4]
movdqu xmm3, xmmword [eax + ebp*4 + 0x10]
movdqu xmm4, xmmword [ecx + ebp*4]
movdqu xmm5, xmmword [ecx + ebp*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + ebp*4], xmm4
movdqu xmmword [eax + ebp*4 + 0x10], xmm5
add ebp, 8
cmp edx, ebp
jne 0x43f989
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x43f9f2
mov edx, dword [esp]
mov edi, dword [eax + ebp*4]
mov edx, dword [edx + ebp*4]
and edi, ecx
and edx, ebx
or edx, edi
mov dword [eax + ebp*4], edx
inc ebp
cmp esi, ebp
jne 0x43f9db
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
xor ebp, ebp
cmp esi, 8
mov edi, dword [ecx]
mov eax, dword [eax]
mov ecx, edx
not edx
mov dword [esp + 8], edx
mov dword [esp], edi
jae 0x43fa1d
mov ebx, dword [esp + 8]
jmp 0x43fa9d
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x43fa30
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x43fa9d
movd xmm0, ecx
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp]
movd xmm1, ebx
xor ebp, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [ecx + ebp*4]
movdqu xmm3, xmmword [ecx + ebp*4 + 0x10]
movdqu xmm4, xmmword [eax + ebp*4]
movdqu xmm5, xmmword [eax + ebp*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + ebp*4], xmm4
movdqu xmmword [eax + ebp*4 + 0x10], xmm5
add ebp, 8
cmp edx, ebp
jne 0x43fa4b
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x43fab4
mov edx, dword [esp]
mov edi, dword [edx + ebp*4]
mov edx, dword [eax + ebp*4]
and edi, ecx
and edx, ebx
or edx, edi
mov dword [eax + ebp*4], edx
inc ebp
cmp esi, ebp
jne 0x43fa9d
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
xor ebp, ebp
cmp esi, 8
mov edi, dword [ecx]
mov eax, dword [eax]
mov ecx, edx
not edx
mov dword [esp + 8], edx
mov dword [esp], edi
jae 0x43fadf
mov ebx, dword [esp + 8]
jmp 0x43fb5f
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x43faf2
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x43fb5f
movd xmm0, ecx
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp]
movd xmm1, ebx
xor ebp, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [ecx + ebp*4]
movdqu xmm3, xmmword [ecx + ebp*4 + 0x10]
movdqu xmm4, xmmword [eax + ebp*4]
movdqu xmm5, xmmword [eax + ebp*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + ebp*4], xmm4
movdqu xmmword [eax + ebp*4 + 0x10], xmm5
add ebp, 8
cmp edx, ebp
jne 0x43fb0d
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x43fb76
mov edx, dword [esp]
mov edi, dword [edx + ebp*4]
mov edx, dword [eax + ebp*4]
and edi, ecx
and edx, ebx
or edx, edi
mov dword [eax + ebp*4], edx
inc ebp
cmp esi, ebp
jne 0x43fb5f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [eax]
mov esi, ecx
and esi, 1
mov edx, esi
dec esi
neg edx
cmp dword [esp + 4], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x5c]
mov edx, dword [edx]
mov edx, dword [edx]
mov dword [esp + 0x2c], edx
je 0x43fc37
shr ecx, 1
cmp dword [esp + 0x28], 0
je 0x43fc3e
mov edx, dword [eax + 4]
mov ebx, dword [esp]
shl edx, 0x1f
or edx, ecx
cmp dword [esp + 0x28], 1
mov dword [ebx], edx
je 0x43fc27
cmp dword [esp + 0x80], 7
lea ecx, [eax + 4]
mov edx, 1
jbe 0x43fc0a
mov esi, dword [esp]
lea edi, [esi + 4]
mov esi, dword [esp + 4]
lea ebp, [eax + esi*4]
cmp edi, ebp
jae 0x43ee92
mov esi, dword [esp + 0x28]
mov edi, dword [esp]
lea edi, [edi + esi*4]
cmp ecx, edi
jae 0x43ee92
mov esi, dword [esp + 0x28]
mov ebx, dword [esp]
mov edi, dword [ecx]
mov ebp, dword [eax + edx*4 + 4]
lea ecx, [eax + edx*4 + 4]
shld ebp, edi, 0x1f
mov dword [ebx + edx*4], ebp
inc edx
cmp esi, edx
jne 0x43fc11
mov edx, dword [esp + 4]
mov ecx, dword [eax + edx*4 - 4]
shr ecx, 1
mov dword [ebx + edx*4 - 4], ecx
jmp 0x43fc43
mov ebx, esi
jmp 0x43fd04
mov edx, dword [esp]
mov dword [edx], ecx
xor ecx, ecx
cmp dword [esp + 4], 8
jae 0x43fc5c
mov esi, dword [esp]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
jmp 0x43fce5
mov esi, dword [esp]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
lea edx, [esi + edx*4]
cmp eax, edx
jae 0x43fc7d
mov edx, dword [esp + 4]
lea edx, [eax + edx*4]
cmp esi, edx
jb 0x43fce5
mov edx, dword [esp + 0x40]
movd xmm0, ebx
movd xmm1, ebp
xor ecx, ecx
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + ecx*4]
movdqu xmm3, xmmword [esi + ecx*4 + 0x10]
movdqu xmm4, xmmword [eax + ecx*4]
movdqu xmm5, xmmword [eax + ecx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + ecx*4], xmm4
movdqu xmmword [eax + ecx*4 + 0x10], xmm5
add ecx, 8
cmp edx, ecx
jne 0x43fc95
cmp dword [esp + 4], edx
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
mov ecx, edx
je 0x43fcfb
mov edx, dword [esi + ecx*4]
mov edi, dword [eax + ecx*4]
and edx, ebx
and edi, ebp
or edi, edx
mov dword [eax + ecx*4], edi
inc ecx
cmp dword [esp + 4], ecx
jne 0x43fce5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x38], 0
mov eax, dword [eax]
mov edx, dword [edx]
mov dword [esp + 0x70], eax
mov eax, dword [eax]
mov dword [esp + 0x24], edx
mov edx, dword [edx]
mov ecx, eax
and edx, 1
and ecx, 1
neg edx
neg ecx
or edx, ecx
and edx, ebx
cmp dword [esp + 4], 0
mov dword [esp + 0x34], edx
je 0x43fe2c
mov ecx, dword [esp + 0xb8]
xor ebp, ebp
cmp dword [esp + 4], 4
mov edi, dword [ecx]
jb 0x43fe39
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
add edi, 0x10
xor edx, edx
xor ebx, ebx
mov dword [esp + 0xc], edi
lea ecx, [ecx + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 8], ecx
mov ecx, dword [esp]
lea ecx, [ecx + 0x10]
mov dword [esp + 0x10], ecx
jmp 0x43fda1
mov ecx, dword [esp + 8]
add dword [esp + 0xc], 0x10
add dword [esp + 0x10], 0x10
add esi, 0xfffffffc
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
add ecx, 0x10
mov dword [esp + 8], ecx
add eax, ebx
mov ebx, dword [esp + 0xc]
mov edi, edx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 8]
adc edi, 0
add eax, dword [ebx - 0x10]
adc edi, 0
mov dword [ecx - 0x10], eax
xor eax, eax
add edi, dword [esi - 0xc]
mov esi, ecx
setb al
add edi, dword [ebx - 0xc]
mov dword [ecx - 0xc], edi
mov ecx, dword [esp + 8]
mov edi, dword [esp + 8]
adc eax, dword [ecx - 8]
mov ecx, dword [ebx - 8]
mov dword [esp + 0x54], ecx
lea ecx, [eax + ecx]
setb byte [esp + 0x24]
mov dword [esi - 8], ecx
mov ecx, dword [ebx - 4]
xor ebx, ebx
add ecx, dword [edi - 4]
setb bl
add eax, dword [esp + 0x54]
movzx eax, byte [esp + 0x24]
adc eax, ecx
mov dword [esi - 4], eax
mov esi, dword [esp + 0x14]
adc ebx, 0
cmp esi, 4
jae 0x43fd83
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp dword [esp + 0x44], 0
mov dword [esp + 0x14], ebx
je 0x43fe76
mov eax, dword [esp + 0x44]
jmp 0x43fe52
mov dword [esp + 0x14], 0
jmp 0x43ff20
mov ecx, dword [esp]
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
add ecx, dword [esi + ebp*4]
adc edx, 0
add ecx, dword [edi + ebp*4]
mov dword [ebx + ebp*4], ecx
mov ecx, edx
adc ecx, 0
inc ebp
xor edx, edx
cmp eax, ebp
jne 0x43fe5a
mov dword [esp + 0x14], ecx
xor eax, eax
cmp dword [esp + 4], 8
jae 0x43fe90
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x70]
jmp 0x43fef3
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x34]
lea ecx, [ebx + esi*4]
cmp ebp, ecx
jae 0x43feae
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x43fef3
mov esi, dword [esp + 0x40]
xor eax, eax
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
lea ecx, [ebx + eax*4 + 0x10]
movdqu xmm0, xmmword [edx]
lea edx, [ebp + eax*4 + 0x10]
cmovne edx, ecx
movdqu xmm1, xmmword [edx]
movdqu xmmword [ebp + eax*4], xmm0
movdqu xmmword [ebp + eax*4 + 0x10], xmm1
add eax, 8
cmp esi, eax
jne 0x43feb4
mov eax, esi
mov esi, dword [esp + 4]
cmp esi, eax
je 0x43ff0d
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
mov ecx, dword [edx]
mov dword [ebp + eax*4], ecx
inc eax
cmp esi, eax
jne 0x43fef3
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4400aa
mov eax, dword [esp + 0xb4]
cmp ecx, 4
mov edi, dword [eax]
jb 0x43ffd1
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x24]
mov ecx, dword [esp]
xor ebx, ebx
mov ebp, edi
mov dword [esp + 0xc], 0
add ebx, dword [esi]
mov edx, dword [esp + 0xc]
mov edi, ecx
adc edx, 0
add ebx, dword [ebp]
adc edx, 0
mov dword [ecx], ebx
xor eax, eax
add edx, dword [esi + 4]
setb al
add edx, dword [ebp + 4]
mov dword [ecx + 4], edx
adc eax, dword [esi + 8]
mov edx, dword [ebp + 8]
lea ecx, [eax + edx]
setb byte [esp + 0x10]
xor ebx, ebx
mov dword [edi + 8], ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [esi + 0xc]
setb bl
add eax, edx
movzx eax, byte [esp + 0x10]
mov edx, dword [esp + 8]
adc eax, ecx
adc ebx, 0
mov dword [edi + 0xc], eax
add edi, 0x10
add edx, 0xfffffffc
add esi, 0x10
add ebp, 0x10
mov ecx, edi
cmp edx, 3
mov dword [esp + 8], edx
ja 0x43ff55
cmp dword [esp + 0x64], 0
mov dword [esp + 0x38], ebx
je 0x440010
mov edi, ebp
mov ebp, dword [esp + 0x64]
mov edx, ecx
jmp 0x43ffea
mov esi, dword [esp + 0x24]
mov edx, dword [esp]
mov ebp, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0xc]
xor ecx, ecx
add eax, dword [esi + ecx*4]
adc ebx, 0
add eax, dword [edi + ecx*4]
mov dword [edx + ecx*4], eax
mov eax, ebx
adc eax, 0
inc ecx
xor ebx, ebx
cmp ebp, ecx
jne 0x43fff4
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x1c]
xor eax, eax
cmp esi, 8
jae 0x440028
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
jmp 0x440087
mov ebx, dword [esp]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
lea ecx, [ebx + esi*4]
cmp ebp, ecx
jae 0x440042
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x440087
mov esi, dword [esp + 0x6c]
xor eax, eax
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
lea ecx, [ebx + eax*4 + 0x10]
movdqu xmm0, xmmword [edx]
lea edx, [ebp + eax*4 + 0x10]
cmovne edx, ecx
movdqu xmm1, xmmword [edx]
movdqu xmmword [ebp + eax*4], xmm0
movdqu xmmword [ebp + eax*4 + 0x10], xmm1
add eax, 8
cmp esi, eax
jne 0x440048
mov eax, esi
mov esi, dword [esp + 0x1c]
cmp esi, eax
je 0x4400a1
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
mov ecx, dword [edx]
mov dword [ebp + eax*4], ecx
inc eax
cmp esi, eax
jne 0x440087
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
cmp dword [esp + 4], 0
je 0x440256
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x28], 0
mov ebp, dword [eax]
je 0x4400d4
xor eax, eax
cmp dword [esp + 0x28], 7
ja 0x4400e3
mov esi, dword [esp + 0x28]
mov edi, dword [esp]
jmp 0x440153
mov eax, dword [ebp]
mov ecx, dword [esp]
shr eax, 1
mov dword [ecx], eax
jmp 0x440175
mov ecx, dword [esp + 4]
mov edi, dword [esp]
mov esi, dword [esp + 0x28]
lea ecx, [ebp + ecx*4]
cmp edi, ecx
jae 0x4400fd
lea ecx, [edi + esi*4]
cmp ebp, ecx
jb 0x440153
mov ecx, dword [esp + 0x74]
xor eax, eax
movdqu xmm0, xmmword [ebp + eax*4 + 0x10]
movdqu xmm1, xmmword [ebp + eax*4]
movdqu xmm2, xmmword [ebp + eax*4 + 4]
movdqu xmm3, xmmword [ebp + eax*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [edi + eax*4], xmm2
movdqu xmmword [edi + eax*4 + 0x10], xmm3
add eax, 8
cmp ecx, eax
jne 0x440103
mov esi, dword [esp + 0x28]
mov eax, ecx
cmp esi, ecx
je 0x440167
mov ecx, dword [ebp + eax*4]
mov edx, dword [ebp + eax*4 + 4]
shld edx, ecx, 0x1f
mov dword [edi + eax*4], edx
inc eax
cmp esi, eax
jne 0x440153
mov ecx, dword [esp + 4]
mov eax, dword [ebp + ecx*4 - 4]
shr eax, 1
mov dword [edi + ecx*4 - 4], eax
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [esp + 4], 8
jae 0x44019a
mov esi, dword [esp]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
jmp 0x440226
mov esi, dword [esp]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
lea ecx, [esi + ecx*4]
cmp ebp, ecx
jae 0x4401bc
mov ecx, dword [esp + 4]
lea ecx, [ebp + ecx*4]
cmp esi, ecx
jb 0x440226
mov ecx, dword [esp + 0x40]
movd xmm0, edi
movd xmm1, ebx
xor eax, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + eax*4]
movdqu xmm3, xmmword [esi + eax*4 + 0x10]
movdqu xmm4, xmmword [ebp + eax*4]
movdqu xmm5, xmmword [ebp + eax*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [ebp + eax*4], xmm4
movdqu xmmword [ebp + eax*4 + 0x10], xmm5
add eax, 8
cmp ecx, eax
jne 0x4401d4
cmp dword [esp + 4], ecx
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
mov eax, ecx
je 0x44023e
mov ecx, dword [esi + eax*4]
mov edx, dword [ebp + eax*4]
and ecx, edi
and edx, ebx
or edx, ecx
mov dword [ebp + eax*4], edx
inc eax
cmp dword [esp + 4], eax
jne 0x440226
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
shl eax, 0x1f
or dword [ebp + ecx*4 - 4], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
and dword [esp + 0x2c], 1
cmp dword [esp + 0x1c], 0
je 0x4403ec
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x50], 0
mov edx, dword [eax]
je 0x440285
xor eax, eax
cmp dword [esp + 0x50], 7
ja 0x440293
mov esi, dword [esp + 0x50]
mov ebp, dword [esp]
jmp 0x440303
mov eax, dword [edx]
mov ecx, dword [esp]
shr eax, 1
mov dword [ecx], eax
jmp 0x440325
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp]
mov esi, dword [esp + 0x50]
lea ecx, [edx + ecx*4]
cmp ebp, ecx
jae 0x4402ad
lea ecx, [ebp + esi*4]
cmp edx, ecx
jb 0x440303
mov ecx, dword [esp + 0x7c]
xor eax, eax
movdqu xmm0, xmmword [edx + eax*4 + 0x10]
movdqu xmm1, xmmword [edx + eax*4]
movdqu xmm2, xmmword [edx + eax*4 + 4]
movdqu xmm3, xmmword [edx + eax*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [ebp + eax*4], xmm2
movdqu xmmword [ebp + eax*4 + 0x10], xmm3
add eax, 8
cmp ecx, eax
jne 0x4402b3
mov esi, dword [esp + 0x50]
mov eax, ecx
cmp esi, ecx
je 0x440317
mov ecx, dword [edx + eax*4]
mov edi, dword [edx + eax*4 + 4]
shld edi, ecx, 0x1f
mov dword [ebp + eax*4], edi
inc eax
cmp esi, eax
jne 0x440303
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + ecx*4 - 4]
shr eax, 1
mov dword [ebp + ecx*4 - 4], eax
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
and dword [esp + 0x38], eax
xor eax, eax
cmp edi, 8
jae 0x440341
mov esi, dword [esp]
mov ebp, dword [esp + 0x30]
jmp 0x4403be
mov esi, dword [esp]
mov ebp, dword [esp + 0x30]
lea ecx, [esi + edi*4]
cmp edx, ecx
jae 0x440356
lea ecx, [edx + edi*4]
cmp esi, ecx
jb 0x4403be
movd xmm1, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
movd xmm0, ebp
xor eax, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + eax*4]
movdqu xmm3, xmmword [esi + eax*4 + 0x10]
movdqu xmm4, xmmword [edx + eax*4]
movdqu xmm5, xmmword [edx + eax*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [edx + eax*4], xmm4
movdqu xmmword [edx + eax*4 + 0x10], xmm5
add eax, 8
cmp ecx, eax
jne 0x440370
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x30]
mov eax, ecx
cmp edi, ecx
je 0x4403d8
mov ebx, edi
mov edi, dword [edx + eax*4]
mov ecx, dword [esi + eax*4]
and edi, dword [esp + 0x20]
and ecx, ebp
or edi, ecx
mov dword [edx + eax*4], edi
inc eax
mov edi, ebx
cmp ebx, eax
jne 0x4403be
mov eax, dword [esp + 0x38]
shl eax, 0x1f
or dword [edx + edi*4 - 4], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov ecx, dword [esp + 0x2c]
mov eax, ecx
dec ecx
neg eax
cmp dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], eax
je 0x440426
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x28], 0
mov eax, dword [eax]
je 0x44042d
xor ecx, ecx
cmp dword [esp + 0x28], 7
ja 0x44043b
mov esi, dword [esp + 0x28]
mov ebp, dword [esp]
jmp 0x4404ab
mov ebx, ecx
jmp 0x44058e
mov ecx, dword [eax]
mov edx, dword [esp]
shr ecx, 1
mov dword [edx], ecx
jmp 0x4404cd
mov edx, dword [esp + 4]
mov ebp, dword [esp]
mov esi, dword [esp + 0x28]
lea edx, [eax + edx*4]
cmp ebp, edx
jae 0x440455
lea edx, [ebp + esi*4]
cmp eax, edx
jb 0x4404ab
mov edx, dword [esp + 0x74]
xor ecx, ecx
movdqu xmm0, xmmword [eax + ecx*4 + 0x10]
movdqu xmm1, xmmword [eax + ecx*4]
movdqu xmm2, xmmword [eax + ecx*4 + 4]
movdqu xmm3, xmmword [eax + ecx*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [ebp + ecx*4], xmm2
movdqu xmmword [ebp + ecx*4 + 0x10], xmm3
add ecx, 8
cmp edx, ecx
jne 0x44045b
mov esi, dword [esp + 0x28]
mov ecx, edx
cmp esi, edx
je 0x4404bf
mov edx, dword [eax + ecx*4]
mov edi, dword [eax + ecx*4 + 4]
shld edi, edx, 0x1f
mov dword [ebp + ecx*4], edi
inc ecx
cmp esi, ecx
jne 0x4404ab
mov edx, dword [esp + 4]
mov ecx, dword [eax + edx*4 - 4]
shr ecx, 1
mov dword [ebp + edx*4 - 4], ecx
xor ecx, ecx
cmp dword [esp + 4], 8
jae 0x4404e6
mov esi, dword [esp]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
jmp 0x44056f
mov esi, dword [esp]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
lea edx, [esi + edx*4]
cmp eax, edx
jae 0x440507
mov edx, dword [esp + 4]
lea edx, [eax + edx*4]
cmp esi, edx
jb 0x44056f
mov edx, dword [esp + 0x40]
movd xmm0, ebx
movd xmm1, ebp
xor ecx, ecx
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + ecx*4]
movdqu xmm3, xmmword [esi + ecx*4 + 0x10]
movdqu xmm4, xmmword [eax + ecx*4]
movdqu xmm5, xmmword [eax + ecx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + ecx*4], xmm4
movdqu xmmword [eax + ecx*4 + 0x10], xmm5
add ecx, 8
cmp edx, ecx
jne 0x44051f
cmp dword [esp + 4], edx
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
mov ecx, edx
je 0x440585
mov edx, dword [esi + ecx*4]
mov edi, dword [eax + ecx*4]
and edx, ebx
and edi, ebp
or edi, edx
mov dword [eax + ecx*4], edi
inc ecx
cmp dword [esp + 4], ecx
jne 0x44056f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x38], 0
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, edx
and ecx, 1
and eax, 1
neg ecx
neg eax
or ecx, eax
and ecx, ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x4406b5
mov eax, dword [esp + 0xb8]
xor ebp, ebp
cmp ecx, 4
mov edi, dword [eax]
jb 0x4406c2
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
add edi, 0x10
xor ebx, ebx
mov dword [esp + 0xc], edi
lea eax, [eax + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
mov eax, dword [esp]
lea eax, [eax + 0x10]
mov dword [esp + 0x10], eax
xor eax, eax
jmp 0x44062a
mov ecx, dword [esp + 8]
add dword [esp + 0xc], 0x10
add dword [esp + 0x10], 0x10
add esi, 0xfffffffc
mov dword [esp + 0x14], esi
mov edx, dword [ecx]
add ecx, 0x10
mov dword [esp + 8], ecx
add edx, ebx
mov ebx, dword [esp + 0xc]
mov edi, eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 8]
adc edi, 0
add edx, dword [ebx - 0x10]
adc edi, 0
mov dword [ecx - 0x10], edx
xor edx, edx
add edi, dword [esi - 0xc]
mov esi, ecx
setb dl
add edi, dword [ebx - 0xc]
mov dword [ecx - 0xc], edi
mov ecx, dword [esp + 8]
mov edi, dword [esp + 8]
adc edx, dword [ecx - 8]
mov ecx, dword [ebx - 8]
mov dword [esp + 0x54], ecx
lea ecx, [edx + ecx]
setb byte [esp + 0x24]
mov dword [esi - 8], ecx
mov ecx, dword [ebx - 4]
xor ebx, ebx
add ecx, dword [edi - 4]
setb bl
add edx, dword [esp + 0x54]
movzx edx, byte [esp + 0x24]
adc edx, ecx
mov dword [esi - 4], edx
mov esi, dword [esp + 0x14]
adc ebx, 0
cmp esi, 4
jae 0x44060c
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp dword [esp + 0x44], 0
mov dword [esp + 0x14], ebx
je 0x4406ff
mov edx, dword [esp + 0x44]
jmp 0x4406db
mov dword [esp + 0x14], 0
jmp 0x4407a9
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
add ecx, dword [esi + ebp*4]
adc eax, 0
add ecx, dword [edi + ebp*4]
mov dword [ebx + ebp*4], ecx
mov ecx, eax
adc ecx, 0
inc ebp
xor eax, eax
cmp edx, ebp
jne 0x4406e3
mov dword [esp + 0x14], ecx
xor eax, eax
cmp dword [esp + 4], 8
jae 0x440719
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
jmp 0x44077c
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
lea ecx, [ebx + esi*4]
cmp ebp, ecx
jae 0x440737
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x44077c
mov esi, dword [esp + 0x40]
xor eax, eax
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
lea ecx, [ebx + eax*4 + 0x10]
movdqu xmm0, xmmword [edx]
lea edx, [ebp + eax*4 + 0x10]
cmovne edx, ecx
movdqu xmm1, xmmword [edx]
movdqu xmmword [ebp + eax*4], xmm0
movdqu xmmword [ebp + eax*4 + 0x10], xmm1
add eax, 8
cmp esi, eax
jne 0x44073d
mov eax, esi
mov esi, dword [esp + 4]
cmp esi, eax
je 0x440796
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
mov ecx, dword [edx]
mov dword [ebp + eax*4], ecx
inc eax
cmp esi, eax
jne 0x44077c
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x440931
mov eax, dword [esp + 0xb4]
cmp ecx, 4
mov edi, dword [eax]
jb 0x440858
mov esi, dword [esp + 0x24]
mov edx, dword [esp]
xor ebx, ebx
mov ebp, edi
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
add ebx, dword [esi]
mov eax, dword [esp + 0xc]
mov edi, edx
adc eax, 0
add ebx, dword [ebp]
adc eax, 0
mov dword [edx], ebx
xor edx, edx
add eax, dword [esi + 4]
setb dl
add eax, dword [ebp + 4]
mov dword [edi + 4], eax
adc edx, dword [esi + 8]
mov eax, dword [ebp + 8]
lea ecx, [edx + eax]
setb byte [esp + 0x10]
xor ebx, ebx
mov dword [edi + 8], ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [esi + 0xc]
setb bl
add edx, eax
movzx edx, byte [esp + 0x10]
adc edx, ecx
mov ecx, dword [esp + 8]
adc ebx, 0
mov dword [edi + 0xc], edx
add edi, 0x10
add esi, 0x10
add ebp, 0x10
mov edx, edi
add ecx, 0xfffffffc
cmp ecx, 3
mov dword [esp + 8], ecx
ja 0x4407de
cmp dword [esp + 0x64], 0
mov dword [esp + 0x38], ebx
je 0x440897
mov edi, ebp
mov ebp, dword [esp + 0x64]
jmp 0x440871
mov esi, dword [esp + 0x24]
mov edx, dword [esp]
mov ebp, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0xc]
xor ecx, ecx
add eax, dword [esi + ecx*4]
adc ebx, 0
add eax, dword [edi + ecx*4]
mov dword [edx + ecx*4], eax
mov eax, ebx
adc eax, 0
inc ecx
xor ebx, ebx
cmp ebp, ecx
jne 0x44087b
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x1c]
xor eax, eax
cmp esi, 8
jae 0x4408af
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
jmp 0x44090e
mov ebx, dword [esp]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
lea ecx, [ebx + esi*4]
cmp ebp, ecx
jae 0x4408c9
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x44090e
mov esi, dword [esp + 0x6c]
xor eax, eax
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
lea ecx, [ebx + eax*4 + 0x10]
movdqu xmm0, xmmword [edx]
lea edx, [ebp + eax*4 + 0x10]
cmovne edx, ecx
movdqu xmm1, xmmword [edx]
movdqu xmmword [ebp + eax*4], xmm0
movdqu xmmword [ebp + eax*4 + 0x10], xmm1
add eax, 8
cmp esi, eax
jne 0x4408cf
mov eax, esi
mov esi, dword [esp + 0x1c]
cmp esi, eax
je 0x440928
mov ecx, edi
lea edx, [ebp + eax*4]
test cl, 1
lea ecx, [ebx + eax*4]
cmovne edx, ecx
mov ecx, dword [edx]
mov dword [ebp + eax*4], ecx
inc eax
cmp esi, eax
jne 0x44090e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
cmp dword [esp + 4], 0
je 0x440add
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x28], 0
mov ebp, dword [eax]
je 0x44095b
xor eax, eax
cmp dword [esp + 0x28], 7
ja 0x44096a
mov esi, dword [esp + 0x28]
mov edi, dword [esp]
jmp 0x4409da
mov eax, dword [ebp]
mov ecx, dword [esp]
shr eax, 1
mov dword [ecx], eax
jmp 0x4409fc
mov ecx, dword [esp + 4]
mov edi, dword [esp]
mov esi, dword [esp + 0x28]
lea ecx, [ebp + ecx*4]
cmp edi, ecx
jae 0x440984
lea ecx, [edi + esi*4]
cmp ebp, ecx
jb 0x4409da
mov ecx, dword [esp + 0x74]
xor eax, eax
movdqu xmm0, xmmword [ebp + eax*4 + 0x10]
movdqu xmm1, xmmword [ebp + eax*4]
movdqu xmm2, xmmword [ebp + eax*4 + 4]
movdqu xmm3, xmmword [ebp + eax*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [edi + eax*4], xmm2
movdqu xmmword [edi + eax*4 + 0x10], xmm3
add eax, 8
cmp ecx, eax
jne 0x44098a
mov esi, dword [esp + 0x28]
mov eax, ecx
cmp esi, ecx
je 0x4409ee
mov ecx, dword [ebp + eax*4]
mov edx, dword [ebp + eax*4 + 4]
shld edx, ecx, 0x1f
mov dword [edi + eax*4], edx
inc eax
cmp esi, eax
jne 0x4409da
mov ecx, dword [esp + 4]
mov eax, dword [ebp + ecx*4 - 4]
shr eax, 1
mov dword [edi + ecx*4 - 4], eax
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [esp + 4], 8
jae 0x440a21
mov esi, dword [esp]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
jmp 0x440aad
mov esi, dword [esp]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
lea ecx, [esi + ecx*4]
cmp ebp, ecx
jae 0x440a43
mov ecx, dword [esp + 4]
lea ecx, [ebp + ecx*4]
cmp esi, ecx
jb 0x440aad
mov ecx, dword [esp + 0x40]
movd xmm0, edi
movd xmm1, ebx
xor eax, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + eax*4]
movdqu xmm3, xmmword [esi + eax*4 + 0x10]
movdqu xmm4, xmmword [ebp + eax*4]
movdqu xmm5, xmmword [ebp + eax*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [ebp + eax*4], xmm4
movdqu xmmword [ebp + eax*4 + 0x10], xmm5
add eax, 8
cmp ecx, eax
jne 0x440a5b
cmp dword [esp + 4], ecx
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov eax, ecx
je 0x440ac5
mov ecx, dword [esi + eax*4]
mov edx, dword [ebp + eax*4]
and ecx, edi
and edx, ebx
or edx, ecx
mov dword [ebp + eax*4], edx
inc eax
cmp dword [esp + 4], eax
jne 0x440aad
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
shl eax, 0x1f
or dword [ebp + ecx*4 - 4], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
cmp dword [esp + 0x1c], 0
je 0x440c65
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x50], 0
mov eax, dword [eax]
je 0x440b07
xor ecx, ecx
cmp dword [esp + 0x50], 7
ja 0x440b15
mov esi, dword [esp + 0x50]
mov ebp, dword [esp]
jmp 0x440b85
mov ecx, dword [eax]
mov edx, dword [esp]
shr ecx, 1
mov dword [edx], ecx
jmp 0x440ba7
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp]
mov esi, dword [esp + 0x50]
lea edx, [eax + edx*4]
cmp ebp, edx
jae 0x440b2f
lea edx, [ebp + esi*4]
cmp eax, edx
jb 0x440b85
mov edx, dword [esp + 0x7c]
xor ecx, ecx
movdqu xmm0, xmmword [eax + ecx*4 + 0x10]
movdqu xmm1, xmmword [eax + ecx*4]
movdqu xmm2, xmmword [eax + ecx*4 + 4]
movdqu xmm3, xmmword [eax + ecx*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [ebp + ecx*4], xmm2
movdqu xmmword [ebp + ecx*4 + 0x10], xmm3
add ecx, 8
cmp edx, ecx
jne 0x440b35
mov esi, dword [esp + 0x50]
mov ecx, edx
cmp esi, edx
je 0x440b99
mov edx, dword [eax + ecx*4]
mov edi, dword [eax + ecx*4 + 4]
shld edi, edx, 0x1f
mov dword [ebp + ecx*4], edi
inc ecx
cmp esi, ecx
jne 0x440b85
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + edx*4 - 4]
shr ecx, 1
mov dword [ebp + edx*4 - 4], ecx
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
and dword [esp + 0x38], ecx
xor ecx, ecx
cmp edi, 8
jae 0x440bc3
mov esi, dword [esp]
mov ebp, dword [esp + 0x2c]
jmp 0x440c40
mov esi, dword [esp]
mov ebp, dword [esp + 0x2c]
lea edx, [esi + edi*4]
cmp eax, edx
jae 0x440bd8
lea edx, [eax + edi*4]
cmp esi, edx
jb 0x440c40
movd xmm1, dword [esp + 0x20]
mov edx, dword [esp + 0x6c]
movd xmm0, ebp
xor ecx, ecx
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + ecx*4]
movdqu xmm3, xmmword [esi + ecx*4 + 0x10]
movdqu xmm4, xmmword [eax + ecx*4]
movdqu xmm5, xmmword [eax + ecx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [eax + ecx*4], xmm4
movdqu xmmword [eax + ecx*4 + 0x10], xmm5
add ecx, 8
cmp edx, ecx
jne 0x440bf2
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2c]
mov ecx, edx
cmp edi, edx
je 0x440c5a
mov ebx, edi
mov edi, dword [eax + ecx*4]
mov edx, dword [esi + ecx*4]
and edi, dword [esp + 0x20]
and edx, ebp
or edi, edx
mov dword [eax + ecx*4], edi
inc ecx
mov edi, ebx
cmp ebx, ecx
jne 0x440c40
mov ecx, dword [esp + 0x38]
shl ecx, 0x1f
or dword [eax + edi*4 - 4], ecx
mov eax, dword [esp + 0x88]
inc eax
cmp eax, dword [esp + 0x84]
mov dword [esp + 0x88], eax
jb 0x43ef05
mov eax, dword [esp + 0x58]
cmp dword [eax + 0xc], 0
je 0x440cbc
mov eax, dword [esp + 0xb0]
mov dword [eax], 1
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x70
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
mov edi, dword [esp + 0xbc]
jmp 0x43e992
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 4]
test eax, eax
je 0x440c8b
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx]
mov esi, dword [ecx]
xor esi, 1
cmp eax, 2
jl 0x440d3d
lea edx, [eax - 1]
mov ebx, 1
cmp edx, 8
jb 0x440d30
mov ebp, edx
movd xmm1, esi
lea esi, [ecx + 0x14]
pxor xmm0, xmm0
and ebp, 0xfffffff8
lea ebx, [ebp + 1]
mov edi, ebp
movdqu xmm2, xmmword [esi - 0x10]
movdqu xmm3, xmmword [esi]
add esi, 0x20
add edi, 0xfffffff8
por xmm1, xmm2
por xmm0, xmm3
jne 0x440cf9
por xmm0, xmm1
cmp edx, ebp
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd esi, xmm0
je 0x440d3d
sub eax, ebx
lea ecx, [ecx + ebx*4]
or esi, dword [ecx]
add ecx, 4
dec eax
jne 0x440d35
test esi, esi
jne 0x440c8b
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0xac]
je 0x440dba
mov eax, dword [esp + 0x3c]
push dword [eax + 4]
push dword [esp + 0xb0]
call fcn.004350a0
add esp, 8
test eax, eax
je 0x440daf
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x440d99
push ecx
mov esi, dword [esp + 0x40]
push dword [esi]
mov eax, dword [esp + 0xb4]
push dword [eax]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0xac]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x440dba
mov dword [esp + 0x8c], 0
xor ebx, ebx
cmp dword [esp + 0x8c], 0
setne bl
jmp 0x43ed8a