// File: KokiKishimoto[P]cp_decomposition/testcp.cpp
// Function: main
int main(int argc, char **argv){
	std::string trainname;
	std::string testname;
	std::string validname;
	std::string subjectname;
	std::string objectname;
	std::string relationname;
	int i;
	if ((i = ArgPos((char *)"-train", argc, argv)) > 0) trainname = argv[i + 1];
	if ((i = ArgPos((char *)"-test", argc, argv)) > 0) testname = argv[i + 1];
	if ((i = ArgPos((char *)"-valid", argc, argv)) > 0) validname = argv[i + 1];
	if ((i = ArgPos((char *)"-subject_model", argc, argv)) > 0) subjectname = argv[i + 1];
	if ((i = ArgPos((char *)"-object_model", argc, argv)) > 0) objectname = argv[i + 1];
	if ((i = ArgPos((char *)"-relation_model", argc, argv)) > 0) relationname = argv[i + 1];
	TestCP test(trainname, testname, validname, subjectname, objectname, relationname);

	test.test_inv();
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6e0, %rsp            # imm = 0x6E0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x2320
leaq -0x50(%rbp), %rdi
callq 0x2320
leaq -0x70(%rbp), %rdi
callq 0x2320
leaq -0x90(%rbp), %rdi
callq 0x2320
leaq -0xb0(%rbp), %rdi
callq 0x2320
leaq -0xd0(%rbp), %rdi
callq 0x2320
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x680(%rbp)
callq 0x23b0
movq -0x680(%rbp), %rdx
leaq 0x119ec(%rip), %rsi     # 0x14055
leaq -0xf8(%rbp), %rdi
callq 0x2e50
jmp 0x2677
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0xf8(%rbp), %rdi
callq 0x2540
movl %eax, -0x684(%rbp)
jmp 0x2692
movl -0x684(%rbp), %eax
movl %eax, -0xd4(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x2150
leaq -0xf9(%rbp), %rdi
callq 0x2270
movl -0x684(%rbp), %eax
cmpl $0x0, %eax
jle 0x2738
movq -0x10(%rbp), %rax
movslq -0xd4(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rsi
leaq -0x30(%rbp), %rdi
callq 0x2310
jmp 0x26dc
jmp 0x2738
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2710
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x2150
leaq -0xf9(%rbp), %rdi
callq 0x2270
jmp 0x2dc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2dc6
leaq -0x131(%rbp), %rdi
movq %rdi, -0x690(%rbp)
callq 0x23b0
movq -0x690(%rbp), %rdx
leaq 0x11903(%rip), %rsi     # 0x1405c
leaq -0x130(%rbp), %rdi
callq 0x2e50
jmp 0x2767
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x130(%rbp), %rdi
callq 0x2540
movl %eax, -0x694(%rbp)
jmp 0x2782
movl -0x694(%rbp), %eax
movl %eax, -0xd4(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x2150
leaq -0x131(%rbp), %rdi
callq 0x2270
movl -0x694(%rbp), %eax
cmpl $0x0, %eax
jle 0x2811
movq -0x10(%rbp), %rax
movslq -0xd4(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rsi
leaq -0x50(%rbp), %rdi
callq 0x2310
jmp 0x27cc
jmp 0x2811
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2800
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x2150
leaq -0x131(%rbp), %rdi
callq 0x2270
jmp 0x2dc6
leaq -0x159(%rbp), %rdi
movq %rdi, -0x6a0(%rbp)
callq 0x23b0
movq -0x6a0(%rbp), %rdx
leaq 0x11830(%rip), %rsi     # 0x14062
leaq -0x158(%rbp), %rdi
callq 0x2e50
jmp 0x2840
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x158(%rbp), %rdi
callq 0x2540
movl %eax, -0x6a4(%rbp)
jmp 0x285b
movl -0x6a4(%rbp), %eax
movl %eax, -0xd4(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x2150
leaq -0x159(%rbp), %rdi
callq 0x2270
movl -0x6a4(%rbp), %eax
cmpl $0x0, %eax
jle 0x28ea
movq -0x10(%rbp), %rax
movslq -0xd4(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rsi
leaq -0x70(%rbp), %rdi
callq 0x2310
jmp 0x28a5
jmp 0x28ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x28d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x2150
leaq -0x159(%rbp), %rdi
callq 0x2270
jmp 0x2dc6
leaq -0x181(%rbp), %rdi
movq %rdi, -0x6b0(%rbp)
callq 0x23b0
movq -0x6b0(%rbp), %rdx
leaq 0x1175e(%rip), %rsi     # 0x14069
leaq -0x180(%rbp), %rdi
callq 0x2e50
jmp 0x2919
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x180(%rbp), %rdi
callq 0x2540
movl %eax, -0x6b4(%rbp)
jmp 0x2934
movl -0x6b4(%rbp), %eax
movl %eax, -0xd4(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x2150
leaq -0x181(%rbp), %rdi
callq 0x2270
movl -0x6b4(%rbp), %eax
cmpl $0x0, %eax
jle 0x29c6
movq -0x10(%rbp), %rax
movslq -0xd4(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rsi
leaq -0x90(%rbp), %rdi
callq 0x2310
jmp 0x2981
jmp 0x29c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x29b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x2150
leaq -0x181(%rbp), %rdi
callq 0x2270
jmp 0x2dc6
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x6c0(%rbp)
callq 0x23b0
movq -0x6c0(%rbp), %rdx
leaq 0x11691(%rip), %rsi     # 0x14078
leaq -0x1a8(%rbp), %rdi
callq 0x2e50
jmp 0x29f5
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x1a8(%rbp), %rdi
callq 0x2540
movl %eax, -0x6c4(%rbp)
jmp 0x2a10
movl -0x6c4(%rbp), %eax
movl %eax, -0xd4(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x2150
leaq -0x1a9(%rbp), %rdi
callq 0x2270
movl -0x6c4(%rbp), %eax
cmpl $0x0, %eax
jle 0x2aa2
movq -0x10(%rbp), %rax
movslq -0xd4(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x2310
jmp 0x2a5d
jmp 0x2aa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2a91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x2150
leaq -0x1a9(%rbp), %rdi
callq 0x2270
jmp 0x2dc6
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
callq 0x23b0
movq -0x6d0(%rbp), %rdx
leaq 0x115c3(%rip), %rsi     # 0x14086
leaq -0x1d0(%rbp), %rdi
callq 0x2e50
jmp 0x2ad1
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x1d0(%rbp), %rdi
callq 0x2540
movl %eax, -0x6d4(%rbp)
jmp 0x2aec
movl -0x6d4(%rbp), %eax
movl %eax, -0xd4(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x2150
leaq -0x1d1(%rbp), %rdi
callq 0x2270
movl -0x6d4(%rbp), %eax
cmpl $0x0, %eax
jle 0x2b7e
movq -0x10(%rbp), %rax
movslq -0xd4(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x2310
jmp 0x2b39
jmp 0x2b7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2b6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x2150
leaq -0x1d1(%rbp), %rdi
callq 0x2270
jmp 0x2dc6
leaq -0x5d8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x20f0
jmp 0x2b90
leaq -0x5f8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x20f0
jmp 0x2ba2
leaq -0x618(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x20f0
jmp 0x2bb4
leaq -0x638(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x20f0
jmp 0x2bc9
leaq -0x658(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x20f0
jmp 0x2bde
leaq -0x678(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x20f0
jmp 0x2bf3
movq %rsp, %rax
leaq -0x678(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x5b8(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
leaq -0x5f8(%rbp), %rdx
leaq -0x618(%rbp), %rcx
leaq -0x638(%rbp), %r8
leaq -0x658(%rbp), %r9
callq 0x2f00
jmp 0x2c31
leaq -0x678(%rbp), %rdi
callq 0x2150
leaq -0x658(%rbp), %rdi
callq 0x2150
leaq -0x638(%rbp), %rdi
callq 0x2150
leaq -0x618(%rbp), %rdi
callq 0x2150
leaq -0x5f8(%rbp), %rdi
callq 0x2150
leaq -0x5d8(%rbp), %rdi
callq 0x2150
leaq -0x5b8(%rbp), %rdi
callq 0x3900
jmp 0x2c87
movl $0x0, -0x4(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x4030
leaq -0xd0(%rbp), %rdi
callq 0x2150
leaq -0xb0(%rbp), %rdi
callq 0x2150
leaq -0x90(%rbp), %rdi
callq 0x2150
leaq -0x70(%rbp), %rdi
callq 0x2150
leaq -0x50(%rbp), %rdi
callq 0x2150
leaq -0x30(%rbp), %rdi
callq 0x2150
movl -0x4(%rbp), %eax
addq $0x6e0, %rsp            # imm = 0x6E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2d9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2d8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2d82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2d76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2d6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x678(%rbp), %rdi
callq 0x2150
leaq -0x658(%rbp), %rdi
callq 0x2150
leaq -0x638(%rbp), %rdi
callq 0x2150
leaq -0x618(%rbp), %rdi
callq 0x2150
leaq -0x5f8(%rbp), %rdi
callq 0x2150
leaq -0x5d8(%rbp), %rdi
callq 0x2150
jmp 0x2dc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x4030
leaq -0xd0(%rbp), %rdi
callq 0x2150
leaq -0xb0(%rbp), %rdi
callq 0x2150
leaq -0x90(%rbp), %rdi
callq 0x2150
leaq -0x70(%rbp), %rdi
callq 0x2150
leaq -0x50(%rbp), %rdi
callq 0x2150
leaq -0x30(%rbp), %rdi
callq 0x2150
movq -0x108(%rbp), %rdi
callq 0x23a0
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)