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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov edi, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov dword [edi], 0
cmp dword [esi + 0xc], 0
jne 0x450528
push dword [esp + 0xa8]
push esi
call sym.adb.exe_BN_ucmp
add esp, 8
test eax, eax
js 0x45054f
push 0xad
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x6b
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor ebx, ebx
mov eax, ebx
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esi + 4]
mov ebx, dword [esp + 0x9c]
test ebp, ebp
je 0x45062c
mov eax, dword [esi]
xor ecx, ecx
cmp ebp, 8
mov edx, 0
jb 0x4505c9
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 0x450590
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 0x4505d8
mov edi, ebp
sub edi, ecx
lea ecx, [eax + ecx*4]
or edx, dword [ecx]
add ecx, 4
dec edi
jne 0x4505d0
mov edi, dword [esp + 0xa0]
test edx, edx
je 0x45062c
test ebp, ebp
jle 0x4505f0
test byte [eax], 1
jne 0x450690
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + 4]
test edx, edx
jle 0x450609
mov eax, dword [ecx]
test byte [eax], 1
jne 0x4506a6
mov dword [edi], 1
push 0xc6
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x70
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x450540
mov ecx, dword [esp + 0xa8]
cmp dword [ecx + 0xc], 0
je 0x45065c
mov dword [edi], 1
push 0xb6
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x70
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x450540
mov eax, dword [ecx + 4]
test eax, eax
je 0x450639
mov ecx, dword [ecx]
mov esi, dword [ecx]
xor esi, 1
cmp eax, 2
jl 0x4509b8
lea edi, [eax - 1]
mov edx, 1
cmp edi, 8
jae 0x45094c
mov edi, dword [esp + 0xa0]
jmp 0x4509a6
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x58], ebx
mov edx, dword [eax + 4]
lea ecx, [eax + 4]
mov dword [esp], ecx
jmp 0x4506b0
lea eax, [ecx + 4]
mov dword [esp + 0x58], ebx
mov dword [esp], eax
mov edi, dword [esp + 0xac]
cmp ebp, edx
mov ecx, ebp
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
cmova ecx, edx
mov dword [esp + 0xc], ecx
push edi
call sym.adb.exe_BN_CTX_start
add esp, 4
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov ebx, eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov ebp, eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x24], eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x4c], eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x48], eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x30], eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x14], eax
push edi
call sym.adb.exe_BN_CTX_get
mov ecx, ebx
add esp, 4
xor ebx, ebx
test ecx, ecx
mov dword [esp + 0x28], eax
je 0x4525cf
test ebp, ebp
je 0x4525cf
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x4c]
test eax, eax
je 0x4525cf
test edx, edx
je 0x4525cf
cmp dword [esp + 0x48], 0
je 0x4525cf
cmp dword [esp + 0x30], 0
je 0x4525cf
cmp dword [esp + 0x14], 0
je 0x4525cf
cmp dword [esp + 0x28], 0
je 0x4525cf
cmp ecx, esi
mov dword [esp + 0x40], ebp
je 0x4507e2
push dword [esi + 4]
mov ebx, ecx
push ecx
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cd
mov eax, dword [esi + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x4507cb
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 + 0x40]
mov ecx, ebx
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x24]
xor ebx, ebx
jmp 0x4507ea
test esi, esi
je 0x4525cf
cmp ebp, dword [esp + 0xa8]
mov dword [esp + 0x3c], ecx
je 0x450845
mov esi, dword [esp]
push dword [esi]
push ebp
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cf
mov eax, dword [esi]
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x40]
lea ecx, [eax*4]
mov ebp, edx
test ecx, ecx
je 0x450838
push ecx
push dword [ebp]
push dword [esi]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
push 1
push eax
mov esi, eax
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cf
mov dword [esi + 0xc], 0
mov eax, dword [esi]
mov dword [eax], 1
mov dword [esi + 4], 1
push 1
mov esi, dword [esp + 0x34]
push esi
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cf
mov dword [esi + 0xc], 0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi]
mov dword [eax], 1
mov dword [esi + 4], 1
mov esi, dword [esp + 4]
mov eax, dword [ecx + 4]
mov edx, eax
sub edx, esi
jbe 0x4509d8
mov ebp, dword [ecx]
xor ecx, ecx
cmp edx, 8
jb 0x450915
mov ecx, dword [esp + 4]
mov edi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
mov dword [esp], 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 0x4508d6
por xmm1, xmm0
cmp edx, dword [esp]
mov edi, dword [esp + 0xac]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x450923
sub eax, esi
lea edx, [ebp + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x45091b
mov ebp, dword [esp + 0x3c]
test ecx, ecx
je 0x450a0a
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x4525cd
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 0x450961
por xmm0, xmm1
cmp edi, ebx
mov ebx, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd esi, xmm0
je 0x4509b8
sub eax, edx
lea ecx, [ecx + edx*4]
nop dword [eax + eax]
or esi, dword [ecx]
add ecx, 4
dec eax
jne 0x4509b0
test esi, esi
jne 0x450639
mov dword [ebx + 0xc], 0
mov dword [ebx + 4], 0
mov ebx, 1
jmp 0x450542
push esi
push ecx
mov ebp, ecx
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cf
mov eax, dword [ebp + 4]
sub esi, eax
shl esi, 2
test esi, esi
je 0x450a0a
shl eax, 2
add eax, dword [ebp]
push esi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov esi, dword [esp + 4]
mov dword [ebp + 4], esi
mov ebp, dword [esp + 0x40]
mov eax, dword [ebp + 4]
mov edx, eax
sub edx, esi
jbe 0x450ab9
mov ebp, dword [ebp]
xor ecx, ecx
cmp edx, 8
jb 0x450a86
mov ecx, dword [esp + 4]
mov edi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
mov dword [esp], 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 0x450a47
por xmm1, xmm0
cmp edx, dword [esp]
mov edi, dword [esp + 0xac]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x450a94
sub eax, esi
lea edx, [ebp + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x450a8c
mov edx, dword [esp + 0x40]
test ecx, ecx
je 0x450aee
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x4525cd
push esi
push ebp
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cf
mov eax, dword [ebp + 4]
mov edx, ebp
sub esi, eax
shl esi, 2
test esi, esi
je 0x450aee
shl eax, 2
add eax, dword [edx]
push esi
push 0
push eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x24]
mov dword [edx + 4], esi
mov eax, dword [ecx + 4]
mov edx, eax
sub edx, esi
jbe 0x450b9c
mov ebp, dword [ecx]
xor ecx, ecx
cmp edx, 8
jb 0x450b69
mov ecx, dword [esp + 4]
mov edi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
mov dword [esp], 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 0x450b2a
por xmm1, xmm0
cmp edx, dword [esp]
mov edi, dword [esp + 0xac]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x450b77
sub eax, esi
lea edx, [ebp + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x450b6f
mov ebp, dword [esp + 0x24]
test ecx, ecx
je 0x450bce
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x4525cd
push esi
push ecx
mov ebp, ecx
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cf
mov eax, dword [ebp + 4]
sub esi, eax
shl esi, 2
test esi, esi
je 0x450bce
shl eax, 2
add eax, dword [ebp]
push esi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov esi, dword [esp + 4]
mov dword [ebp + 4], esi
mov ebp, dword [esp + 0x48]
mov eax, dword [ebp + 4]
mov edx, eax
sub edx, esi
jbe 0x450c7e
mov ebx, dword [ebp]
mov ebp, esi
mov esi, dword [esp + 0xc]
xor ecx, ecx
cmp edx, 8
jb 0x450c50
mov ecx, dword [esp + 4]
mov edi, edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
mov dword [esp], 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 0x450c11
por xmm1, xmm0
cmp edx, dword [esp]
mov edi, dword [esp + 0xac]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x450c5d
sub eax, ebp
lea edx, [ebx + ebp*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x450c55
test ecx, ecx
je 0x450cb7
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x4525cd
push esi
push ebp
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525cf
mov eax, dword [ebp + 4]
mov ecx, esi
mov esi, dword [esp + 0xc]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x450cb7
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 ecx, dword [esp + 4]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov eax, dword [edx + 4]
cmp eax, esi
jbe 0x450d74
mov ebx, dword [edx]
mov edx, dword [esp + 8]
mov ebp, esi
cmp ecx, edx
mov edi, edx
cmovb edi, ecx
xor edx, edx
not edi
lea ecx, [eax + edi + 1]
cmp ecx, 8
jb 0x450d46
mov edx, 3
mov dword [esp], 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 0x450d0a
por xmm1, xmm0
cmp dword [esp], ecx
mov esi, dword [esp + 0xc]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x450d53
sub eax, ebp
lea ecx, [ebx + ebp*4]
or edx, dword [ecx]
add ecx, 4
dec eax
jne 0x450d4b
test edx, edx
je 0x450dab
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x45104b
push esi
push edx
mov edi, edx
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525c6
mov eax, dword [edi + 4]
mov ecx, esi
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x450dab
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 + 0x4c]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], esi
mov eax, dword [ecx + 4]
cmp eax, esi
jbe 0x450e64
mov ebx, dword [ecx]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
cmp ecx, edx
cmovb edx, ecx
not edx
lea ebp, [eax + edx + 1]
mov edi, edx
xor edx, edx
cmp ebp, 8
jb 0x450e36
mov edx, dword [esp + 0xc]
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 0x450dff
por xmm1, xmm0
cmp ebp, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x450e43
sub eax, esi
lea ecx, [ebx + esi*4]
or edx, dword [ecx]
add ecx, 4
dec eax
jne 0x450e3b
test edx, edx
je 0x450e9f
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x45104b
push esi
push ecx
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525c6
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x450e9f
mov edx, dword [esp + 0x30]
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 + 0xc]
mov ecx, dword [esp + 0x30]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov edx, eax
sub edx, dword [esp + 4]
jbe 0x450f57
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 4]
xor ebp, ebp
cmp edx, 8
mov ecx, dword [ecx]
mov dword [esp], ecx
jb 0x450f26
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 0x450eee
por xmm1, xmm0
cmp edx, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x450f36
mov ecx, dword [esp]
sub eax, ebx
lea ecx, [ecx + ebx*4]
or ebp, dword [ecx]
add ecx, 4
dec eax
jne 0x450f2e
test ebp, ebp
je 0x450f98
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x45104b
push dword [esp + 4]
push dword [esp + 0x18]
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525c6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov eax, dword [eax + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x450f98
mov edx, dword [esp + 0x14]
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 + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
mov edx, eax
sub edx, ecx
jbe 0x451059
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 4]
xor ebp, ebp
cmp edx, 8
mov ecx, dword [ecx]
mov dword [esp], ecx
jb 0x45101f
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 0x450fe7
por xmm1, xmm0
cmp edx, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x45102f
mov ecx, dword [esp]
sub eax, ebx
lea ecx, [ecx + ebx*4]
or ebp, dword [ecx]
add ecx, 4
dec eax
jne 0x451027
test ebp, ebp
je 0x45109a
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor ebx, ebx
mov edi, dword [esp + 0xac]
jmp 0x4525cf
push dword [esp + 4]
push dword [esp + 0x2c]
call fcn.00447880
add esp, 8
test eax, eax
je 0x4525c6
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 4]
mov eax, dword [eax + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x45109a
mov edx, dword [esp + 0x28]
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 + 0xc]
mov esi, dword [esp + 0x28]
mov ecx, eax
shl edx, 5
mov dword [esi + 4], ecx
shl ecx, 5
add ecx, edx
mov dword [esp + 0x70], ecx
jae 0x4510d6
push 0xf5
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x4525c6
cmp dword [esp + 0x70], 0
je 0x452593
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], 0
lea edx, [eax - 4]
mov ecx, eax
mov eax, dword [esp + 4]
mov esi, edx
and esi, 0xfffffffc
sub edx, esi
add esi, 4
lea edi, [eax - 4]
mov dword [esp + 0x6c], edx
lea edx, [eax - 2]
mov dword [esp + 0x84], esi
mov ebx, edi
mov dword [esp + 0x64], edx
and edx, 0xfffffff8
and ebx, 0xfffffffc
mov dword [esp + 0x7c], edx
sub edi, ebx
add ebx, 4
mov dword [esp + 0x68], edi
mov edi, eax
mov dword [esp + 0x80], ebx
mov ebx, ecx
and edi, 0xfffffff8
and ebx, 0xfffffff8
mov dword [esp + 0x34], edi
lea edi, [eax - 1]
mov dword [esp + 0x54], ebx
mov eax, edi
lea eax, [ecx - 1]
mov dword [esp + 0x1c], edi
and edi, 0xfffffff8
lea ecx, [edx + 1]
mov dword [esp + 0x2c], eax
and eax, 0xfffffff8
mov dword [esp + 0x5c], edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x60], eax
jmp 0x4511d5
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x18]
xor ebp, ebp
lea ebx, [ebx + edx*4]
movdqu xmm0, xmmword [ecx + ebp*4 + 0x14]
movdqu xmm1, xmmword [ecx + ebp*4 + 4]
movdqu xmm2, xmmword [ecx + ebp*4 + 8]
movdqu xmm3, xmmword [ecx + ebp*4 + 0x18]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [eax + ebp*4 + 4], xmm2
movdqu xmmword [eax + ebp*4 + 0x14], xmm3
add ebp, 8
cmp edx, ebp
jne 0x451177
cmp dword [esp + 0x64], edx
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x1c]
jne 0x451bb0
jmp 0x451bc6
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [edi]
mov ecx, dword [eax]
mov ebp, dword [edx]
and ecx, 1
and ebp, 1
neg ecx
neg ebp
and ebp, ecx
mov ecx, dword [esp + 4]
mov esi, ecx
push ecx
push eax
push edx
mov ebx, dword [esp + 0x20]
push dword [ebx]
call fcn.00448250
mov edx, esi
add esp, 0x10
mov ecx, eax
dec eax
mov dword [esp + 0x38], ebp
neg ecx
and eax, ebp
test esi, esi
mov dword [esp], ecx
mov dword [esp + 0x50], eax
mov ecx, dword [edi]
mov eax, dword [ebx]
je 0x4512cf
mov esi, dword [esp + 0x50]
xor ebp, ebp
cmp edx, 8
mov ebx, esi
not ebx
jb 0x4512ab
lea edi, [eax + edx*4]
cmp ecx, edi
jae 0x451245
lea edi, [ecx + edx*4]
cmp eax, edi
jb 0x4512ab
movd xmm0, esi
mov esi, dword [esp + 0x34]
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 [ecx + ebp*4], xmm4
movdqu xmmword [ecx + ebp*4 + 0x10], xmm5
add ebp, 8
cmp esi, ebp
jne 0x45125d
mov edx, dword [esp + 4]
mov ebp, esi
cmp edx, esi
mov esi, dword [esp + 0x50]
je 0x4512c3
mov edi, dword [eax + ebp*4]
mov edx, dword [ecx + ebp*4]
and edi, esi
and edx, ebx
or edx, edi
mov dword [ecx + ebp*4], edx
mov edx, dword [esp + 4]
inc ebp
cmp edx, ebp
jne 0x4512ab
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [ecx]
push edx
push ecx
mov ecx, dword [esp + 0x44]
push dword [ecx]
push eax
call fcn.00448250
mov edx, dword [esp + 0x14]
add esp, 0x10
mov esi, dword [esp + 0x38]
and esi, dword [esp]
test edx, edx
mov dword [esp + 0x38], esi
je 0x45149e
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov ebx, esi
xor ebp, ebp
cmp edx, 8
not ebx
mov eax, dword [eax]
mov ecx, dword [ecx]
jb 0x451382
lea edi, [ecx + edx*4]
cmp eax, edi
jae 0x45131c
lea edi, [eax + edx*4]
cmp ecx, edi
jb 0x451382
movd xmm0, esi
mov esi, dword [esp + 0x34]
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 esi, ebp
jne 0x451334
mov edx, dword [esp + 4]
mov ebp, esi
cmp edx, esi
mov esi, dword [esp + 0x38]
je 0x45139a
mov edi, dword [ecx + ebp*4]
mov edx, dword [eax + ebp*4]
and edi, esi
and edx, ebx
or edx, edi
mov dword [eax + ebp*4], edx
mov edx, dword [esp + 4]
inc ebp
cmp edx, ebp
jne 0x451382
mov eax, dword [esp + 0x14]
cmp edx, 4
mov edi, edx
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jb 0x4514a2
mov ebp, dword [esp]
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], edi
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add ebx, dword [esi + edx]
adc edi, 0
add ebx, dword [eax + edx]
mov dword [ebp + edx], ebx
adc edi, 0
xor eax, eax
add edi, dword [esi + edx + 4]
mov ebx, dword [ecx + edx + 4]
mov dword [esp + 0x20], ebx
lea ebp, [edi + ebx]
mov ebx, dword [esp]
setb al
mov dword [ebx + edx + 4], ebp
xor ebx, ebx
mov ebp, dword [ecx + edx + 8]
add ebp, dword [esi + edx + 8]
setb bl
add edi, dword [esp + 0x20]
mov esi, ebx
adc eax, ebp
mov ebp, dword [esp]
setb byte [esp + 0x20]
xor ebx, ebx
mov dword [ebp + edx + 8], eax
mov eax, dword [ecx + edx + 0xc]
mov ecx, dword [esp + 8]
add eax, dword [ecx + edx + 0xc]
mov ecx, dword [esp + 0x18]
setb bl
add byte [esp + 0x20], 0xff
adc esi, eax
adc ebx, 0
add ecx, 0xfffffffc
mov dword [ebp + edx + 0xc], esi
add edx, 0x10
cmp ecx, 3
mov dword [esp + 0x18], ecx
ja 0x4513d5
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x68], 0
je 0x4514ce
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
lea edx, [edx + eax*4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 8]
lea edx, [edx + eax*4]
mov dword [esp + 8], edx
mov edx, dword [esp]
lea edx, [edx + eax*4]
mov dword [esp], edx
jmp 0x4514a6
xor ebx, ebx
jmp 0x4514d2
xor ebx, ebx
xor ecx, ecx
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0x10]
xor esi, esi
add ebx, dword [ebp + esi*4]
mov eax, ebx
adc ecx, 0
mov ebx, dword [esp]
add eax, dword [edx + esi*4]
mov dword [ebx + esi*4], eax
mov ebx, ecx
adc ebx, 0
inc esi
xor ecx, ecx
cmp edi, esi
jne 0x4514b0
mov edx, dword [esp + 4]
push edx
mov eax, dword [esp + 0xac]
push dword [eax]
mov esi, dword [esp + 0x1c]
push dword [esi]
mov eax, dword [esp + 0x34]
push dword [eax]
call fcn.00448250
mov edx, dword [esp + 0x14]
add esp, 0x10
mov ebp, dword [esi]
sub ebx, eax
test edx, edx
mov dword [esp + 0x44], ebx
je 0x451527
mov eax, dword [esp + 0x28]
mov edi, dword [eax]
xor eax, eax
cmp edx, 8
mov edx, ebx
not edx
mov dword [esp + 8], edx
mov dword [esp], edi
jae 0x451539
mov esi, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, ebp
jmp 0x4515bf
mov edi, ebp
cmp dword [esp + 0xc], 0
jne 0x451769
jmp 0x451887
mov esi, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, ebp
lea edi, [edi + esi*4]
cmp ebp, edi
jae 0x451552
lea edi, [edx + esi*4]
cmp dword [esp], edi
jb 0x4515bf
movd xmm1, ecx
mov edi, dword [esp + 0x34]
mov ecx, dword [esp]
movd xmm0, ebx
xor eax, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [edx + eax*4]
movdqu xmm3, xmmword [edx + eax*4 + 0x10]
movdqu xmm4, xmmword [ecx + eax*4]
movdqu xmm5, xmmword [ecx + 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 edi, eax
jne 0x45156d
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 8]
mov eax, edi
cmp esi, edi
je 0x4515d7
mov ebp, dword [esp]
mov edi, dword [edx + eax*4]
mov ebp, dword [ebp + eax*4]
and edi, ebx
and ebp, ecx
or ebp, edi
mov dword [edx + eax*4], ebp
inc eax
cmp esi, eax
jne 0x4515bf
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
xor ebp, ebp
cmp esi, 8
mov ebx, dword [ecx]
mov eax, dword [eax]
mov ecx, edx
not edx
mov dword [esp], edx
jae 0x4515fa
mov esi, dword [esp]
jmp 0x451676
lea edi, [ebx + esi*4]
mov edx, esi
mov esi, dword [esp]
cmp eax, edi
jae 0x45160d
lea edi, [eax + edx*4]
cmp ebx, edi
jb 0x451676
movd xmm1, esi
mov esi, dword [esp + 0x34]
movd xmm0, ecx
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 [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 esi, ebp
jne 0x451625
mov edx, dword [esp + 4]
mov ebp, esi
mov ecx, dword [esp + 0x38]
cmp edx, esi
mov esi, dword [esp]
je 0x45168e
mov edi, dword [ebx + ebp*4]
mov edx, dword [eax + ebp*4]
and edi, ecx
and edx, esi
or edx, edi
mov dword [eax + ebp*4], edx
mov edx, dword [esp + 4]
inc ebp
cmp edx, ebp
jne 0x451676
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
xor ebp, ebp
cmp edx, 8
mov edx, dword [esp + 0x50]
mov edi, dword [ecx]
mov eax, dword [eax]
mov ecx, edx
not edx
mov dword [esp + 8], edx
mov dword [esp], edi
jae 0x4516bd
mov esi, dword [esp + 4]
mov ebx, dword [esp + 8]
jmp 0x451741
mov esi, dword [esp + 4]
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x4516d4
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x451741
movd xmm0, ecx
mov edx, dword [esp + 0x34]
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 0x4516ef
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x451758
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 0x451741
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
cmp dword [esp + 0xc], 0
je 0x451887
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
mov eax, dword [eax]
cmp esi, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jb 0x45185d
mov dword [esp + 0x18], esi
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0x10]
xor edx, edx
xor eax, eax
xor ecx, ecx
mov dword [esp], edi
add ecx, dword [ebp + eax]
mov edi, edx
mov ebx, dword [esp]
adc edi, 0
add ecx, dword [esi + eax]
mov dword [ebx + eax], ecx
adc edi, 0
xor ecx, ecx
add edi, dword [ebp + eax + 4]
mov esi, dword [esi + eax + 4]
lea ebp, [edi + esi]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x10]
setb cl
mov dword [ebx + eax + 4], ebp
xor ebx, ebx
mov ebp, dword [esi + eax + 8]
mov esi, dword [esp + 8]
add ebp, dword [esi + eax + 8]
mov esi, dword [esp + 0x10]
setb bl
add edi, dword [esp + 0x20]
mov edi, dword [esp]
adc ecx, ebp
mov ebp, dword [esp + 8]
mov dword [edi + eax + 8], ecx
setb byte [esp + 0x20]
xor ecx, ecx
mov edi, dword [esi + eax + 0xc]
add edi, dword [ebp + eax + 0xc]
setb cl
add byte [esp + 0x20], 0xff
adc ebx, edi
mov edi, dword [esp]
adc ecx, 0
mov dword [edi + eax + 0xc], ebx
mov ebx, dword [esp + 0x18]
add eax, 0x10
add ebx, 0xfffffffc
cmp ebx, 3
mov dword [esp + 0x18], ebx
ja 0x45179f
mov ebx, dword [esp]
cmp dword [esp + 0x6c], 0
je 0x451887
mov eax, dword [esp + 0x84]
mov edi, esi
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x6c]
lea ebp, [ebp + eax*4]
lea ebx, [ebx + eax*4]
mov dword [esp + 0x10], edi
mov dword [esp + 8], ebp
mov edi, ebx
jmp 0x451861
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x10]
xor eax, eax
add ecx, dword [ebx + eax*4]
adc edx, 0
add ecx, dword [ebp + eax*4]
adc edx, 0
mov dword [edi + eax*4], ecx
inc eax
mov ecx, edx
cmp esi, eax
mov edx, 0
jne 0x45186b
mov esi, dword [esp + 0xc]
push esi
mov eax, dword [esp + 0xa8]
push dword [eax]
mov edi, dword [esp + 0x1c]
push dword [edi]
mov eax, dword [esp + 0x34]
push dword [eax]
call fcn.00448250
add esp, 0x10
mov eax, dword [edi]
test esi, esi
mov dword [esp + 0x18], eax
je 0x451b1d
mov ecx, dword [esp + 0x28]
mov eax, esi
mov eax, dword [esp + 0x44]
xor ebp, ebp
mov edx, esi
cmp esi, 8
mov ecx, dword [ecx]
mov ebx, eax
not eax
mov dword [esp + 8], eax
mov dword [esp], ecx
jae 0x4518e4
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
jmp 0x45196a
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
lea edi, [ecx + edx*4]
cmp eax, edi
jae 0x4518fb
lea edi, [eax + edx*4]
cmp dword [esp], edi
jb 0x45196a
mov edx, dword [esp + 0x54]
mov ecx, dword [esp]
movd xmm0, ebx
movd xmm1, esi
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 0x451916
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 8]
mov ebp, edx
cmp ecx, edx
mov edx, ecx
je 0x451985
mov ecx, edx
mov edx, dword [esp]
mov edi, dword [eax + ebp*4]
mov edx, dword [edx + ebp*4]
and edi, ebx
and edx, esi
or edx, edi
mov dword [eax + ebp*4], edx
inc ebp
mov edx, ecx
cmp ecx, ebp
jne 0x45196a
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
xor ebp, ebp
cmp edx, 8
mov edi, edx
mov edx, dword [ecx]
mov eax, dword [eax]
not esi
mov dword [esp + 8], esi
mov esi, edi
mov dword [esp], edx
jae 0x4519b6
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x38]
jmp 0x451a3a
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x38]
lea edi, [edx + esi*4]
cmp eax, edi
jae 0x4519cd
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x451a3a
movd xmm1, ecx
mov edx, dword [esp + 0x54]
mov ecx, dword [esp]
movd xmm0, 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 0x4519e8
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x451a51
mov edx, dword [esp]
mov edi, dword [edx + ebp*4]
mov edx, dword [eax + ebp*4]
and edi, ebx
and edx, ecx
or edx, edi
mov dword [eax + ebp*4], edx
inc ebp
cmp esi, ebp
jne 0x451a3a
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
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 0x451a7c
mov ebx, dword [esp + 8]
jmp 0x451afc
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x451a8f
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x451afc
movd xmm0, ecx
mov edx, dword [esp + 0x54]
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 0x451aaa
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x451b13
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 0x451afc
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov esi, edx
and esi, 1
mov edi, esi
dec esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x40]
neg edi
cmp dword [esp + 4], 0
mov dword [esp + 0x20], edi
mov edi, dword [esi]
mov esi, dword [edi]
mov dword [esp + 8], esi
je 0x451bd6
shr edx, 1
cmp dword [esp + 0x1c], 0
je 0x451bdf
mov edi, dword [ecx + 4]
mov eax, dword [esp + 0x18]
shl edi, 0x1f
or edi, edx
cmp dword [esp + 0x1c], 1
mov dword [eax], edi
je 0x451bc6
cmp dword [esp + 0x64], 7
lea ebx, [ecx + 4]
mov ebp, 1
jbe 0x451ba8
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 4]
lea eax, [eax + 4]
lea edi, [ecx + edx*4]
cmp eax, edi
jae 0x45116a
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
lea edi, [eax + edx*4]
cmp ebx, edi
jae 0x45116a
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edi, dword [ebx]
mov edx, dword [ecx + ebp*4 + 4]
lea ebx, [ecx + ebp*4 + 4]
shld edx, edi, 0x1f
mov dword [eax + ebp*4], edx
inc ebp
cmp esi, ebp
jne 0x451bb0
mov esi, dword [esp + 4]
mov edx, dword [ecx + esi*4 - 4]
shr edx, 1
mov dword [eax + esi*4 - 4], edx
jmp 0x451be5
mov eax, dword [esp + 0x18]
jmp 0x451caf
mov eax, dword [esp + 0x18]
mov dword [eax], edx
xor edx, edx
cmp dword [esp + 4], 8
jae 0x451bff
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
jmp 0x451c8e
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x10]
lea edi, [ebp + eax*4]
mov eax, dword [esp + 0x20]
cmp ecx, edi
jae 0x451c22
mov esi, dword [esp + 4]
lea edi, [ecx + esi*4]
cmp ebp, edi
jb 0x451c8e
mov edi, dword [esp + 0x34]
movd xmm1, eax
movd xmm0, ebx
xor edx, edx
mov eax, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [ecx + edx*4], xmm4
movdqu xmmword [ecx + edx*4 + 0x10], xmm5
add edx, 8
cmp edi, edx
jne 0x451c3c
mov ebp, eax
cmp dword [esp + 4], edi
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov edx, edi
je 0x451ca9
mov edi, dword [ebp + edx*4]
mov esi, ebp
mov ebp, dword [ecx + edx*4]
and edi, ebx
and ebp, eax
or ebp, edi
mov dword [ecx + edx*4], ebp
inc edx
mov ebp, esi
cmp dword [esp + 4], edx
jne 0x451c8e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 4]
mov edi, dword [ebx]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov edi, dword [edi]
and edx, 1
and edi, 1
neg edx
neg edi
or edi, edx
and edi, dword [esp + 0x10]
mov edx, edi
push esi
push eax
mov eax, dword [esp + 0xb0]
push dword [eax]
call fcn.00453dc0
add esp, 0xc
mov ecx, dword [ebx]
mov dword [esp + 0x44], eax
mov edx, edi
push dword [esp + 0xc]
mov edi, dword [esp + 0x18]
push dword [edi]
mov eax, dword [esp + 0xac]
push dword [eax]
call fcn.00453dc0
add esp, 0xc
mov ecx, dword [edi]
test esi, esi
mov dword [esp + 0x18], eax
mov dword [esp], ecx
je 0x451eb4
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x1c], 0
mov ecx, dword [ecx]
je 0x451d3b
xor edx, edx
cmp dword [esp + 0x1c], 7
ja 0x451d49
mov esi, dword [esp + 0x1c]
mov eax, dword [esp]
jmp 0x451db7
mov edx, dword [ecx]
mov eax, dword [esp]
shr edx, 1
mov dword [eax], edx
jmp 0x451dd8
mov esi, dword [esp + 4]
mov eax, dword [esp]
lea edi, [ecx + esi*4]
mov esi, dword [esp + 0x1c]
cmp eax, edi
jae 0x451d62
lea edi, [eax + esi*4]
cmp ecx, edi
jb 0x451db7
mov edi, dword [esp + 0x5c]
xor edx, edx
movdqu xmm0, xmmword [ecx + edx*4 + 0x10]
movdqu xmm1, xmmword [ecx + edx*4]
movdqu xmm2, xmmword [ecx + edx*4 + 4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [eax + edx*4], xmm2
movdqu xmmword [eax + edx*4 + 0x10], xmm3
add edx, 8
cmp edi, edx
jne 0x451d68
mov esi, dword [esp + 0x1c]
mov edx, edi
cmp esi, edi
je 0x451dca
mov edi, dword [ecx + edx*4]
mov ebp, dword [ecx + edx*4 + 4]
shld ebp, edi, 0x1f
mov dword [eax + edx*4], ebp
inc edx
cmp esi, edx
jne 0x451db7
mov esi, dword [esp + 4]
mov edx, dword [ecx + esi*4 - 4]
shr edx, 1
mov dword [eax + esi*4 - 4], edx
xor edx, edx
cmp dword [esp + 4], 8
jae 0x451df1
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ebp, dword [esp]
jmp 0x451e7f
mov ebp, dword [esp]
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x10]
lea edi, [ebp + eax*4]
mov eax, dword [esp + 0x20]
cmp ecx, edi
jae 0x451e13
mov esi, dword [esp + 4]
lea edi, [ecx + esi*4]
cmp ebp, edi
jb 0x451e7f
mov edi, dword [esp + 0x34]
movd xmm1, eax
movd xmm0, ebx
xor edx, edx
mov eax, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [ecx + edx*4], xmm4
movdqu xmmword [ecx + edx*4 + 0x10], xmm5
add edx, 8
cmp edi, edx
jne 0x451e2d
mov ebp, eax
cmp dword [esp + 4], edi
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov edx, edi
je 0x451e9a
mov edi, dword [ebp + edx*4]
mov esi, ebp
mov ebp, dword [ecx + edx*4]
and edi, ebx
and ebp, eax
or ebp, edi
mov dword [ecx + edx*4], ebp
inc edx
mov ebp, esi
cmp dword [esp + 4], edx
jne 0x451e7f
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 4]
and eax, ebx
shl eax, 0x1f
or dword [ecx + edx*4 - 4], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov dword [esp], eax
and dword [esp + 8], 1
cmp dword [esp + 0xc], 0
je 0x452052
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x2c], 0
mov ecx, dword [ecx]
je 0x451ee3
xor edx, edx
cmp dword [esp + 0x2c], 7
ja 0x451ef1
mov esi, dword [esp + 0x2c]
mov eax, dword [esp]
jmp 0x451f5f
mov edx, dword [ecx]
mov eax, dword [esp]
shr edx, 1
mov dword [eax], edx
jmp 0x451f80
mov esi, dword [esp + 0xc]
mov eax, dword [esp]
lea edi, [ecx + esi*4]
mov esi, dword [esp + 0x2c]
cmp eax, edi
jae 0x451f0a
lea edi, [eax + esi*4]
cmp ecx, edi
jb 0x451f5f
mov edi, dword [esp + 0x60]
xor edx, edx
movdqu xmm0, xmmword [ecx + edx*4 + 0x10]
movdqu xmm1, xmmword [ecx + edx*4]
movdqu xmm2, xmmword [ecx + edx*4 + 4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [eax + edx*4], xmm2
movdqu xmmword [eax + edx*4 + 0x10], xmm3
add edx, 8
cmp edi, edx
jne 0x451f10
mov esi, dword [esp + 0x2c]
mov edx, edi
cmp esi, edi
je 0x451f72
mov edi, dword [ecx + edx*4]
mov ebp, dword [ecx + edx*4 + 4]
shld ebp, edi, 0x1f
mov dword [eax + edx*4], ebp
inc edx
cmp esi, edx
jne 0x451f5f
mov esi, dword [esp + 0xc]
mov edx, dword [ecx + esi*4 - 4]
shr edx, 1
mov dword [eax + esi*4 - 4], edx
xor edx, edx
cmp dword [esp + 0xc], 8
jae 0x451f99
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov eax, dword [esp]
jmp 0x452022
mov eax, dword [esp]
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
lea edi, [eax + esi*4]
mov esi, dword [esp + 0x20]
cmp ecx, edi
jae 0x451fba
mov edi, dword [esp + 0xc]
lea edi, [ecx + edi*4]
cmp eax, edi
jb 0x452022
mov edi, dword [esp + 0x54]
movd xmm0, ebx
movd xmm1, esi
xor edx, edx
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [ecx + edx*4], xmm4
movdqu xmmword [ecx + edx*4 + 0x10], xmm5
add edx, 8
cmp edi, edx
jne 0x451fd2
cmp dword [esp + 0xc], edi
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov edx, edi
je 0x452038
mov edi, dword [eax + edx*4]
mov ebp, dword [ecx + edx*4]
and edi, ebx
and ebp, esi
or ebp, edi
mov dword [ecx + edx*4], ebp
inc edx
cmp dword [esp + 0xc], edx
jne 0x452022
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
and eax, ebx
shl eax, 0x1f
or dword [ecx + edx*4 - 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov eax, ecx
dec ecx
neg eax
cmp dword [esp + 4], 0
mov esi, ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
je 0x45208e
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x1c], 0
mov eax, dword [eax]
je 0x452096
xor ecx, ecx
cmp dword [esp + 0x1c], 7
ja 0x4520a4
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp]
jmp 0x452112
mov ebx, dword [esp]
jmp 0x4521f5
mov ecx, dword [eax]
mov edx, dword [esp]
shr ecx, 1
mov dword [edx], ecx
jmp 0x452133
mov edx, dword [esp + 4]
mov ebx, dword [esp]
mov esi, dword [esp + 0x1c]
lea edx, [eax + edx*4]
cmp ebx, edx
jae 0x4520bd
lea edx, [ebx + esi*4]
cmp eax, edx
jb 0x452112
mov edx, dword [esp + 0x5c]
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 [ebx + ecx*4], xmm2
movdqu xmmword [ebx + ecx*4 + 0x10], xmm3
add ecx, 8
cmp edx, ecx
jne 0x4520c3
mov esi, dword [esp + 0x1c]
mov ecx, edx
cmp esi, edx
je 0x452125
mov edx, dword [eax + ecx*4]
mov edi, dword [eax + ecx*4 + 4]
shld edi, edx, 0x1f
mov dword [ebx + ecx*4], edi
inc ecx
cmp esi, ecx
jne 0x452112
mov edx, dword [esp + 4]
mov ecx, dword [eax + edx*4 - 4]
shr ecx, 1
mov dword [ebx + edx*4 - 4], ecx
xor ecx, ecx
cmp dword [esp + 4], 8
jae 0x45214d
mov ebp, dword [esp + 4]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x10]
jmp 0x4521d8
mov ebp, dword [esp + 4]
mov edx, dword [esp]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x10]
lea edx, [edx + ebp*4]
cmp eax, edx
jae 0x45216b
lea edx, [eax + ebp*4]
cmp dword [esp], edx
jb 0x4521d8
movd xmm0, esi
mov edx, dword [esp + 0x34]
mov esi, dword [esp]
movd xmm1, ebx
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 0x452186
mov ebp, dword [esp + 4]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov ecx, edx
cmp ebp, edx
je 0x4521ef
mov edx, dword [esp]
mov edi, dword [eax + ecx*4]
mov edx, dword [edx + ecx*4]
and edi, ebx
and edx, esi
or edi, edx
mov dword [eax + ecx*4], edi
inc ecx
cmp ebp, ecx
jne 0x4521d8
mov eax, dword [esp + 0x14]
mov ebx, dword [eax]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [edi]
mov eax, dword [ecx]
mov ebp, dword [edx]
and eax, 1
and ebp, 1
neg eax
neg ebp
or ebp, eax
mov eax, dword [esp + 4]
and ebp, esi
mov edx, ebp
mov esi, eax
push eax
push ebx
mov eax, dword [esp + 0xb0]
push dword [eax]
call fcn.00453dc0
add esp, 0xc
mov ecx, dword [edi]
mov dword [esp + 0x20], eax
mov edx, ebp
push dword [esp + 0xc]
mov edi, dword [esp + 0x18]
push dword [edi]
mov eax, dword [esp + 0xac]
push dword [eax]
call fcn.00453dc0
add esp, 0xc
mov ecx, dword [edi]
test esi, esi
mov dword [esp + 0x18], eax
mov dword [esp], ecx
je 0x4523f0
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x1c], 0
mov edx, dword [ecx]
je 0x452281
xor ebp, ebp
cmp dword [esp + 0x1c], 7
ja 0x45228f
mov esi, dword [esp + 0x1c]
mov eax, dword [esp]
jmp 0x4522fd
mov edi, dword [edx]
mov eax, dword [esp]
shr edi, 1
mov dword [eax], edi
jmp 0x45231e
mov ecx, dword [esp + 4]
mov eax, dword [esp]
mov esi, dword [esp + 0x1c]
lea edi, [edx + ecx*4]
cmp eax, edi
jae 0x4522a8
lea edi, [eax + esi*4]
cmp edx, edi
jb 0x4522fd
mov ecx, dword [esp + 0x5c]
xor ebp, ebp
movdqu xmm0, xmmword [edx + ebp*4 + 0x10]
movdqu xmm1, xmmword [edx + ebp*4]
movdqu xmm2, xmmword [edx + ebp*4 + 4]
movdqu xmm3, xmmword [edx + ebp*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [eax + ebp*4], xmm2
movdqu xmmword [eax + ebp*4 + 0x10], xmm3
add ebp, 8
cmp ecx, ebp
jne 0x4522ae
mov esi, dword [esp + 0x1c]
mov ebp, ecx
cmp esi, ecx
je 0x452310
mov edi, dword [edx + ebp*4]
mov ecx, dword [edx + ebp*4 + 4]
shld ecx, edi, 0x1f
mov dword [eax + ebp*4], ecx
inc ebp
cmp esi, ebp
jne 0x4522fd
mov esi, dword [esp + 4]
mov ecx, dword [edx + esi*4 - 4]
shr ecx, 1
mov dword [eax + esi*4 - 4], ecx
xor ebp, ebp
cmp dword [esp + 4], 8
jae 0x452337
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x10]
mov esi, dword [esp]
jmp 0x4523c0
mov esi, dword [esp]
mov eax, dword [esp + 4]
mov ebx, dword [esp + 8]
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x10]
cmp edx, ecx
jae 0x452358
mov ecx, dword [esp + 4]
lea ecx, [edx + ecx*4]
cmp esi, ecx
jb 0x4523c0
mov ecx, dword [esp + 0x34]
movd xmm0, ebx
movd xmm1, eax
xor ebp, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + ebp*4]
movdqu xmm3, xmmword [esi + ebp*4 + 0x10]
movdqu xmm4, xmmword [edx + ebp*4]
movdqu xmm5, xmmword [edx + ebp*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [edx + ebp*4], xmm4
movdqu xmmword [edx + ebp*4 + 0x10], xmm5
add ebp, 8
cmp ecx, ebp
jne 0x452370
cmp dword [esp + 4], ecx
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x10]
mov ebp, ecx
je 0x4523d6
mov ecx, dword [esi + ebp*4]
mov edi, dword [edx + ebp*4]
and ecx, ebx
and edi, eax
or edi, ecx
mov dword [edx + ebp*4], edi
inc ebp
cmp dword [esp + 4], ebp
jne 0x4523c0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 4]
and eax, ebx
shl eax, 0x1f
or dword [edx + ecx*4 - 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
cmp dword [esp + 0xc], 0
je 0x452580
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x2c], 0
mov edx, dword [ecx]
je 0x45241a
xor ebp, ebp
cmp dword [esp + 0x2c], 7
ja 0x452428
mov esi, dword [esp + 0x2c]
mov eax, dword [esp]
jmp 0x452496
mov ecx, dword [edx]
mov eax, dword [esp]
shr ecx, 1
mov dword [eax], ecx
jmp 0x4524b7
mov ecx, dword [esp + 0xc]
mov eax, dword [esp]
mov esi, dword [esp + 0x2c]
lea ecx, [edx + ecx*4]
cmp eax, ecx
jae 0x452441
lea ecx, [eax + esi*4]
cmp edx, ecx
jb 0x452496
mov ecx, dword [esp + 0x60]
xor ebp, ebp
movdqu xmm0, xmmword [edx + ebp*4 + 0x10]
movdqu xmm1, xmmword [edx + ebp*4]
movdqu xmm2, xmmword [edx + ebp*4 + 4]
movdqu xmm3, xmmword [edx + ebp*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm2, xmm1
por xmm3, xmm0
movdqu xmmword [eax + ebp*4], xmm2
movdqu xmmword [eax + ebp*4 + 0x10], xmm3
add ebp, 8
cmp ecx, ebp
jne 0x452447
mov esi, dword [esp + 0x2c]
mov ebp, ecx
cmp esi, ecx
je 0x4524a9
mov ecx, dword [edx + ebp*4]
mov edi, dword [edx + ebp*4 + 4]
shld edi, ecx, 0x1f
mov dword [eax + ebp*4], edi
inc ebp
cmp esi, ebp
jne 0x452496
mov esi, dword [esp + 0xc]
mov ecx, dword [edx + esi*4 - 4]
shr ecx, 1
mov dword [eax + esi*4 - 4], ecx
xor ebp, ebp
cmp dword [esp + 0xc], 8
jae 0x4524d0
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x10]
mov esi, dword [esp]
jmp 0x452559
mov esi, dword [esp]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 8]
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x10]
cmp edx, ecx
jae 0x4524f1
mov ecx, dword [esp + 0xc]
lea ecx, [edx + ecx*4]
cmp esi, ecx
jb 0x452559
mov ecx, dword [esp + 0x54]
movd xmm0, ebx
movd xmm1, eax
xor ebp, ebp
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [esi + ebp*4]
movdqu xmm3, xmmword [esi + ebp*4 + 0x10]
movdqu xmm4, xmmword [edx + ebp*4]
movdqu xmm5, xmmword [edx + ebp*4 + 0x10]
pand xmm2, xmm0
pand xmm4, xmm1
pand xmm3, xmm0
pand xmm5, xmm1
por xmm4, xmm2
por xmm5, xmm3
movdqu xmmword [edx + ebp*4], xmm4
movdqu xmmword [edx + ebp*4 + 0x10], xmm5
add ebp, 8
cmp ecx, ebp
jne 0x452509
cmp dword [esp + 0xc], ecx
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x10]
mov ebp, ecx
je 0x45256f
mov ecx, dword [esi + ebp*4]
mov edi, dword [edx + ebp*4]
and ecx, ebx
and edi, eax
or edi, ecx
mov dword [edx + ebp*4], edi
inc ebp
cmp dword [esp + 0xc], ebp
jne 0x452559
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
and eax, ebx
shl eax, 0x1f
or dword [edx + ecx*4 - 4], eax
mov eax, dword [esp + 0x74]
inc eax
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x74], eax
jb 0x4511d5
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0xc], 0
je 0x45263f
mov eax, dword [esp + 0xa0]
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.adb.exe_ERR_put_error
add esp, 0x14
mov edi, dword [esp + 0xac]
xor ebx, ebx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x4525df
dec eax
mov dword [edi + 0x24], eax
jmp 0x450542
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 0x452630
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 0x452630
dec ecx
mov edx, eax
and ecx, 0xf
sub edx, esi
test ecx, ecx
je 0x45261c
dec ecx
inc edx
jne 0x452612
jmp 0x452630
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x140]
mov dword [edi + 4], ecx
mov ecx, 0xf
inc edx
jne 0x452612
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], 0
jmp 0x450542
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
test eax, eax
je 0x4525a1
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov esi, dword [ecx]
xor esi, 1
cmp eax, 2
jl 0x4526c4
lea edx, [eax - 1]
mov ebx, 1
cmp edx, 8
jb 0x4526b7
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 0x452680
por xmm0, xmm1
cmp edx, ebp
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd esi, xmm0
je 0x4526c4
sub eax, ebx
lea ecx, [ecx + ebx*4]
or esi, dword [ecx]
add ecx, 4
dec eax
jne 0x4526bc
test esi, esi
jne 0x4525a1
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x9c]
je 0x452742
mov eax, dword [esp + 0x24]
push dword [eax + 4]
push dword [esp + 0xa0]
call fcn.00447880
add esp, 8
test eax, eax
je 0x45273a
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x452720
push ecx
mov esi, dword [esp + 0x28]
push dword [esi]
mov eax, dword [esp + 0xa4]
push dword [eax]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x452742
mov dword [esp + 0x58], 0
xor ebx, ebx
cmp dword [esp + 0x58], 0
setne bl
jmp 0x45104d