// File: rishabh-battulwar[P]imageprocessing/./src/Main.cpp
// Function: main
int main(int argc, char* argv[])
{
	int width = 512, height = 512;
	int window_size = 3, region_size = 5;
	int sigma = 1, h = 1, sigma_sim = 20;
	float threshold = 20.0, tau = 0.99, epsilon = 0.3, phi = 2;
	int target_width = 700, target_height = 700;
	int iter = 6, percentage = 10;
	//char *type = "color";
	char *method_name = "color_to_bw";
	char *infile = "../images/mandril.raw";
	char *outfile = "../images/mandril_bw.raw";
	if (argc < 3)
		usage(argv[0]);

	for(int i = 1; i < argc; i++)
	{
		if     (!(strcmp(argv[i], "-prob"))) method_name = argv[++i];
		else if(!(strcmp(argv[i], "-i"))) infile = argv[++i];
		else if(!(strcmp(argv[i], "-o"))) outfile = argv[++i];
		//else if(!(strcmp(argv[i], "bw")) || !(strcmp(argv[i], "color"))) type = argv[i];
		else if(!(strcmp(argv[i], "-w"))) width = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-h"))) height = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-tw"))) target_width = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-th"))) target_height = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-ws"))) window_size = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-rs"))) region_size = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-sigma"))) sigma = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-sigma_sim"))) sigma_sim = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-iter"))) iter = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-perc"))) percentage = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-h"))) h = atoi(argv[++i]);
		else if(!(strcmp(argv[i], "-thresh"))) threshold = atof(argv[++i]);
		else if(!(strcmp(argv[i], "-tau"))) tau = atof(argv[++i]);
		else if(!(strcmp(argv[i], "-epsilon"))) epsilon = atof(argv[++i]);
		else if(!(strcmp(argv[i], "-phi"))) phi = atof(argv[++i]);
		else
		{
			std::cerr << "\n Unknown Option : " << argv[i] << std::endl;
			usage(argv[0]);
		}
	}


	if     (!(strcmp(method_name, "color_to_bw"))) 			ImageProc::color_to_bw(infile, outfile, width, height);
	else if(!(strcmp(method_name, "image_resize")))			ImageProc::image_resize(infile, outfile, width, height, target_width, target_height);
	else if(!(strcmp(method_name, "hist_eq_cum")))			ImageProc::hist_equal_cumulative(infile, outfile, width, height);
	else if(!(strcmp(method_name, "hist_equal")))			ImageProc::hist_equal(infile, outfile, width, height);
	else if(!(strcmp(method_name, "oil_paint_effect")))		ImageProc::oil_painting(infile, outfile, width, height, window_size);
	else if(!(strcmp(method_name, "special_effect")))		ImageProc::film_special_effect(infile, outfile, width, height);
	else if(!(strcmp(method_name, "denoising")))			ImageProc::denoising(infile, outfile, width, height, window_size, sigma, threshold);
	else if(!(strcmp(method_name, "bilateral_filter")))		ImageProc::apply_bilateral_filter(infile, outfile, width, height, window_size, sigma, sigma_sim, iter);
	else if(!(strcmp(method_name, "non_local_mean")))		ImageProc::apply_non_local_mean(infile, outfile, width, height, window_size, region_size, sigma, h);
	else if(!(strcmp(method_name, "sobel")))				ImageProc::apply_sobel_operator(infile, outfile, width, height, percentage);
	else if(!(strcmp(method_name, "LoG")))					ImageProc::apply_LoG_operator(infile, outfile, width, height);
	else if(!(strcmp(method_name, "halftone")))				ImageProc::halftoning(infile, width, height);
	else if(!(strcmp(method_name, "color_halftone")))		ImageProc::color_halftoning(infile, outfile, width, height);
	else if(!(strcmp(method_name, "art_effect")))			ImageProc::apply_artistic_effect(infile, outfile, width, height, tau, epsilon, phi, window_size, sigma, sigma_sim, iter);
	else if(!(strcmp(method_name, "fingerprint")))			ImageProc::apply_morphology(infile, outfile, width, height);
	else if(!(strcmp(method_name, "binary")))				ImageProc::apply_binarization(infile, outfile, width, height);
	else if(!(strcmp(method_name, "minutiae")))				ImageProc::apply_minutae_extraction(infile, outfile, width, height);

	else
	{
		std::cout << "method_name doesn't match any method!" << std::endl;
		usage(argv[0]);
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x200, -0x14(%rbp)     # imm = 0x200
movl $0x200, -0x18(%rbp)     # imm = 0x200
movl $0x3, -0x1c(%rbp)
movl $0x5, -0x20(%rbp)
movl $0x1, -0x24(%rbp)
movl $0x1, -0x28(%rbp)
movl $0x14, -0x2c(%rbp)
movss 0x1d02(%rip), %xmm0     # 0x1c5e4
movss %xmm0, -0x30(%rbp)
movss 0x1cf1(%rip), %xmm0     # 0x1c5e0
movss %xmm0, -0x34(%rbp)
movss 0x1ce0(%rip), %xmm0     # 0x1c5dc
movss %xmm0, -0x38(%rbp)
movss 0x1ccf(%rip), %xmm0     # 0x1c5d8
movss %xmm0, -0x3c(%rbp)
movl $0x2bc, -0x40(%rbp)     # imm = 0x2BC
movl $0x2bc, -0x44(%rbp)     # imm = 0x2BC
movl $0x6, -0x48(%rbp)
movl $0xa, -0x4c(%rbp)
leaq 0x2c9a(%rip), %rax      # 0x1d5cb
movq %rax, -0x58(%rbp)
leaq 0x2c9b(%rip), %rax      # 0x1d5d7
movq %rax, -0x60(%rbp)
leaq 0x2ca6(%rip), %rax      # 0x1d5ed
movq %rax, -0x68(%rbp)
cmpl $0x3, -0x8(%rbp)
jge 0x1a95d
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x1a300
movl $0x1, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x1ae49
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2c83(%rip), %rsi      # 0x1d606
callq 0x22a0
cmpl $0x0, %eax
jne 0x1a9aa
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x58(%rbp)
jmp 0x1ae39
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2c4f(%rip), %rsi      # 0x1d60c
callq 0x22a0
cmpl $0x0, %eax
jne 0x1a9e4
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x60(%rbp)
jmp 0x1ae37
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2c18(%rip), %rsi      # 0x1d60f
callq 0x22a0
cmpl $0x0, %eax
jne 0x1aa1e
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x68(%rbp)
jmp 0x1ae35
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2be1(%rip), %rsi      # 0x1d612
callq 0x22a0
cmpl $0x0, %eax
jne 0x1aa5c
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x14(%rbp)
jmp 0x1ae33
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2ba6(%rip), %rsi      # 0x1d615
callq 0x22a0
cmpl $0x0, %eax
jne 0x1aa9a
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x18(%rbp)
jmp 0x1ae31
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2b6b(%rip), %rsi      # 0x1d618
callq 0x22a0
cmpl $0x0, %eax
jne 0x1aad8
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x40(%rbp)
jmp 0x1ae2f
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2b31(%rip), %rsi      # 0x1d61c
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ab16
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x44(%rbp)
jmp 0x1ae2d
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2af7(%rip), %rsi      # 0x1d620
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ab54
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x1c(%rbp)
jmp 0x1ae2b
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2abd(%rip), %rsi      # 0x1d624
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ab92
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x20(%rbp)
jmp 0x1ae29
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2a83(%rip), %rsi      # 0x1d628
callq 0x22a0
cmpl $0x0, %eax
jne 0x1abd0
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x24(%rbp)
jmp 0x1ae27
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2a4c(%rip), %rsi      # 0x1d62f
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ac0e
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x2c(%rbp)
jmp 0x1ae25
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2a19(%rip), %rsi      # 0x1d63a
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ac4c
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x48(%rbp)
jmp 0x1ae23
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x29e1(%rip), %rsi      # 0x1d640
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ac8a
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x4c(%rbp)
jmp 0x1ae21
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2978(%rip), %rsi      # 0x1d615
callq 0x22a0
cmpl $0x0, %eax
jne 0x1acc8
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x22f0
movl %eax, -0x28(%rbp)
jmp 0x1ae1f
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x296b(%rip), %rsi      # 0x1d646
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ad0c
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2260
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
jmp 0x1ae1d
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x292f(%rip), %rsi      # 0x1d64e
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ad50
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2260
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x34(%rbp)
jmp 0x1ae1b
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x28f0(%rip), %rsi      # 0x1d653
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ad94
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2260
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x38(%rbp)
jmp 0x1ae19
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x28b5(%rip), %rsi      # 0x1d65c
callq 0x22a0
cmpl $0x0, %eax
jne 0x1add5
movq -0x10(%rbp), %rax
movl -0x6c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2260
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x3c(%rbp)
jmp 0x1ae17
movq 0x620c(%rip), %rdi      # 0x20fe8
leaq 0x287e(%rip), %rsi      # 0x1d661
callq 0x21c0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x21c0
movq %rax, %rdi
movq 0x61b2(%rip), %rsi      # 0x20fb8
callq 0x21e0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x1a300
jmp 0x1ae19
jmp 0x1ae1b
jmp 0x1ae1d
jmp 0x1ae1f
jmp 0x1ae21
jmp 0x1ae23
jmp 0x1ae25
jmp 0x1ae27
jmp 0x1ae29
jmp 0x1ae2b
jmp 0x1ae2d
jmp 0x1ae2f
jmp 0x1ae31
jmp 0x1ae33
jmp 0x1ae35
jmp 0x1ae37
jmp 0x1ae39
jmp 0x1ae3b
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0x1a964
movq -0x58(%rbp), %rdi
leaq 0x2777(%rip), %rsi      # 0x1d5cb
callq 0x22a0
cmpl $0x0, %eax
jne 0x1ae76
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0xba20
jmp 0x1b1fb
movq -0x58(%rbp), %rdi
leaq 0x27f4(%rip), %rsi      # 0x1d675
callq 0x22a0
cmpl $0x0, %eax
jne 0x1aeab
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x40(%rbp), %r8d
movl -0x44(%rbp), %r9d
callq 0xbc10
jmp 0x1b1f9
movq -0x58(%rbp), %rdi
leaq 0x27cc(%rip), %rsi      # 0x1d682
callq 0x22a0
cmpl $0x0, %eax
jne 0x1aed8
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0xbfe0
jmp 0x1b1f7
movq -0x58(%rbp), %rdi
leaq 0x27ab(%rip), %rsi      # 0x1d68e
callq 0x22a0
cmpl $0x0, %eax
jne 0x1af05
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0xc450
jmp 0x1b1f5
movq -0x58(%rbp), %rdi
leaq 0x2789(%rip), %rsi      # 0x1d699
callq 0x22a0
cmpl $0x0, %eax
jne 0x1af36
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x1c(%rbp), %r8d
callq 0xc9a0
jmp 0x1b1f3
movq -0x58(%rbp), %rdi
leaq 0x2769(%rip), %rsi      # 0x1d6aa
callq 0x22a0
cmpl $0x0, %eax
jne 0x1af63
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0xcef0
jmp 0x1b1f1
movq -0x58(%rbp), %rdi
leaq 0x274b(%rip), %rsi      # 0x1d6b9
callq 0x22a0
cmpl $0x0, %eax
jne 0x1af9d
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x1c(%rbp), %r8d
movl -0x24(%rbp), %r9d
movss -0x30(%rbp), %xmm0
callq 0xd1d0
jmp 0x1b1ef
movq -0x58(%rbp), %rdi
leaq 0x271b(%rip), %rsi      # 0x1d6c3
callq 0x22a0
cmpl $0x0, %eax
jne 0x1afe1
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x1c(%rbp), %r8d
movl -0x24(%rbp), %r9d
movl -0x2c(%rbp), %r10d
movl -0x48(%rbp), %eax
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0xf4c0
jmp 0x1b1ed
movq -0x58(%rbp), %rdi
leaq 0x26e8(%rip), %rsi      # 0x1d6d4
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b025
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x1c(%rbp), %r8d
movl -0x20(%rbp), %r9d
movl -0x24(%rbp), %r10d
movl -0x28(%rbp), %eax
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0xff70
jmp 0x1b1eb
movq -0x58(%rbp), %rdi
leaq 0x26b3(%rip), %rsi      # 0x1d6e3
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b056
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x4c(%rbp), %r8d
callq 0x10c70
jmp 0x1b1e9
movq -0x58(%rbp), %rdi
leaq 0x2688(%rip), %rsi      # 0x1d6e9
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b083
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0x11ff0
jmp 0x1b1e7
movq -0x58(%rbp), %rdi
leaq 0x2665(%rip), %rsi      # 0x1d6f3
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b0ac
movq -0x60(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x131a0
jmp 0x1b1e5
movq -0x58(%rbp), %rdi
leaq 0x2636(%rip), %rsi      # 0x1d6ed
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b0d9
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0x142a0
jmp 0x1b1e3
movq -0x58(%rbp), %rdi
leaq 0x2618(%rip), %rsi      # 0x1d6fc
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b12c
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movss -0x34(%rbp), %xmm0
movss -0x38(%rbp), %xmm1
movss -0x3c(%rbp), %xmm2
movl -0x1c(%rbp), %r8d
movl -0x24(%rbp), %r9d
movl -0x2c(%rbp), %r10d
movl -0x48(%rbp), %eax
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x161a0
jmp 0x1b1e1
movq -0x58(%rbp), %rdi
leaq 0x25d0(%rip), %rsi      # 0x1d707
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b159
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0x17290
jmp 0x1b1df
movq -0x58(%rbp), %rdi
leaq 0x25af(%rip), %rsi      # 0x1d713
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b183
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0x19da0
jmp 0x1b1dd
movq -0x58(%rbp), %rdi
leaq 0x258c(%rip), %rsi      # 0x1d71a
callq 0x22a0
cmpl $0x0, %eax
jne 0x1b1ad
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0x19e70
jmp 0x1b1db
movq 0x5e14(%rip), %rdi      # 0x20fc8
leaq 0x2568(%rip), %rsi      # 0x1d723
callq 0x21c0
movq %rax, %rdi
movq 0x5dee(%rip), %rsi      # 0x20fb8
callq 0x21e0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x1a300
jmp 0x1b1dd
jmp 0x1b1df
jmp 0x1b1e1
jmp 0x1b1e3
jmp 0x1b1e5
jmp 0x1b1e7
jmp 0x1b1e9
jmp 0x1b1eb
jmp 0x1b1ed
jmp 0x1b1ef
jmp 0x1b1f1
jmp 0x1b1f3
jmp 0x1b1f5
jmp 0x1b1f7
jmp 0x1b1f9
jmp 0x1b1fb
xorl %eax, %eax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)