// File: /workspace/github_c_makefile_star2_O0/maandree[P]libkeccak/test.c
// Function: main
int
main(void)
{
	struct libkeccak_generalised_spec gspec;
	struct libkeccak_spec spec;

	libkeccak_generalised_spec_initialise(&gspec);
	if (libkeccak_degeneralise_spec(&gspec, &spec)) {
		printf("libkeccak_degeneralise_spec failed with all members at automatic.\n");
		return 1;
	}

	printf("Resolution of default specification:\n");
	printf("  bitrate:    %li\n", gspec.bitrate);
	printf("  capacity:   %li\n", gspec.capacity);
	printf("  output:     %li\n", gspec.output);
	printf("  state size: %li\n", gspec.state_size);
	printf("  word size:  %li\n", gspec.word_size);

	if (gspec.word_size * 25 != gspec.state_size ||
	    gspec.bitrate + gspec.capacity != gspec.state_size) {
		printf("Invalid information\n");
		return 1;
	}
	if (gspec.state_size != 1600 ||
	    gspec.bitrate != gspec.output * 2 ||
	    gspec.output != 512) {
		printf("Incorrect information\n");
		return 1;
	}
	printf("\n");

	if (test_hex() ||
	    test_state(&spec) ||
	    test_digest() ||
	    test_digest_bits() ||
	    test_digest_trunc() ||
	    test_update() ||
	    test_squeeze())
		return 1;

	if (test_file(&spec, LIBKECCAK_SHA3_SUFFIX, ".testfile",
	              "a95484492e9ade0f1d28f872d197ff45d891e85e78f918643f41d524c5d6ab0f"
	              "17974dc08ec82870b132612dcbeb062213bf594881dc764d6078865a7c694c57"))
		return 1;
  
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl $0x0, -0x4(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xbd50
leaq -0x30(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xb8d0
cmpl $0x0, %eax
je 0x1264
leaq 0xbdb3(%rip), %rdi      # 0xd004
movb $0x0, %al
callq 0x1060
movl $0x1, -0x4(%rbp)
jmp 0x13d1
leaq 0xbddc(%rip), %rdi      # 0xd047
movb $0x0, %al
callq 0x1060
movq -0x30(%rbp), %rsi
leaq 0xbdf0(%rip), %rdi      # 0xd06d
movb $0x0, %al
callq 0x1060
movq -0x28(%rbp), %rsi
leaq 0xbdf1(%rip), %rdi      # 0xd080
movb $0x0, %al
callq 0x1060
movq -0x20(%rbp), %rsi
leaq 0xbdf2(%rip), %rdi      # 0xd093
movb $0x0, %al
callq 0x1060
movq -0x18(%rbp), %rsi
leaq 0xbdf3(%rip), %rdi      # 0xd0a6
movb $0x0, %al
callq 0x1060
movq -0x10(%rbp), %rsi
leaq 0xbdf4(%rip), %rdi      # 0xd0b9
movb $0x0, %al
callq 0x1060
imulq $0x19, -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0x12e5
movq -0x30(%rbp), %rax
addq -0x28(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0x12ff
leaq 0xbde0(%rip), %rdi      # 0xd0cc
movb $0x0, %al
callq 0x1060
movl $0x1, -0x4(%rbp)
jmp 0x13d1
cmpq $0x640, -0x18(%rbp)     # imm = 0x640
jne 0x1323
movq -0x30(%rbp), %rax
movq -0x20(%rbp), %rcx
shlq %rcx
cmpq %rcx, %rax
jne 0x1323
cmpq $0x200, -0x20(%rbp)     # imm = 0x200
je 0x133d
leaq 0xbdb7(%rip), %rdi      # 0xd0e1
movb $0x0, %al
callq 0x1060
movl $0x1, -0x4(%rbp)
jmp 0x13d1
leaq 0xbd01(%rip), %rdi      # 0xd045
movb $0x0, %al
callq 0x1060
callq 0x13e0
cmpl $0x0, %eax
jne 0x1395
leaq -0x48(%rbp), %rdi
callq 0x15d0
cmpl $0x0, %eax
jne 0x1395
callq 0x18a0
cmpl $0x0, %eax
jne 0x1395
callq 0x2970
cmpl $0x0, %eax
jne 0x1395
callq 0x3c90
cmpl $0x0, %eax
jne 0x1395
callq 0x4010
cmpl $0x0, %eax
jne 0x1395
callq 0x43d0
cmpl $0x0, %eax
je 0x139e
movl $0x1, -0x4(%rbp)
jmp 0x13d1
leaq -0x48(%rbp), %rdi
leaq 0x125fe(%rip), %rsi     # 0x139a7
leaq 0xbd48(%rip), %rdx      # 0xd0f8
leaq 0xbd4b(%rip), %rcx      # 0xd102
callq 0x4ae0
cmpl $0x0, %eax
je 0x13ca
movl $0x1, -0x4(%rbp)
jmp 0x13d1
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)