// File: /workspace/github_c_makefile_star2_O0/seanpringle[P]xoat/./setup.c
// Function: setup
void setup()
{
	int i, j; Client *c; Monitor *m;
	memset(&monitors, 0, sizeof(monitors));

	int screen_w = WidthOfScreen(DefaultScreenOfDisplay(display));
	int screen_h = HeightOfScreen(DefaultScreenOfDisplay(display));

	// default non-multi-head setup
	monitors[0].w = screen_w;
	monitors[0].h = screen_h;

	// support multi-head.
	XineramaScreenInfo *info;
	if (XineramaIsActive(display) && (info = XineramaQueryScreens(display, &nmonitors)))
	{
		nmonitors = MIN(nmonitors, MONITORS);
		for_monitors(i, m)
		{
			m->x = info[i].x_org;
			m->y = info[i].y_org;
			m->w = info[i].width;
			m->h = info[i].height;
		}
		XFree(info);
	}

	// detect and adjust for panel struts
	Monitor padded[MONITORS];
	memmove(padded, monitors, sizeof(Monitor) * MONITORS);
	wm_strut all_struts; memset(&all_struts, 0, sizeof(wm_strut));

	for_windows(i, c)
	{
		wm_strut strut; memset(&strut, 0, sizeof(wm_strut));
		int v2 = GETPROP_LONG(c->window, atoms[_NET_WM_STRUT_PARTIAL], (unsigned long*)&strut, 12);
		int v1 = v2 ? 0: GETPROP_LONG(c->window, atoms[_NET_WM_STRUT], (unsigned long*)&strut, 4);
		if (!c->visible || (!v1 && !v2)) continue;

		all_struts.left   = MAX(all_struts.left,   strut.left);
		all_struts.right  = MAX(all_struts.right,  strut.right);
		all_struts.top    = MAX(all_struts.top,    strut.top);
		all_struts.bottom = MAX(all_struts.bottom, strut.bottom);
	}

	for_monitors(j, m)
	{
		Monitor *p = &padded[j];

		// monitor left side of root window?
		if (all_struts.left > 0 && !m->x)
		{
			p->x += all_struts.left;
			p->w -= all_struts.left;
		}
		// monitor right side of root window?
		if (all_struts.right > 0 && m->x + m->w == screen_w)
		{
			p->w -= all_struts.right;
		}
		// monitor top side of root window?
		if (all_struts.top > 0 && !m->y)
		{
			p->y += all_struts.top;
			p->h -= all_struts.top;
		}
		// monitor bottom side of root window?
		if (all_struts.bottom > 0 && m->y + m->h == screen_h)
		{
			p->h -= all_struts.bottom;
		}
	}
	memmove(monitors, padded, sizeof(Monitor) * MONITORS);

	// if spot_start is CURRENT, first window needs somewhere to go
	current_spot = SPOT1;
	current_mon  = 0;

	// calculate spot boxes
	for_monitors(i, m)
	{
		int x = m->x, y = m->y, w = m->w, h = m->h;

		// determine spot layout for this monitor
		int spot1_align      = have_layout(i) ? settings.layouts[i].spot1_align      : LEFT ;
		int spot1_width_pct  = have_layout(i) ? settings.layouts[i].spot1_width_pct  : 66;
		int spot2_height_pct = have_layout(i) ? settings.layouts[i].spot2_height_pct : 66;

		// monitor rotated?
		if (m->w < m->h)
		{
			int height_spot1 = (double)h / 100 * MIN(90, MAX(10, spot1_width_pct));
			int width_spot2  = (double)w / 100 * MIN(90, MAX(10, spot2_height_pct));
			for_spots(j)
			{
				m->spots[j].x = x;
				m->spots[j].y = spot1_align == LEFT ? y: y + h - height_spot1;
				m->spots[j].w = w;
				m->spots[j].h = height_spot1;
				if (j == SPOT1) continue;

				m->spots[j].y = spot1_align == LEFT ? y + height_spot1 + GAP: y;
				m->spots[j].h = h - height_spot1 - GAP;
				m->spots[j].w = w - width_spot2 - GAP;
				if (j == SPOT3) continue;

				m->spots[j].x = x + w - width_spot2;
				m->spots[j].w = width_spot2;
			}
			continue;
		}
		// normal wide screen
		int width_spot1  = (double)w / 100 * MIN(90, MAX(10, spot1_width_pct));
		int height_spot2 = (double)h / 100 * MIN(90, MAX(10, spot2_height_pct));
		for_spots(j)
		{
			m->spots[j].x = spot1_align == LEFT ? x: x + w - width_spot1;
			m->spots[j].y = y;
			m->spots[j].w = width_spot1;
			m->spots[j].h = h;
			if (j == SPOT1) continue;

			m->spots[j].x = spot1_align == LEFT ? x + width_spot1 + GAP: x;
			m->spots[j].w = w - width_spot1 - GAP;
			m->spots[j].h = height_spot2;
			if (j == SPOT2) continue;

			m->spots[j].y = y + height_spot2 + GAP;
			m->spots[j].h = h - height_spot2 - GAP;
		}
	}

	// become the window manager
	XSelectInput(display, root, PropertyChangeMask | StructureNotifyMask | SubstructureRedirectMask | SubstructureNotifyMask);

	// ewmh support
	unsigned long pid = getpid();
	ewmh = XCreateSimpleWindow(display, root, 0, 0, 1, 1, 0, 0, 0);

	SETPROP_ATOM(root, atoms[_NET_SUPPORTED],           atoms, ATOMS);
	SETPROP_WIND(root, atoms[_NET_SUPPORTING_WM_CHECK], &ewmh,     1);
	SETPROP_LONG(ewmh, atoms[_NET_WM_PID],              &pid,      1);

	XChangeProperty(display, ewmh, atoms[_NET_WM_NAME], XA_STRING, 8, PropModeReplace, (const unsigned char*)"xoat", 4);

	// figure out NumlockMask
	XModifierKeymap *modmap = XGetModifierMapping(display);
	for (i = 0; i < 8; i++) for (j = 0; j < (int)modmap->max_keypermod; j++)
		if (modmap->modifiermap[i*modmap->max_keypermod+j] == XKeysymToKeycode(display, XK_Num_Lock))
			{ NumlockMask = (1<<i); break; }
	XFreeModifiermap(modmap);

	// process config.h key bindings
	for (i = 0; i < settings.binding_count; i++)
	{
		XGrabKey(display, XKeysymToKeycode(display, settings.bindings[i].key), settings.bindings[i].mod, root, True, GrabModeAsync, GrabModeAsync);
		if (settings.bindings[i].mod == AnyModifier) continue;

		XGrabKey(display, XKeysymToKeycode(display, settings.bindings[i].key), settings.bindings[i].mod|LockMask, root, True, GrabModeAsync, GrabModeAsync);
		XGrabKey(display, XKeysymToKeycode(display, settings.bindings[i].key), settings.bindings[i].mod|NumlockMask, root, True, GrabModeAsync, GrabModeAsync);
		XGrabKey(display, XKeysymToKeycode(display, settings.bindings[i].key), settings.bindings[i].mod|LockMask|NumlockMask, root, True, GrabModeAsync, GrabModeAsync);
	}

	// we grab buttons to do click-to-focus. all clicks get passed through to apps.
	XGrabButton(display, Button1, AnyModifier, root, True, ButtonPressMask, GrabModeSync, GrabModeSync, None, None);
	XGrabButton(display, Button3, AnyModifier, root, True, ButtonPressMask, GrabModeSync, GrabModeSync, None, None);

	// create title bars
	if (settings.title)
	{
		STACK_FREE(&windows);
		for_monitors(i, m) for_spots(j)
		{
			m->bars[j] = textbox_create(root, TB_AUTOHEIGHT|TB_LEFT, m->spots[j].x, m->spots[j].y, m->spots[j].w, 0,
				settings.title, settings.title_blur, settings.border_blur, NULL, NULL);
			XSelectInput(display, m->bars[j]->window, ExposureMask);

			m->spots[j].y += m->bars[j]->h;
			m->spots[j].h -= m->bars[j]->h;
			spot_update_bar(j, i);
		}
	}

	// setup existing managable windows
	STACK_FREE(&windows);
	for_windows(i, c) if (c->manage)
	{
		window_listen(c->window);
		client_update_border(c);
		client_place_spot(c, c->spot, c->monitor, 0);
		if (!current) client_activate(c);
	}

	// auto launch
	if (settings.launchcmd_count)
	{
		for (i = 0; i < settings.launchcmd_count; i++)
			exec_cmd(settings.launchcmds[i]);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x328, %rsp            # imm = 0x328
leaq 0x6afd(%rip), %rdi      # 0x13bb0
xorl %esi, %esi
movl $0xd8, %edx
callq 0x3070
movq 0x6ada(%rip), %rax      # 0x13ba0
movq 0xe8(%rax), %rax
movq 0x6acc(%rip), %rcx      # 0x13ba0
movslq 0xe0(%rcx), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movl %eax, -0x24(%rbp)
movq 0x6ab1(%rip), %rax      # 0x13ba0
movq 0xe8(%rax), %rax
movq 0x6aa3(%rip), %rcx      # 0x13ba0
movslq 0xe0(%rcx), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movl 0x1c(%rax), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
movw %ax, 0x6a99(%rip)       # 0x13bb4
movl -0x28(%rbp), %eax
movw %ax, 0x6a91(%rip)       # 0x13bb6
movq 0x6a74(%rip), %rdi      # 0x13ba0
callq 0x34c0
cmpl $0x0, %eax
je 0xd256
movq 0x6a5f(%rip), %rdi      # 0x13ba0
leaq 0x6618(%rip), %rsi      # 0x13760
callq 0x3040
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
je 0xd256
cmpl $0x3, 0x65fe(%rip)      # 0x13760
jge 0xd172
movl 0x65f6(%rip), %eax      # 0x13760
movl %eax, -0x224(%rbp)
jmp 0xd17f
movl $0x3, %eax
movl %eax, -0x224(%rbp)
jmp 0xd17f
movl -0x224(%rbp), %eax
movl %eax, 0x65d5(%rip)      # 0x13760
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %ecx
xorl %eax, %eax
cmpl 0x65c3(%rip), %ecx      # 0x13760
movb %al, -0x225(%rbp)
jge 0xd1c8
movslq -0xc(%rbp), %rcx
leaq 0x6a00(%rip), %rax      # 0x13bb0
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x225(%rbp)
movb -0x225(%rbp), %al
testb $0x1, %al
jne 0xd1d4
jmp 0xd24d
movq -0x30(%rbp), %rax
movslq -0xc(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movw 0x4(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, (%rax)
movq -0x30(%rbp), %rax
movslq -0xc(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movw 0x6(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x2(%rax)
movq -0x30(%rbp), %rax
movslq -0xc(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movw 0x8(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x4(%rax)
movq -0x30(%rbp), %rax
movslq -0xc(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movw 0xa(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x6(%rax)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xd192
movq -0x30(%rbp), %rdi
callq 0x3050
leaq -0x110(%rbp), %rdi
leaq 0x694c(%rip), %rsi      # 0x13bb0
movl $0xd8, %edx
callq 0x33a0
leaq -0x170(%rbp), %rdi
xorl %esi, %esi
movl $0x60, %edx
callq 0x3070
callq 0x7380
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movswl 0x6af9(%rip), %ecx      # 0x13d90
cmpl %ecx, %eax
jge 0xd4d6
movslq -0xc(%rbp), %rcx
leaq 0x6ae6(%rip), %rax      # 0x13d90
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
je 0xd4c6
leaq -0x1d0(%rbp), %rdi
xorl %esi, %esi
movl $0x60, %edx
callq 0x3070
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movq 0x6a1a(%rip), %rsi      # 0x13cf8
leaq 0x6ebb(%rip), %rdx      # 0x141a0
leaq 0x6ebc(%rip), %rcx      # 0x141a8
leaq -0x1d0(%rbp), %r8
movl $0x60, %r9d
callq 0x6ef0
cmpl $0x0, %eax
je 0xd31b
cmpq $0x6, 0x6e95(%rip)      # 0x141a0
jne 0xd31b
movl 0x6e95(%rip), %eax      # 0x141a8
movl %eax, -0x22c(%rbp)
jmp 0xd325
xorl %eax, %eax
movl %eax, -0x22c(%rbp)
jmp 0xd325
movl -0x22c(%rbp), %eax
movl %eax, -0x1d4(%rbp)
cmpl $0x0, -0x1d4(%rbp)
je 0xd344
xorl %eax, %eax
movl %eax, -0x230(%rbp)
jmp 0xd3a5
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movq 0x699e(%rip), %rsi      # 0x13cf0
leaq 0x6e47(%rip), %rdx      # 0x141a0
leaq 0x6e48(%rip), %rcx      # 0x141a8
leaq -0x1d0(%rbp), %r8
movl $0x20, %r9d
callq 0x6ef0
cmpl $0x0, %eax
je 0xd38f
cmpq $0x6, 0x6e21(%rip)      # 0x141a0
jne 0xd38f
movl 0x6e21(%rip), %eax      # 0x141a8
movl %eax, -0x234(%rbp)
jmp 0xd399
xorl %eax, %eax
movl %eax, -0x234(%rbp)
jmp 0xd399
movl -0x234(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
movl %eax, -0x1d8(%rbp)
movq -0x18(%rbp), %rax
cmpw $0x0, 0x102(%rax)
je 0xd3d1
cmpl $0x0, -0x1d8(%rbp)
jne 0xd3d6
cmpl $0x0, -0x1d4(%rbp)
jne 0xd3d6
jmp 0xd4c8
movq -0x170(%rbp), %rax
cmpq -0x1d0(%rbp), %rax
jle 0xd3f6
movq -0x170(%rbp), %rax
movq %rax, -0x240(%rbp)
jmp 0xd404
movq -0x1d0(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x168(%rbp), %rax
cmpq -0x1c8(%rbp), %rax
jle 0xd432
movq -0x168(%rbp), %rax
movq %rax, -0x248(%rbp)
jmp 0xd440
movq -0x1c8(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x160(%rbp), %rax
cmpq -0x1c0(%rbp), %rax
jle 0xd46e
movq -0x160(%rbp), %rax
movq %rax, -0x250(%rbp)
jmp 0xd47c
movq -0x1c0(%rbp), %rax
movq %rax, -0x250(%rbp)
movq -0x250(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x158(%rbp), %rax
cmpq -0x1b8(%rbp), %rax
jle 0xd4aa
movq -0x158(%rbp), %rax
movq %rax, -0x258(%rbp)
jmp 0xd4b8
movq -0x1b8(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rax
movq %rax, -0x158(%rbp)
jmp 0xd4c8
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xd28d
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %ecx
xorl %eax, %eax
cmpl 0x6278(%rip), %ecx      # 0x13760
movb %al, -0x259(%rbp)
jge 0xd513
movslq -0x10(%rbp), %rcx
leaq 0x66b5(%rip), %rax      # 0x13bb0
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x259(%rbp)
movb -0x259(%rbp), %al
testb $0x1, %al
jne 0xd522
jmp 0xd64f
movslq -0x10(%rbp), %rcx
leaq -0x110(%rbp), %rax
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x1e0(%rbp)
cmpq $0x0, -0x170(%rbp)
jle 0xd581
movq -0x20(%rbp), %rax
cmpw $0x0, (%rax)
jne 0xd581
movq -0x170(%rbp), %rdx
movq -0x1e0(%rbp), %rax
movswq (%rax), %rcx
addq %rdx, %rcx
movw %cx, (%rax)
movq -0x170(%rbp), %rdx
movq -0x1e0(%rbp), %rax
movswq 0x4(%rax), %rcx
subq %rdx, %rcx
movw %cx, 0x4(%rax)
cmpq $0x0, -0x168(%rbp)
jle 0xd5bb
movq -0x20(%rbp), %rax
movswl (%rax), %eax
movq -0x20(%rbp), %rcx
movswl 0x4(%rcx), %ecx
addl %ecx, %eax
cmpl -0x24(%rbp), %eax
jne 0xd5bb
movq -0x168(%rbp), %rdx
movq -0x1e0(%rbp), %rax
movswq 0x4(%rax), %rcx
subq %rdx, %rcx
movw %cx, 0x4(%rax)
cmpq $0x0, -0x160(%rbp)
jle 0xd604
movq -0x20(%rbp), %rax
cmpw $0x0, 0x2(%rax)
jne 0xd604
movq -0x160(%rbp), %rdx
movq -0x1e0(%rbp), %rax
movswq 0x2(%rax), %rcx
addq %rdx, %rcx
movw %cx, 0x2(%rax)
movq -0x160(%rbp), %rdx
movq -0x1e0(%rbp), %rax
movswq 0x6(%rax), %rcx
subq %rdx, %rcx
movw %cx, 0x6(%rax)
cmpq $0x0, -0x158(%rbp)
jle 0xd63f
movq -0x20(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x20(%rbp), %rcx
movswl 0x6(%rcx), %ecx
addl %ecx, %eax
cmpl -0x28(%rbp), %eax
jne 0xd63f
movq -0x158(%rbp), %rdx
movq -0x1e0(%rbp), %rax
movswq 0x6(%rax), %rcx
subq %rdx, %rcx
movw %cx, 0x6(%rax)
jmp 0xd641
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xd4dd
leaq -0x110(%rbp), %rsi
leaq 0x6553(%rip), %rdi      # 0x13bb0
movl $0xd8, %edx
callq 0x33a0
movw $0x1, 0x6bc8(%rip)      # 0x14238
movw $0x0, 0x6bc1(%rip)      # 0x1423a
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %ecx
xorl %eax, %eax
cmpl 0x60d5(%rip), %ecx      # 0x13760
movb %al, -0x25a(%rbp)
jge 0xd6b6
movslq -0xc(%rbp), %rcx
leaq 0x6512(%rip), %rax      # 0x13bb0
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x25a(%rbp)
movb -0x25a(%rbp), %al
testb $0x1, %al
jne 0xd6c5
jmp 0xdd7c
movq -0x20(%rbp), %rax
movswl (%rax), %eax
movl %eax, -0x1e4(%rbp)
movq -0x20(%rbp), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x1e8(%rbp)
movq -0x20(%rbp), %rax
movswl 0x4(%rax), %eax
movl %eax, -0x1ec(%rbp)
movq -0x20(%rbp), %rax
movswl 0x6(%rax), %eax
movl %eax, -0x1f0(%rbp)
movl 0x6afe(%rip), %eax      # 0x14200
cmpl -0xc(%rbp), %eax
jbe 0xd71f
movq 0x6afa(%rip), %rax      # 0x14208
movslq -0xc(%rbp), %rcx
movswl 0x2(%rax,%rcx,8), %eax
movl %eax, -0x260(%rbp)
jmp 0xd72c
movl $0x1, %eax
movl %eax, -0x260(%rbp)
jmp 0xd72c
movl -0x260(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movl 0x6ac2(%rip), %eax      # 0x14200
cmpl -0xc(%rbp), %eax
jbe 0xd75b
movq 0x6abe(%rip), %rax      # 0x14208
movslq -0xc(%rbp), %rcx
movswl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x264(%rbp)
jmp 0xd768
movl $0x42, %eax
movl %eax, -0x264(%rbp)
jmp 0xd768
movl -0x264(%rbp), %eax
movl %eax, -0x1f8(%rbp)
movl 0x6a86(%rip), %eax      # 0x14200
cmpl -0xc(%rbp), %eax
jbe 0xd797
movq 0x6a82(%rip), %rax      # 0x14208
movslq -0xc(%rbp), %rcx
movswl 0x6(%rax,%rcx,8), %eax
movl %eax, -0x268(%rbp)
jmp 0xd7a4
movl $0x42, %eax
movl %eax, -0x268(%rbp)
jmp 0xd7a4
movl -0x268(%rbp), %eax
movl %eax, -0x1fc(%rbp)
movq -0x20(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x20(%rbp), %rcx
movswl 0x6(%rcx), %ecx
cmpl %ecx, %eax
jge 0xda9e
cvtsi2sdl -0x1f0(%rbp), %xmm0
movsd 0x1830(%rip), %xmm1     # 0xf008
divsd %xmm1, %xmm0
movsd %xmm0, -0x270(%rbp)
movl $0xa, %eax
cmpl -0x1f8(%rbp), %eax
jle 0xd7fe
movl $0xa, %eax
movl %eax, -0x274(%rbp)
jmp 0xd80a
movl -0x1f8(%rbp), %eax
movl %eax, -0x274(%rbp)
movl -0x274(%rbp), %ecx
movl $0x5a, %eax
cmpl %ecx, %eax
jge 0xd826
movl $0x5a, %eax
movl %eax, -0x278(%rbp)
jmp 0xd858
movl $0xa, %eax
cmpl -0x1f8(%rbp), %eax
jle 0xd840
movl $0xa, %eax
movl %eax, -0x27c(%rbp)
jmp 0xd84c
movl -0x1f8(%rbp), %eax
movl %eax, -0x27c(%rbp)
movl -0x27c(%rbp), %eax
movl %eax, -0x278(%rbp)
movsd -0x270(%rbp), %xmm0
movl -0x278(%rbp), %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x200(%rbp)
cvtsi2sdl -0x1ec(%rbp), %xmm0
movsd 0x1780(%rip), %xmm1     # 0xf008
divsd %xmm1, %xmm0
movsd %xmm0, -0x288(%rbp)
movl $0xa, %eax
cmpl -0x1fc(%rbp), %eax
jle 0xd8ae
movl $0xa, %eax
movl %eax, -0x28c(%rbp)
jmp 0xd8ba
movl -0x1fc(%rbp), %eax
movl %eax, -0x28c(%rbp)
movl -0x28c(%rbp), %ecx
movl $0x5a, %eax
cmpl %ecx, %eax
jge 0xd8d6
movl $0x5a, %eax
movl %eax, -0x290(%rbp)
jmp 0xd908
movl $0xa, %eax
cmpl -0x1fc(%rbp), %eax
jle 0xd8f0
movl $0xa, %eax
movl %eax, -0x294(%rbp)
jmp 0xd8fc
movl -0x1fc(%rbp), %eax
movl %eax, -0x294(%rbp)
movl -0x294(%rbp), %eax
movl %eax, -0x290(%rbp)
movsd -0x288(%rbp), %xmm0
movl -0x290(%rbp), %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x204(%rbp)
movl $0x1, -0x10(%rbp)
cmpl $0x3, -0x10(%rbp)
jg 0xda99
movl -0x1e4(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0x8(%rax,%rcx,8)
cmpl $0x1, -0x1f4(%rbp)
jne 0xd966
movl -0x1e8(%rbp), %eax
movl %eax, -0x298(%rbp)
jmp 0xd97e
movl -0x1e8(%rbp), %eax
addl -0x1f0(%rbp), %eax
subl -0x200(%rbp), %eax
movl %eax, -0x298(%rbp)
movl -0x298(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xa(%rax,%rcx,8)
movl -0x1ec(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xc(%rax,%rcx,8)
movl -0x200(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xe(%rax,%rcx,8)
cmpl $0x1, -0x10(%rbp)
jne 0xd9cb
jmp 0xda8b
cmpl $0x1, -0x1f4(%rbp)
jne 0xd9eb
movl -0x1e8(%rbp), %eax
addl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x29c(%rbp)
jmp 0xd9f7
movl -0x1e8(%rbp), %eax
movl %eax, -0x29c(%rbp)
movl -0x29c(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xa(%rax,%rcx,8)
movl -0x1f0(%rbp), %eax
subl -0x200(%rbp), %eax
subl $0x1, %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xe(%rax,%rcx,8)
movl -0x1ec(%rbp), %eax
subl -0x204(%rbp), %eax
subl $0x1, %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xc(%rax,%rcx,8)
cmpl $0x3, -0x10(%rbp)
jne 0xda53
jmp 0xda8b
movl -0x1e4(%rbp), %eax
addl -0x1ec(%rbp), %eax
subl -0x204(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0x8(%rax,%rcx,8)
movl -0x204(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xc(%rax,%rcx,8)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xd92f
jmp 0xdd6e
cvtsi2sdl -0x1ec(%rbp), %xmm0
movsd 0x155a(%rip), %xmm1     # 0xf008
divsd %xmm1, %xmm0
movsd %xmm0, -0x2a8(%rbp)
movl $0xa, %eax
cmpl -0x1f8(%rbp), %eax
jle 0xdad4
movl $0xa, %eax
movl %eax, -0x2ac(%rbp)
jmp 0xdae0
movl -0x1f8(%rbp), %eax
movl %eax, -0x2ac(%rbp)
movl -0x2ac(%rbp), %ecx
movl $0x5a, %eax
cmpl %ecx, %eax
jge 0xdafc
movl $0x5a, %eax
movl %eax, -0x2b0(%rbp)
jmp 0xdb2e
movl $0xa, %eax
cmpl -0x1f8(%rbp), %eax
jle 0xdb16
movl $0xa, %eax
movl %eax, -0x2b4(%rbp)
jmp 0xdb22
movl -0x1f8(%rbp), %eax
movl %eax, -0x2b4(%rbp)
movl -0x2b4(%rbp), %eax
movl %eax, -0x2b0(%rbp)
movsd -0x2a8(%rbp), %xmm0
movl -0x2b0(%rbp), %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x208(%rbp)
cvtsi2sdl -0x1f0(%rbp), %xmm0
movsd 0x14aa(%rip), %xmm1     # 0xf008
divsd %xmm1, %xmm0
movsd %xmm0, -0x2c0(%rbp)
movl $0xa, %eax
cmpl -0x1fc(%rbp), %eax
jle 0xdb84
movl $0xa, %eax
movl %eax, -0x2c4(%rbp)
jmp 0xdb90
movl -0x1fc(%rbp), %eax
movl %eax, -0x2c4(%rbp)
movl -0x2c4(%rbp), %ecx
movl $0x5a, %eax
cmpl %ecx, %eax
jge 0xdbac
movl $0x5a, %eax
movl %eax, -0x2c8(%rbp)
jmp 0xdbde
movl $0xa, %eax
cmpl -0x1fc(%rbp), %eax
jle 0xdbc6
movl $0xa, %eax
movl %eax, -0x2cc(%rbp)
jmp 0xdbd2
movl -0x1fc(%rbp), %eax
movl %eax, -0x2cc(%rbp)
movl -0x2cc(%rbp), %eax
movl %eax, -0x2c8(%rbp)
movsd -0x2c0(%rbp), %xmm0
movl -0x2c8(%rbp), %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x20c(%rbp)
movl $0x1, -0x10(%rbp)
cmpl $0x3, -0x10(%rbp)
jg 0xdd6c
cmpl $0x1, -0x1f4(%rbp)
jne 0xdc26
movl -0x1e4(%rbp), %eax
movl %eax, -0x2d0(%rbp)
jmp 0xdc3e
movl -0x1e4(%rbp), %eax
addl -0x1ec(%rbp), %eax
subl -0x208(%rbp), %eax
movl %eax, -0x2d0(%rbp)
movl -0x2d0(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0x8(%rax,%rcx,8)
movl -0x1e8(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xa(%rax,%rcx,8)
movl -0x208(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xc(%rax,%rcx,8)
movl -0x1f0(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xe(%rax,%rcx,8)
cmpl $0x1, -0x10(%rbp)
jne 0xdca1
jmp 0xdd5e
cmpl $0x1, -0x1f4(%rbp)
jne 0xdcc1
movl -0x1e4(%rbp), %eax
addl -0x208(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2d4(%rbp)
jmp 0xdccd
movl -0x1e4(%rbp), %eax
movl %eax, -0x2d4(%rbp)
movl -0x2d4(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0x8(%rax,%rcx,8)
movl -0x1ec(%rbp), %eax
subl -0x208(%rbp), %eax
subl $0x1, %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xc(%rax,%rcx,8)
movl -0x20c(%rbp), %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xe(%rax,%rcx,8)
cmpl $0x2, -0x10(%rbp)
jne 0xdd20
jmp 0xdd5e
movl -0x1e8(%rbp), %eax
addl -0x20c(%rbp), %eax
addl $0x1, %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xa(%rax,%rcx,8)
movl -0x1f0(%rbp), %eax
subl -0x20c(%rbp), %eax
subl $0x1, %eax
movw %ax, %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw %dx, 0xe(%rax,%rcx,8)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xdc05
jmp 0xdd6e
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xd680
movq 0x5e1d(%rip), %rdi      # 0x13ba0
movq 0x640e(%rip), %rsi      # 0x14198
movl $0x5a0000, %edx         # imm = 0x5A0000
callq 0x33e0
callq 0x31f0
cltq
movq %rax, -0x218(%rbp)
movq 0x5df7(%rip), %rdi      # 0x13ba0
movq 0x63e8(%rip), %rsi      # 0x14198
xorl %ecx, %ecx
movl $0x1, %r9d
xorl %eax, %eax
movl %ecx, %edx
movl %r9d, %r8d
movl $0x0, (%rsp)
movq $0x0, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
callq 0x31e0
movq %rax, 0x6464(%rip)      # 0x14248
movq 0x5db5(%rip), %rdi      # 0x13ba0
movq 0x63a6(%rip), %rsi      # 0x14198
movq 0x5eb7(%rip), %rdx      # 0x13cb0
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
leaq 0x5e82(%rip), %rax      # 0x13c90
movq %rax, (%rsp)
movl $0x1f, 0x8(%rsp)
callq 0x35d0
movq 0x5d7a(%rip), %rdi      # 0x13ba0
movq 0x636b(%rip), %rsi      # 0x14198
movq 0x5ea4(%rip), %rdx      # 0x13cd8
movl $0x21, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
leaq 0x63ff(%rip), %rax      # 0x14248
movq %rax, (%rsp)
movl $0x1, 0x8(%rsp)
callq 0x35d0
movq 0x5d3f(%rip), %rdi      # 0x13ba0
movq 0x63e0(%rip), %rsi      # 0x14248
movq 0x5e79(%rip), %rdx      # 0x13ce8
movl $0x6, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
leaq -0x218(%rbp), %rax
movq %rax, (%rsp)
movl $0x1, 0x8(%rsp)
callq 0x35d0
movq 0x5d04(%rip), %rdi      # 0x13ba0
movq 0x63a5(%rip), %rsi      # 0x14248
movq 0x5e36(%rip), %rdx      # 0x13ce0
movl $0x1f, %ecx
movl $0x8, %r8d
xorl %r9d, %r9d
leaq 0x1b73(%rip), %rax      # 0xfa32
movq %rax, (%rsp)
movl $0x4, 0x8(%rsp)
callq 0x35d0
movq 0x5cc9(%rip), %rdi      # 0x13ba0
callq 0x3530
movq %rax, -0x220(%rbp)
movl $0x0, -0xc(%rbp)
cmpl $0x8, -0xc(%rbp)
jge 0xdf80
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x220(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xdf70
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rax
movl -0xc(%rbp), %ecx
movq -0x220(%rbp), %rdx
imull (%rdx), %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x2d8(%rbp)
movq 0x5c68(%rip), %rdi      # 0x13ba0
movl $0xff7f, %esi           # imm = 0xFF7F
callq 0x3590
movb %al, %cl
movl -0x2d8(%rbp), %eax
movzbl %cl, %ecx
cmpl %ecx, %eax
jne 0xdf63
movl -0xc(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, 0x62db(%rip)      # 0x1423c
jmp 0xdf70
jmp 0xdf65
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xdefb
jmp 0xdf72
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xdeea
movq -0x220(%rbp), %rdi
callq 0x3130
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl 0x6274(%rip), %eax      # 0x14210
jae 0xe189
movq 0x5bf7(%rip), %rax      # 0x13ba0
movq %rax, -0x2e0(%rbp)
movq 0x5be9(%rip), %rdi      # 0x13ba0
movq 0x625a(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0x3590
movq -0x2e0(%rbp), %rdi
movzbl %al, %esi
movq 0x6235(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edx
movq 0x61a1(%rip), %rcx      # 0x14198
movl $0x1, %r9d
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x35e0
movq 0x6205(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x8000, (%rax)         # imm = 0x8000
jne 0xe02b
jmp 0xe17b
movq 0x5b6e(%rip), %rax      # 0x13ba0
movq %rax, -0x2f8(%rbp)
movq 0x5b60(%rip), %rdi      # 0x13ba0
movq 0x61d1(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0x3590
movq -0x2f8(%rbp), %rdi
movzbl %al, %esi
movq 0x61ac(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edx
orl $0x2, %edx
movq 0x6115(%rip), %rcx      # 0x14198
movl $0x1, %r9d
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x35e0
movq 0x5b01(%rip), %rax      # 0x13ba0
movq %rax, -0x2f0(%rbp)
movq 0x5af3(%rip), %rdi      # 0x13ba0
movq 0x6164(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0x3590
movq -0x2f0(%rbp), %rdi
movzbl %al, %esi
movq 0x613f(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edx
orl 0x6150(%rip), %edx      # 0x1423c
movq 0x60a5(%rip), %rcx      # 0x14198
movl $0x1, %r9d
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x35e0
movq 0x5a91(%rip), %rax      # 0x13ba0
movq %rax, -0x2e8(%rbp)
movq 0x5a83(%rip), %rdi      # 0x13ba0
movq 0x60f4(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0x3590
movq -0x2e8(%rbp), %rdi
movzbl %al, %esi
movq 0x60cf(%rip), %rax      # 0x14218
movslq -0xc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edx
orl $0x2, %edx
orl 0x60dd(%rip), %edx      # 0x1423c
movq 0x6032(%rip), %rcx      # 0x14198
movl $0x1, %r9d
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x35e0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xdf93
movq 0x5a10(%rip), %rdi      # 0x13ba0
movq 0x6001(%rip), %rcx      # 0x14198
movl $0x1, %r8d
movl $0x8000, %edx           # imm = 0x8000
movl $0x4, %r9d
xorl %eax, %eax
xorl %eax, %eax
movl %r8d, %esi
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
callq 0x35b0
movq 0x59c4(%rip), %rdi      # 0x13ba0
movq 0x5fb5(%rip), %rcx      # 0x14198
movl $0x3, %esi
movl $0x8000, %edx           # imm = 0x8000
movl $0x1, %r8d
movl $0x4, %r9d
xorl %eax, %eax
xorl %eax, %eax
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
callq 0x35b0
cmpq $0x0, 0x5fad(%rip)      # 0x141d8
je 0xe3e7
jmp 0xe233
cmpw $0x0, 0x5b55(%rip)      # 0x13d90
je 0xe266
movw 0x5b4c(%rip), %ax       # 0x13d90
addw $-0x1, %ax
movw %ax, 0x5b41(%rip)       # 0x13d90
movswq %ax, %rcx
leaq 0x5b36(%rip), %rax      # 0x13d90
movq 0x8(%rax,%rcx,8), %rdi
callq 0x86e0
jmp 0xe233
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %ecx
xorl %eax, %eax
cmpl 0x54e8(%rip), %ecx      # 0x13760
movb %al, -0x2f9(%rbp)
jge 0xe2a3
movslq -0xc(%rbp), %rcx
leaq 0x5925(%rip), %rax      # 0x13bb0
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x2f9(%rbp)
movb -0x2f9(%rbp), %al
testb $0x1, %al
jne 0xe2b2
jmp 0xe3e5
movl $0x1, -0x10(%rbp)
cmpl $0x3, -0x10(%rbp)
jg 0xe3d5
movq 0x5ece(%rip), %rdi      # 0x14198
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw 0x8(%rax,%rcx,8), %dx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movw 0xa(%rax,%rcx,8), %cx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rsi
movw 0xc(%rax,%rsi,8), %r8w
movq 0x5edf(%rip), %r11      # 0x141d8
movq 0x5ee0(%rip), %r10      # 0x141e0
movq 0x5eb1(%rip), %rax      # 0x141b8
movl $0x10001, %esi          # imm = 0x10001
xorl %r9d, %r9d
xorl %ebx, %ebx
movswl %dx, %edx
movswl %cx, %ecx
movswl %r8w, %r8d
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x20(%rsp)
callq 0x3c30
movq %rax, %rdx
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movq %rdx, 0x28(%rax,%rcx,8)
movq 0x5849(%rip), %rdi      # 0x13ba0
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movq 0x28(%rax,%rcx,8), %rax
movq 0x8(%rax), %rsi
movl $0x8000, %edx           # imm = 0x8000
callq 0x33e0
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movq 0x28(%rax,%rcx,8), %rax
movswl 0x1e(%rax), %esi
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movswl 0xa(%rax,%rcx,8), %edx
addl %esi, %edx
movw %dx, 0xa(%rax,%rcx,8)
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movq 0x28(%rax,%rcx,8), %rax
movswl 0x1e(%rax), %esi
movq -0x20(%rbp), %rax
movslq -0x10(%rbp), %rcx
movswl 0xe(%rax,%rcx,8), %edx
subl %esi, %edx
movw %dx, 0xe(%rax,%rcx,8)
movl -0x10(%rbp), %edi
movl -0xc(%rbp), %esi
callq 0xa280
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xe2b9
jmp 0xe3d7
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xe26d
jmp 0xe3e7
jmp 0xe3e9
cmpw $0x0, 0x599f(%rip)      # 0x13d90
je 0xe41c
movw 0x5996(%rip), %ax       # 0x13d90
addw $-0x1, %ax
movw %ax, 0x598b(%rip)       # 0x13d90
movswq %ax, %rcx
leaq 0x5980(%rip), %rax      # 0x13d90
movq 0x8(%rax,%rcx,8), %rdi
callq 0x86e0
jmp 0xe3e9
callq 0x7380
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movswl 0x595e(%rip), %ecx      # 0x13d90
cmpl %ecx, %eax
jge 0xe4c1
movslq -0xc(%rbp), %rcx
leaq 0x594b(%rip), %rax      # 0x13d90
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
je 0xe4b1
movq -0x18(%rbp), %rax
cmpw $0x0, 0x104(%rax)
je 0xe4af
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x7350
movq -0x18(%rbp), %rdi
callq 0x8a30
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x118(%rax), %rax
movl %eax, %esi
movq -0x18(%rbp), %rax
movswl 0x100(%rax), %edx
xorl %ecx, %ecx
callq 0x8c50
cmpq $0x0, 0x5706(%rip)      # 0x13ba8
jne 0xe4ad
movq -0x18(%rbp), %rdi
callq 0x9b80
jmp 0xe4af
jmp 0xe4b1
jmp 0xe4b3
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xe428
cmpl $0x0, 0x5d58(%rip)      # 0x14220
je 0xe4fd
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl 0x5d46(%rip), %eax      # 0x14220
jae 0xe4fb
movq 0x5d45(%rip), %rax      # 0x14228
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x63d0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xe4d1
jmp 0xe4fd
addq $0x328, %rsp            # imm = 0x328
popq %rbx
popq %rbp
retq
nopw (%rax,%rax)