Function at 0x44d9c0
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 0x44d9f8
push dword [esp + 0xb8]
push esi
call sym.adb.exe_BN_ucmp
add esp, 8
test eax, eax
js 0x44da1f
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, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esi + 4]
mov ebx, dword [esp + 0xac]
test ebp, ebp
je 0x44dade
mov eax, dword [esi]
xor ecx, ecx
cmp ebp, 8
mov edx, 0
jb 0x44da99
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 0x44da60
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 0x44daa8
mov edi, ebp
sub edi, ecx
lea ecx, [eax + ecx*4]
or edx, dword [ecx]
add ecx, 4
dec edi
jne 0x44daa0
mov edi, dword [esp + 0xb0]
test edx, edx
je 0x44dade
test ebp, ebp
jle 0x44dabc
test byte [eax], 1
jne 0x44db36
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x44dad1
mov eax, dword [eax]
test byte [eax], 1
jne 0x44db40
mov dword [edi], 1
push 0xc6
jmp 0x44daf6
mov ecx, dword [esp + 0xb8]
cmp dword [ecx + 0xc], 0
je 0x44db02
mov dword [edi], 1
push 0xb6
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x70
jmp 0x44da04
mov eax, dword [ecx + 4]
test eax, eax
je 0x44daeb
mov ecx, dword [ecx]
mov esi, dword [ecx]
xor esi, 1
cmp eax, 2
jl 0x44de48
lea edi, [eax - 1]
mov edx, 1
cmp edi, 8
jae 0x44ddd4
mov edi, dword [esp + 0xb0]
jmp 0x44de2e
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.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 + 0x3c], eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x60], eax
push edi
call sym.adb.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x68], 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 + 0x18], 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 + 0x48], eax
je 0x44e0f4
test ebp, ebp
je 0x44e0f4
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
je 0x44e0f4
test eax, eax
je 0x44e0f4
cmp dword [esp + 0x68], 0
je 0x44e0f4
test edx, edx
je 0x44e0f4
cmp dword [esp + 0x18], 0
je 0x44e0f4
cmp dword [esp + 0x48], 0
je 0x44e0f4
cmp ecx, esi
mov dword [esp + 0x5c], ebp
je 0x44dc74
push dword [esi + 4]
mov ebx, ecx
push ecx
call fcn.00444800
add esp, 8
test eax, eax
je 0x44e0f2
mov eax, dword [esi + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x44dc61
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 0x44dc7c
test esi, esi
je 0x44e0f4
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x58], ecx
cmp ebp, esi
je 0x44dccb
push dword [esi + 4]
push ebp
call fcn.00444800
add esp, 8
test eax, eax
je 0x44e0f4
mov eax, dword [esi + 4]
mov ebp, dword [esp + 0x5c]
lea ecx, [eax*4]
test ecx, ecx
je 0x44dcc2
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.00444800
add esp, 8
test eax, eax
je 0x44e0f4
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.00444800
add esp, 8
test eax, eax
je 0x44e0f4
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 0x44de68
mov esi, dword [esi]
mov dword [esp + 8], esi
mov esi, ecx
xor ecx, ecx
cmp edx, 8
jb 0x44ddb2
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 0x44dd6e
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 0x44ddc3
mov edx, dword [esp + 8]
sub eax, esi
lea edx, [edx + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x44ddbb
mov esi, dword [esp + 0x58]
test ecx, ecx
jne 0x44e0da
jmp 0x44de9f
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 0x44dde9
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 0x44de48
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 0x44de40
test esi, esi
jne 0x44daeb
mov dword [ebx + 0xc], 0
mov dword [ebx + 4], 0
mov ebx, 1
jmp 0x44da12
push ecx
push esi
call fcn.00444800
add esp, 8
test eax, eax
je 0x44e0f4
mov eax, dword [esi + 4]
mov ecx, dword [esp + 4]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x44de9f
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 0x44df3b
mov ebp, dword [ebp]
mov esi, ecx
xor ecx, ecx
cmp edx, 8
jb 0x44df1f
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 0x44dedf
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 0x44df2d
sub eax, esi
lea edx, [ebp + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x44df25
mov ebp, dword [esp + 0x5c]
test ecx, ecx
jne 0x44e0da
jmp 0x44df73
push ecx
push ebp
mov esi, ecx
call fcn.00444800
add esp, 8
test eax, eax
je 0x44e0f4
mov eax, dword [ebp + 4]
mov ecx, esi
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x44df73
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 0x44e011
mov ebp, dword [ebp]
xor ecx, ecx
cmp edx, 8
jb 0x44dff5
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 0x44dfb3
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 0x44e003
sub eax, esi
lea edx, [ebp + esi*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x44dffb
mov ebp, dword [esp + 0x3c]
test ecx, ecx
jne 0x44e0da
jmp 0x44e041
push esi
push ebp
call fcn.00444800
add esp, 8
test eax, eax
je 0x44e0f4
mov eax, dword [ebp + 4]
sub esi, eax
shl esi, 2
test esi, esi
je 0x44e041
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 0x44e164
mov ebx, dword [ebp]
mov esi, dword [esp + 0x1c]
mov ebp, ecx
xor ecx, ecx
cmp edx, 8
jb 0x44e0c5
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 0x44e085
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 0x44e0d2
sub eax, ebp
lea edx, [ebx + ebp*4]
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x44e0ca
test ecx, ecx
je 0x44e19b
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 eax, dword [edi + 0x24]
test eax, eax
je 0x44e104
dec eax
mov dword [edi + 0x24], eax
jmp 0x44da12
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 0x44e155
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 0x44e155
dec ecx
mov edx, eax
and ecx, 0xf
sub edx, esi
test ecx, ecx
je 0x44e141
dec ecx
inc edx
jne 0x44e137
jmp 0x44e155
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x140]
mov dword [edi + 4], ecx
mov ecx, 0xf
inc edx
jne 0x44e137
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], 0
jmp 0x44da12
push ecx
push ebp
mov esi, ecx
call fcn.00444800
add esp, 8
test eax, eax
je 0x44e0f4
mov eax, dword [ebp + 4]
mov ecx, esi
mov esi, dword [esp + 0x1c]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x44e19b
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 0x44e240
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 0x44e229
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 0x44e1ec
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 0x44e236
sub eax, ebp
lea ecx, [ebx + ebp*4]
or edx, dword [ecx]
add ecx, 4
dec eax
jne 0x44e22e
test edx, edx
jne 0x44e4d0
jmp 0x44e277
push esi
push edx
mov edi, edx
call fcn.00444800
add esp, 8
test eax, eax
je 0x450410
mov eax, dword [edi + 4]
mov ecx, esi
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x44e277
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 0x44e318
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 0x44e301
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 0x44e2ca
por xmm1, xmm0
cmp ebp, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd edx, xmm1
je 0x44e30e
sub eax, esi
lea ecx, [ebx + esi*4]
or edx, dword [ecx]
add ecx, 4
dec eax
jne 0x44e306
test edx, edx
jne 0x44e4d0
jmp 0x44e353
push esi
push ecx
call fcn.00444800
add esp, 8
test eax, eax
je 0x450410
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 0x44e353
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 0x44e3f4
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 0x44e3da
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 0x44e3a2
por xmm1, xmm0
cmp edx, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x44e3ea
mov ecx, dword [esp]
sub eax, ebx
lea ecx, [ecx + ebx*4]
or ebp, dword [ecx]
add ecx, 4
dec eax
jne 0x44e3e2
test ebp, ebp
jne 0x44e4d0
jmp 0x44e435
push dword [esp + 4]
push dword [esp + 0x1c]
call fcn.00444800
add esp, 8
test eax, eax
je 0x450410
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 0x44e435
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 0x44e4f6
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 0x44e4bc
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 0x44e484
por xmm1, xmm0
cmp edx, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ebp, xmm1
je 0x44e4cc
mov ecx, dword [esp]
sub eax, ebx
lea ecx, [ecx + ebx*4]
or ebp, dword [ecx]
add ecx, 4
dec eax
jne 0x44e4c4
test ebp, ebp
je 0x44e537
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 + 0xbc]
jmp 0x44e0f4
push dword [esp + 4]
push dword [esp + 0x4c]
call fcn.00444800
add esp, 8
test eax, eax
je 0x450410
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 0x44e537
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 0x44e56a
push 0xf5
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x66
jmp 0x450404
cmp dword [esp + 0x84], 0
je 0x4503e1
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 0x44e665
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 0x44e601
cmp dword [esp + 0x80], esi
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x28]
jne 0x44f371
jmp 0x44f387
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 0x44e772
xor ebp, ebp
cmp eax, 4
mov dword [esp + 0x20], edx
jb 0x44e78b
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 0x44e6f4
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 0x44e6d1
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], edi
test eax, eax
mov dword [esp + 0x10], eax
jne 0x44e7a0
jmp 0x44e7cc
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], 0
jmp 0x44eebe
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 0x44e7a0
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 0x44e803
mov edx, dword [esp + 0x54]
jmp 0x44e885
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x54]
lea eax, [ebx + eax*4]
cmp ecx, eax
jae 0x44e81d
mov eax, dword [esp + 4]
lea eax, [ecx + eax*4]
cmp ebx, eax
jb 0x44e885
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 0x44e835
cmp dword [esp + 4], eax
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov ebp, eax
je 0x44e89b
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 0x44e885
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 0x44e950
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 0x44e8c8
cmp dword [esp + 0x44], 0
je 0x44e98a
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x44]
jmp 0x44e952
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 0x44e961
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 0x44e9c0
mov ebx, dword [esp + 4]
mov ebp, edi
jmp 0x44ea40
mov ebx, dword [esp + 4]
mov ebp, edi
lea edi, [edi + ebx*4]
cmp eax, edi
jae 0x44e9d4
lea edi, [eax + ebx*4]
cmp ebp, edi
jb 0x44ea40
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 0x44e9f0
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x20]
mov edx, edi
mov ebp, ecx
cmp ebx, edi
je 0x44ea5f
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 0x44ea40
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 0x44eb1e
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 0x44ea99
cmp dword [esp + 0x44], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebx
je 0x44eb5f
mov eax, dword [esp + 0x44]
jmp 0x44eb30
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 0x44eb42
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 0x44ec16
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 0x44eb8b
cmp dword [esp + 0x44], 0
je 0x44ec4f
mov edi, ebx
mov ebx, dword [esp + 0x44]
jmp 0x44ec1a
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 0x44ec25
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 0x44ec86
mov esi, dword [esp + 4]
mov ecx, dword [esp + 8]
jmp 0x44ed0a
mov esi, dword [esp + 4]
mov ecx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x44ec9d
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x44ed0a
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 0x44ecb8
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x44ed21
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 0x44ed0a
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 0x44ed43
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov ebp, edi
jmp 0x44edcf
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 0x44ed63
mov esi, dword [esp + 4]
lea edi, [eax + esi*4]
cmp ebp, edi
jb 0x44edcf
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 0x44ed7d
mov ebp, ecx
cmp dword [esp + 4], edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, edi
je 0x44edea
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 0x44edcf
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 0x44ee0e
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
mov ebp, edi
jmp 0x44ee9a
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 0x44ee2e
mov esi, dword [esp + 4]
lea edi, [eax + esi*4]
cmp ebp, edi
jb 0x44ee9a
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 0x44ee48
mov ebp, ecx
cmp dword [esp + 4], edi
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
mov edx, edi
je 0x44eeb5
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 0x44ee9a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x44f2df
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
cmp ecx, 4
mov edi, dword [eax]
mov ebp, dword [edx]
jb 0x44ef8a
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 0x44eeea
cmp dword [esp + 0x64], 0
je 0x44efaf
mov ecx, dword [esp + 0x64]
mov dword [esp], esi
jmp 0x44ef8e
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 0x44ef93
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 0x44f052
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 0x44efd8
cmp dword [esp + 0x64], 0
je 0x44f08c
mov edx, dword [esp + 0x64]
mov edi, eax
jmp 0x44f054
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 0x44f063
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 0x44f0bb
mov ebx, dword [esp + 8]
jmp 0x44f13b
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x44f0ce
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x44f13b
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 0x44f0e9
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x44f152
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 0x44f13b
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 0x44f17d
mov ebx, dword [esp + 8]
jmp 0x44f1fd
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x44f190
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x44f1fd
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 0x44f1ab
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x44f214
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 0x44f1fd
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 0x44f23f
mov ebx, dword [esp + 8]
jmp 0x44f2bf
mov ebx, dword [esp + 8]
lea edi, [edi + esi*4]
cmp eax, edi
jae 0x44f252
lea edi, [eax + esi*4]
cmp dword [esp], edi
jb 0x44f2bf
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 0x44f26d
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 8]
mov ebp, edx
cmp esi, edx
je 0x44f2d6
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 0x44f2bf
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 0x44f397
shr ecx, 1
cmp dword [esp + 0x28], 0
je 0x44f39e
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 0x44f387
cmp dword [esp + 0x80], 7
lea ecx, [eax + 4]
mov edx, 1
jbe 0x44f36a
mov esi, dword [esp]
lea edi, [esi + 4]
mov esi, dword [esp + 4]
lea ebp, [eax + esi*4]
cmp edi, ebp
jae 0x44e5f2
mov esi, dword [esp + 0x28]
mov edi, dword [esp]
lea edi, [edi + esi*4]
cmp ecx, edi
jae 0x44e5f2
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 0x44f371
mov edx, dword [esp + 4]
mov ecx, dword [eax + edx*4 - 4]
shr ecx, 1
mov dword [ebx + edx*4 - 4], ecx
jmp 0x44f3a3
mov ebx, esi
jmp 0x44f464
mov edx, dword [esp]
mov dword [edx], ecx
xor ecx, ecx
cmp dword [esp + 4], 8
jae 0x44f3bc
mov esi, dword [esp]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
jmp 0x44f445
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 0x44f3dd
mov edx, dword [esp + 4]
lea edx, [eax + edx*4]
cmp esi, edx
jb 0x44f445
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 0x44f3f5
cmp dword [esp + 4], edx
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
mov ecx, edx
je 0x44f45b
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 0x44f445
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 0x44f58c
mov ecx, dword [esp + 0xb8]
xor ebp, ebp
cmp dword [esp + 4], 4
mov edi, dword [ecx]
jb 0x44f599
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 0x44f501
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 0x44f4e3
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp dword [esp + 0x44], 0
mov dword [esp + 0x14], ebx
je 0x44f5d6
mov eax, dword [esp + 0x44]
jmp 0x44f5b2
mov dword [esp + 0x14], 0
jmp 0x44f680
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 0x44f5ba
mov dword [esp + 0x14], ecx
xor eax, eax
cmp dword [esp + 4], 8
jae 0x44f5f0
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x70]
jmp 0x44f653
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 0x44f60e
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x44f653
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 0x44f614
mov eax, esi
mov esi, dword [esp + 4]
cmp esi, eax
je 0x44f66d
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 0x44f653
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 0x44f80a
mov eax, dword [esp + 0xb4]
cmp ecx, 4
mov edi, dword [eax]
jb 0x44f731
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 0x44f6b5
cmp dword [esp + 0x64], 0
mov dword [esp + 0x38], ebx
je 0x44f770
mov edi, ebp
mov ebp, dword [esp + 0x64]
mov edx, ecx
jmp 0x44f74a
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 0x44f754
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x1c]
xor eax, eax
cmp esi, 8
jae 0x44f788
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
jmp 0x44f7e7
mov ebx, dword [esp]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
lea ecx, [ebx + esi*4]
cmp ebp, ecx
jae 0x44f7a2
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x44f7e7
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 0x44f7a8
mov eax, esi
mov esi, dword [esp + 0x1c]
cmp esi, eax
je 0x44f801
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 0x44f7e7
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
cmp dword [esp + 4], 0
je 0x44f9b6
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x28], 0
mov ebp, dword [eax]
je 0x44f834
xor eax, eax
cmp dword [esp + 0x28], 7
ja 0x44f843
mov esi, dword [esp + 0x28]
mov edi, dword [esp]
jmp 0x44f8b3
mov eax, dword [ebp]
mov ecx, dword [esp]
shr eax, 1
mov dword [ecx], eax
jmp 0x44f8d5
mov ecx, dword [esp + 4]
mov edi, dword [esp]
mov esi, dword [esp + 0x28]
lea ecx, [ebp + ecx*4]
cmp edi, ecx
jae 0x44f85d
lea ecx, [edi + esi*4]
cmp ebp, ecx
jb 0x44f8b3
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 0x44f863
mov esi, dword [esp + 0x28]
mov eax, ecx
cmp esi, ecx
je 0x44f8c7
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 0x44f8b3
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 0x44f8fa
mov esi, dword [esp]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
jmp 0x44f986
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 0x44f91c
mov ecx, dword [esp + 4]
lea ecx, [ebp + ecx*4]
cmp esi, ecx
jb 0x44f986
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 0x44f934
cmp dword [esp + 4], ecx
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
mov eax, ecx
je 0x44f99e
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 0x44f986
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 0x44fb4c
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x50], 0
mov edx, dword [eax]
je 0x44f9e5
xor eax, eax
cmp dword [esp + 0x50], 7
ja 0x44f9f3
mov esi, dword [esp + 0x50]
mov ebp, dword [esp]
jmp 0x44fa63
mov eax, dword [edx]
mov ecx, dword [esp]
shr eax, 1
mov dword [ecx], eax
jmp 0x44fa85
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp]
mov esi, dword [esp + 0x50]
lea ecx, [edx + ecx*4]
cmp ebp, ecx
jae 0x44fa0d
lea ecx, [ebp + esi*4]
cmp edx, ecx
jb 0x44fa63
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 0x44fa13
mov esi, dword [esp + 0x50]
mov eax, ecx
cmp esi, ecx
je 0x44fa77
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 0x44fa63
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 0x44faa1
mov esi, dword [esp]
mov ebp, dword [esp + 0x30]
jmp 0x44fb1e
mov esi, dword [esp]
mov ebp, dword [esp + 0x30]
lea ecx, [esi + edi*4]
cmp edx, ecx
jae 0x44fab6
lea ecx, [edx + edi*4]
cmp esi, ecx
jb 0x44fb1e
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 0x44fad0
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x30]
mov eax, ecx
cmp edi, ecx
je 0x44fb38
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 0x44fb1e
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 0x44fb86
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x28], 0
mov eax, dword [eax]
je 0x44fb8d
xor ecx, ecx
cmp dword [esp + 0x28], 7
ja 0x44fb9b
mov esi, dword [esp + 0x28]
mov ebp, dword [esp]
jmp 0x44fc0b
mov ebx, ecx
jmp 0x44fcee
mov ecx, dword [eax]
mov edx, dword [esp]
shr ecx, 1
mov dword [edx], ecx
jmp 0x44fc2d
mov edx, dword [esp + 4]
mov ebp, dword [esp]
mov esi, dword [esp + 0x28]
lea edx, [eax + edx*4]
cmp ebp, edx
jae 0x44fbb5
lea edx, [ebp + esi*4]
cmp eax, edx
jb 0x44fc0b
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 0x44fbbb
mov esi, dword [esp + 0x28]
mov ecx, edx
cmp esi, edx
je 0x44fc1f
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 0x44fc0b
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 0x44fc46
mov esi, dword [esp]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
jmp 0x44fccf
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 0x44fc67
mov edx, dword [esp + 4]
lea edx, [eax + edx*4]
cmp esi, edx
jb 0x44fccf
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 0x44fc7f
cmp dword [esp + 4], edx
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
mov ecx, edx
je 0x44fce5
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 0x44fccf
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 0x44fe15
mov eax, dword [esp + 0xb8]
xor ebp, ebp
cmp ecx, 4
mov edi, dword [eax]
jb 0x44fe22
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 0x44fd8a
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 0x44fd6c
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp dword [esp + 0x44], 0
mov dword [esp + 0x14], ebx
je 0x44fe5f
mov edx, dword [esp + 0x44]
jmp 0x44fe3b
mov dword [esp + 0x14], 0
jmp 0x44ff09
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 0x44fe43
mov dword [esp + 0x14], ecx
xor eax, eax
cmp dword [esp + 4], 8
jae 0x44fe79
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
jmp 0x44fedc
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 0x44fe97
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x44fedc
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 0x44fe9d
mov eax, esi
mov esi, dword [esp + 4]
cmp esi, eax
je 0x44fef6
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 0x44fedc
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 0x450091
mov eax, dword [esp + 0xb4]
cmp ecx, 4
mov edi, dword [eax]
jb 0x44ffb8
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 0x44ff3e
cmp dword [esp + 0x64], 0
mov dword [esp + 0x38], ebx
je 0x44fff7
mov edi, ebp
mov ebp, dword [esp + 0x64]
jmp 0x44ffd1
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 0x44ffdb
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x1c]
xor eax, eax
cmp esi, 8
jae 0x45000f
mov ebx, dword [esp]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
jmp 0x45006e
mov ebx, dword [esp]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
lea ecx, [ebx + esi*4]
cmp ebp, ecx
jae 0x450029
lea ecx, [ebp + esi*4]
cmp ebx, ecx
jb 0x45006e
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 0x45002f
mov eax, esi
mov esi, dword [esp + 0x1c]
cmp esi, eax
je 0x450088
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 0x45006e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp], eax
cmp dword [esp + 4], 0
je 0x45023d
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x28], 0
mov ebp, dword [eax]
je 0x4500bb
xor eax, eax
cmp dword [esp + 0x28], 7
ja 0x4500ca
mov esi, dword [esp + 0x28]
mov edi, dword [esp]
jmp 0x45013a
mov eax, dword [ebp]
mov ecx, dword [esp]
shr eax, 1
mov dword [ecx], eax
jmp 0x45015c
mov ecx, dword [esp + 4]
mov edi, dword [esp]
mov esi, dword [esp + 0x28]
lea ecx, [ebp + ecx*4]
cmp edi, ecx
jae 0x4500e4
lea ecx, [edi + esi*4]
cmp ebp, ecx
jb 0x45013a
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 0x4500ea
mov esi, dword [esp + 0x28]
mov eax, ecx
cmp esi, ecx
je 0x45014e
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 0x45013a
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 0x450181
mov esi, dword [esp]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
jmp 0x45020d
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 0x4501a3
mov ecx, dword [esp + 4]
lea ecx, [ebp + ecx*4]
cmp esi, ecx
jb 0x45020d
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 0x4501bb
cmp dword [esp + 4], ecx
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov eax, ecx
je 0x450225
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 0x45020d
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 0x4503c5
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x50], 0
mov eax, dword [eax]
je 0x450267
xor ecx, ecx
cmp dword [esp + 0x50], 7
ja 0x450275
mov esi, dword [esp + 0x50]
mov ebp, dword [esp]
jmp 0x4502e5
mov ecx, dword [eax]
mov edx, dword [esp]
shr ecx, 1
mov dword [edx], ecx
jmp 0x450307
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp]
mov esi, dword [esp + 0x50]
lea edx, [eax + edx*4]
cmp ebp, edx
jae 0x45028f
lea edx, [ebp + esi*4]
cmp eax, edx
jb 0x4502e5
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 0x450295
mov esi, dword [esp + 0x50]
mov ecx, edx
cmp esi, edx
je 0x4502f9
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 0x4502e5
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 0x450323
mov esi, dword [esp]
mov ebp, dword [esp + 0x2c]
jmp 0x4503a0
mov esi, dword [esp]
mov ebp, dword [esp + 0x2c]
lea edx, [esi + edi*4]
cmp eax, edx
jae 0x450338
lea edx, [eax + edi*4]
cmp esi, edx
jb 0x4503a0
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 0x450352
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2c]
mov ecx, edx
cmp edi, edx
je 0x4503ba
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 0x4503a0
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 0x44e665
mov eax, dword [esp + 0x58]
cmp dword [eax + 0xc], 0
je 0x45041c
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.adb.exe_ERR_put_error
add esp, 0x14
mov edi, dword [esp + 0xbc]
jmp 0x44e0f2
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 4]
test eax, eax
je 0x4503eb
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx]
mov esi, dword [ecx]
xor esi, 1
cmp eax, 2
jl 0x45049d
lea edx, [eax - 1]
mov ebx, 1
cmp edx, 8
jb 0x450490
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 0x450459
por xmm0, xmm1
cmp edx, ebp
pshufd xmm1, xmm0, 0x4e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xe5
por xmm0, xmm1
movd esi, xmm0
je 0x45049d
sub eax, ebx
lea ecx, [ecx + ebx*4]
or esi, dword [ecx]
add ecx, 4
dec eax
jne 0x450495
test esi, esi
jne 0x4503eb
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0xac]
je 0x45051a
mov eax, dword [esp + 0x3c]
push dword [eax + 4]
push dword [esp + 0xb0]
call fcn.00444800
add esp, 8
test eax, eax
je 0x45050f
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x4504f9
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 0x45051a
mov dword [esp + 0x8c], 0
xor ebx, ebx
cmp dword [esp + 0x8c], 0
setne bl
jmp 0x44e4ea