// File: /workspace/github_c_makefile_star2_O0/seanpringle[P]xoat/./client.c
// Function: window_build_client
Client* window_build_client(Window win)
{
	int i, j; XClassHint chint; XWMHints *hints; Monitor *m;
	if (win == None) return NULL;

	Client *c = calloc(1, sizeof(Client));
	c->window = win;

	if (XGetWindowAttributes(display, c->window, &c->attr))
	{
		c->visible = c->attr.map_state == IsViewable ? 1:0;
		if (!GETPROP_ATOM(win, atoms[_NET_WM_WINDOW_TYPE], &c->type, 1)) c->type = 0;

		c->manage = !c->attr.override_redirect
			&& c->type != atoms[_NET_WM_WINDOW_TYPE_DESKTOP]
			&& c->type != atoms[_NET_WM_WINDOW_TYPE_NOTIFICATION]
			&& c->type != atoms[_NET_WM_WINDOW_TYPE_DOCK]
			&& c->type != atoms[_NET_WM_WINDOW_TYPE_SPLASH]
			? 1:0;

		// detect our own title bars
		if (settings.title)
			for_monitors(i, m) for_spots(j)
				if (m->bars[j] && m->bars[j]->window == c->window)
					{ c->ours = 1; c->bar = 1; c->manage = 0; break; }

		// detect our own menus
		if (menu && menu->mb && menu->mb->window == c->window)
			{ c->ours = 1; c->menu = 1; c->manage = 0; }

		if (c->manage)
		{
			XGetTransientForHint(display, c->window, &c->transient);
			if (!GETPROP_WIND(win, atoms[WM_CLIENT_LEADER], &c->leader, 1)) c->leader = None;
			c->spot = SPOT1; m = &monitors[0];

			for_monitors(i, m)
				if (INTERSECT(m->x, m->y, m->w, m->h, c->attr.x + c->attr.width/2, c->attr.y+c->attr.height/2, 1, 1))
					{ c->monitor = i; break; }

			int intersect_1 = INTERSECT(c->attr.x, c->attr.y, c->attr.width, c->attr.height,
				m->spots[SPOT1].x + m->spots[SPOT1].w/2, m->spots[SPOT1].y + m->spots[SPOT1].h/2, 1, 1);

			int intersect_2 = INTERSECT(c->attr.x, c->attr.y, c->attr.width, c->attr.height,
				m->spots[SPOT2].x + m->spots[SPOT2].w/2, m->spots[SPOT2].y + m->spots[SPOT2].h/2, 1, 1);

			int intersect_3 = INTERSECT(c->attr.x, c->attr.y, c->attr.width, c->attr.height,
				m->spots[SPOT3].x + m->spots[SPOT3].w/2, m->spots[SPOT3].y + m->spots[SPOT3].h/2, 1, 1);

			     if (intersect_3) c->spot = SPOT3;
			else if (intersect_2) c->spot = SPOT2;
			else if (intersect_1) c->spot = SPOT1;

			if (c->visible)
			{
				if (!GETPROP_ATOM(c->window, atoms[_NET_WM_STATE], c->states, ATOMLIST))
					memset(c->states, 0, sizeof(Atom) * ATOMLIST);

				c->urgent = client_has_state(c, atoms[_NET_WM_STATE_DEMANDS_ATTENTION]);
				c->full   = client_has_state(c, atoms[_NET_WM_STATE_FULLSCREEN]);
				c->maxv   = client_has_state(c, atoms[_NET_WM_STATE_MAXIMIZE_VERT]);
				c->maxh   = client_has_state(c, atoms[_NET_WM_STATE_MAXIMIZE_HORZ]);
				c->above  = client_has_state(c, atoms[_NET_WM_STATE_ABOVE]);

				GETPROP_LONG(win, atoms[XOAT_MAXIMIZE], &c->max, 1);

				// proper spot detection based on toggled atoms.
				// XOAT_MAXIMIZE may apply to spot1 windows. Detect...
				if (c->max && intersect_1)
				{
					c->spot = SPOT1;
				}
				else
				// _NET_WM_STATE_MAXIMIZE_VERT may apply to spot2 windows. Detect...
				if (c->maxv && c->type != atoms[_NET_WM_WINDOW_TYPE_DIALOG]
					&& !intersect_1 && intersect_2)
				{
					c->spot = SPOT2;
				}
				else
				// _NET_WM_STATE_MAXIMIZE_HORZ may apply to spot3 windows with c->max. Detect...
				if (c->maxh && c->type != atoms[_NET_WM_WINDOW_TYPE_DIALOG]
					&& !intersect_1 && !intersect_2 && intersect_3)
				{
					c->spot = SPOT3;
				}
				if ((hints = XGetWMHints(display, c->window)))
				{
					c->input  = hints->flags & InputHint && hints->input ? 1:0;
					c->urgent = c->urgent || hints->flags & XUrgencyHint ? 1:0;
					XFree(hints);
				}
				if (XGetClassHint(display, c->window, &chint))
				{
					c->class = strdup(chint.res_class);
					XFree(chint.res_class); XFree(chint.res_name);
				}
			}
		}
		return c;
	}
	free(c);
	return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x74c3
movq $0x0, -0x8(%rbp)
jmp 0x86c9
movl $0x1, %edi
movl $0x130, %esi            # imm = 0x130
callq 0x3500
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movq 0xc6b8(%rip), %rdi      # 0x13ba0
movq -0x40(%rbp), %rax
movq (%rax), %rsi
movq -0x40(%rbp), %rdx
addq $0x8, %rdx
callq 0x35c0
cmpl $0x0, %eax
je 0x86b8
movq -0x40(%rbp), %rax
movl 0x64(%rax), %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x2, %edx
cmovel %ecx, %eax
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x102(%rax)
movq -0x10(%rbp), %rdi
movq 0xc7ce(%rip), %rsi      # 0x13d00
movq -0x40(%rbp), %r8
addq $0xa0, %r8
leaq 0xcc5c(%rip), %rdx      # 0x141a0
leaq 0xcc5d(%rip), %rcx      # 0x141a8
movl $0x8, %r9d
callq 0x6ef0
cmpl $0x0, %eax
je 0x7570
cmpq $0x4, 0xcc3d(%rip)      # 0x141a0
jne 0x7570
cmpl $0x0, 0xcc3c(%rip)      # 0x141a8
jne 0x7587
jmp 0x7578
xorl %eax, %eax
testb $0x1, %al
jne 0x7587
jmp 0x7578
movq -0x40(%rbp), %rax
movq $0x0, 0xa0(%rax)
movq -0x40(%rbp), %rcx
xorl %eax, %eax
cmpl $0x0, 0x80(%rcx)
movb %al, -0x4d(%rbp)
jne 0x75fc
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rcx
xorl %eax, %eax
cmpq 0xc75b(%rip), %rcx      # 0x13d08
movb %al, -0x4d(%rbp)
je 0x75fc
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rcx
xorl %eax, %eax
cmpq 0xc75a(%rip), %rcx      # 0x13d20
movb %al, -0x4d(%rbp)
je 0x75fc
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rcx
xorl %eax, %eax
cmpq 0xc731(%rip), %rcx      # 0x13d10
movb %al, -0x4d(%rbp)
je 0x75fc
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rax
cmpq 0xc722(%rip), %rax      # 0x13d18
setne %al
movb %al, -0x4d(%rbp)
movb -0x4d(%rbp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x104(%rax)
cmpq $0x0, 0xcbb6(%rip)      # 0x141d8
je 0x76e7
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %ecx
xorl %eax, %eax
cmpl 0xc126(%rip), %ecx      # 0x13760
movb %al, -0x4e(%rbp)
jge 0x765f
movslq -0x14(%rbp), %rcx
leaq 0xc566(%rip), %rax      # 0x13bb0
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x4e(%rbp)
movb -0x4e(%rbp), %al
testb $0x1, %al
jne 0x7668
jmp 0x76e5
movl $0x1, -0x18(%rbp)
cmpl $0x3, -0x18(%rbp)
jg 0x76d5
movq -0x38(%rbp), %rax
movslq -0x18(%rbp), %rcx
cmpq $0x0, 0x28(%rax,%rcx,8)
je 0x76c8
movq -0x38(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq 0x28(%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
cmpq (%rcx), %rax
jne 0x76c8
movq -0x40(%rbp), %rax
movw $0x1, 0x10c(%rax)
movq -0x40(%rbp), %rax
movw $0x1, 0x112(%rax)
movq -0x40(%rbp), %rax
movw $0x0, 0x104(%rax)
jmp 0x76d5
jmp 0x76ca
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x766f
jmp 0x76d7
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x762f
jmp 0x76e7
cmpq $0x0, 0xcb41(%rip)      # 0x14230
je 0x7744
movq 0xcb38(%rip), %rax      # 0x14230
cmpq $0x0, 0x648(%rax)
je 0x7744
movq 0xcb27(%rip), %rax      # 0x14230
movq 0x648(%rax), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
cmpq (%rcx), %rax
jne 0x7744
movq -0x40(%rbp), %rax
movw $0x1, 0x10c(%rax)
movq -0x40(%rbp), %rax
movw $0x1, 0x114(%rax)
movq -0x40(%rbp), %rax
movw $0x0, 0x104(%rax)
movq -0x40(%rbp), %rax
cmpw $0x0, 0x104(%rax)
je 0x86ae
movq 0xc443(%rip), %rdi      # 0x13ba0
movq -0x40(%rbp), %rax
movq (%rax), %rsi
movq -0x40(%rbp), %rdx
addq $0x90, %rdx
callq 0x3620
movq -0x10(%rbp), %rdi
movq 0xc5f1(%rip), %rsi      # 0x13d70
movq -0x40(%rbp), %r8
addq $0x98, %r8
leaq 0xca0f(%rip), %rdx      # 0x141a0
leaq 0xca10(%rip), %rcx      # 0x141a8
movl $0x8, %r9d
callq 0x6ef0
cmpl $0x0, %eax
je 0x77bd
cmpq $0x21, 0xc9f0(%rip)     # 0x141a0
jne 0x77bd
cmpl $0x0, 0xc9ef(%rip)      # 0x141a8
jne 0x77d4
jmp 0x77c5
xorl %eax, %eax
testb $0x1, %al
jne 0x77d4
jmp 0x77c5
movq -0x40(%rbp), %rax
movq $0x0, 0x98(%rax)
movq -0x40(%rbp), %rax
movq $0x1, 0x118(%rax)
leaq 0xc3c6(%rip), %rax      # 0x13bb0
movq %rax, -0x38(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %ecx
xorl %eax, %eax
cmpl 0xbf60(%rip), %ecx      # 0x13760
movb %al, -0x4f(%rbp)
jge 0x7825
movslq -0x14(%rbp), %rcx
leaq 0xc3a0(%rip), %rax      # 0x13bb0
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x4f(%rbp)
movb -0x4f(%rbp), %al
testb $0x1, %al
jne 0x7831
jmp 0x7ab2
movq -0x38(%rbp), %rax
movswl (%rax), %eax
movl %eax, -0x54(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x40(%rbp), %rax
movl 0x10(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x54(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x786d
movq -0x38(%rbp), %rax
movswl 0x4(%rax), %eax
cmpl $0x1, %eax
je 0x7952
movq -0x38(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x4(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x40(%rbp), %rax
movl 0x10(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x58(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x78bb
movq -0x38(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x4(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x5c(%rbp)
jmp 0x78e1
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x60(%rbp)
movq -0x40(%rbp), %rax
movl 0x10(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x60(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x68(%rbp)
movq -0x38(%rbp), %rax
movswl (%rax), %eax
movl %eax, -0x64(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x40(%rbp), %rax
movl 0x10(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x64(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x791e
movq -0x38(%rbp), %rax
movswl (%rax), %eax
movl %eax, -0x6c(%rbp)
jmp 0x7941
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x70(%rbp)
movq -0x40(%rbp), %rax
movl 0x10(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x70(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x6c(%rbp)
movl -0x68(%rbp), %eax
movl -0x6c(%rbp), %ecx
subl %ecx, %eax
cmpl $0x0, %eax
jle 0x7aa2
movq -0x38(%rbp), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x74(%rbp)
movq -0x40(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x40(%rbp), %rax
movl 0x14(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x74(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x798f
movq -0x38(%rbp), %rax
movswl 0x6(%rax), %eax
cmpl $0x1, %eax
je 0x7a8f
movq -0x38(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x6(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x78(%rbp)
movq -0x40(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x40(%rbp), %rax
movl 0x14(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x78(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x79df
movq -0x38(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x6(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x7c(%rbp)
jmp 0x7a05
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x80(%rbp)
movq -0x40(%rbp), %rax
movl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x80(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
movl %eax, -0x88(%rbp)
movq -0x38(%rbp), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x84(%rbp)
movq -0x40(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x40(%rbp), %rax
movl 0x14(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x84(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x7a50
movq -0x38(%rbp), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x8c(%rbp)
jmp 0x7a7c
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x90(%rbp)
movq -0x40(%rbp), %rax
movl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x90(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x8c(%rbp)
movl -0x88(%rbp), %eax
movl -0x8c(%rbp), %ecx
subl %ecx, %eax
cmpl $0x0, %eax
jle 0x7aa2
movl -0x14(%rbp), %eax
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x100(%rax)
jmp 0x7ab2
jmp 0x7aa4
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x77f5
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x94(%rbp)
movq -0x38(%rbp), %rax
movswl 0x10(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x14(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x94(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x7af3
movq -0x40(%rbp), %rax
cmpl $0x1, 0x10(%rax)
je 0x7c12
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x10(%rcx), %eax
movl %eax, -0x98(%rbp)
movq -0x38(%rbp), %rax
movswl 0x10(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x14(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x98(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x7b46
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x10(%rcx), %eax
movl %eax, -0x9c(%rbp)
jmp 0x7b77
movq -0x38(%rbp), %rax
movswl 0x10(%rax), %eax
movl %eax, -0xa0(%rbp)
movq -0x38(%rbp), %rax
movswl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xa0(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x9c(%rbp)
movl -0x9c(%rbp), %eax
movl %eax, -0xa8(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0xa4(%rbp)
movq -0x38(%rbp), %rax
movswl 0x10(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x14(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0xa4(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x7bc5
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0xac(%rbp)
jmp 0x7bf3
movq -0x38(%rbp), %rax
movswl 0x10(%rax), %eax
movl %eax, -0xb0(%rbp)
movq -0x38(%rbp), %rax
movswl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xb0(%rbp), %eax
addl %ecx, %eax
movl %eax, -0xac(%rbp)
movl -0xa8(%rbp), %ecx
movl -0xac(%rbp), %eax
subl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xb1(%rbp)
jle 0x7d81
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0xb8(%rbp)
movq -0x38(%rbp), %rax
movswl 0x12(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x16(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0xb8(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x7c5b
movq -0x40(%rbp), %rcx
movb $0x1, %al
cmpl $0x1, 0x14(%rcx)
movb %al, -0xb9(%rbp)
je 0x7d75
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x14(%rcx), %eax
movl %eax, -0xc0(%rbp)
movq -0x38(%rbp), %rax
movswl 0x12(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x16(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0xc0(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x7cae
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x14(%rcx), %eax
movl %eax, -0xc4(%rbp)
jmp 0x7cdf
movq -0x38(%rbp), %rax
movswl 0x12(%rax), %eax
movl %eax, -0xc8(%rbp)
movq -0x38(%rbp), %rax
movswl 0x16(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xc8(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0xc4(%rbp)
movl -0xc4(%rbp), %eax
movl %eax, -0xd0(%rbp)
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0xcc(%rbp)
movq -0x38(%rbp), %rax
movswl 0x12(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x16(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0xcc(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x7d2d
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0xd4(%rbp)
jmp 0x7d5b
movq -0x38(%rbp), %rax
movswl 0x12(%rax), %eax
movl %eax, -0xd8(%rbp)
movq -0x38(%rbp), %rax
movswl 0x16(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xd8(%rbp), %eax
addl %ecx, %eax
movl %eax, -0xd4(%rbp)
movl -0xd0(%rbp), %eax
movl -0xd4(%rbp), %ecx
subl %ecx, %eax
cmpl $0x0, %eax
setg %al
movb %al, -0xb9(%rbp)
movb -0xb9(%rbp), %al
movb %al, -0xb1(%rbp)
movb -0xb1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x44(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0xdc(%rbp)
movq -0x38(%rbp), %rax
movswl 0x18(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x1c(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0xdc(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x7dd0
movq -0x40(%rbp), %rax
cmpl $0x1, 0x10(%rax)
je 0x7eef
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x10(%rcx), %eax
movl %eax, -0xe0(%rbp)
movq -0x38(%rbp), %rax
movswl 0x18(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x1c(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0xe0(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x7e23
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x10(%rcx), %eax
movl %eax, -0xe4(%rbp)
jmp 0x7e54
movq -0x38(%rbp), %rax
movswl 0x18(%rax), %eax
movl %eax, -0xe8(%rbp)
movq -0x38(%rbp), %rax
movswl 0x1c(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xe8(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0xe4(%rbp)
movl -0xe4(%rbp), %eax
movl %eax, -0xf0(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0xec(%rbp)
movq -0x38(%rbp), %rax
movswl 0x18(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x1c(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0xec(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x7ea2
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0xf4(%rbp)
jmp 0x7ed0
movq -0x38(%rbp), %rax
movswl 0x18(%rax), %eax
movl %eax, -0xf8(%rbp)
movq -0x38(%rbp), %rax
movswl 0x1c(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xf8(%rbp), %eax
addl %ecx, %eax
movl %eax, -0xf4(%rbp)
movl -0xf0(%rbp), %ecx
movl -0xf4(%rbp), %eax
subl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xf9(%rbp)
jle 0x805e
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x100(%rbp)
movq -0x38(%rbp), %rax
movswl 0x1a(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x1e(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x100(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x7f38
movq -0x40(%rbp), %rcx
movb $0x1, %al
cmpl $0x1, 0x14(%rcx)
movb %al, -0x101(%rbp)
je 0x8052
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x14(%rcx), %eax
movl %eax, -0x108(%rbp)
movq -0x38(%rbp), %rax
movswl 0x1a(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x1e(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x108(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x7f8b
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x14(%rcx), %eax
movl %eax, -0x10c(%rbp)
jmp 0x7fbc
movq -0x38(%rbp), %rax
movswl 0x1a(%rax), %eax
movl %eax, -0x110(%rbp)
movq -0x38(%rbp), %rax
movswl 0x1e(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x110(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x10c(%rbp)
movl -0x10c(%rbp), %eax
movl %eax, -0x118(%rbp)
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x114(%rbp)
movq -0x38(%rbp), %rax
movswl 0x1a(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x1e(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x114(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x800a
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x11c(%rbp)
jmp 0x8038
movq -0x38(%rbp), %rax
movswl 0x1a(%rax), %eax
movl %eax, -0x120(%rbp)
movq -0x38(%rbp), %rax
movswl 0x1e(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x120(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x11c(%rbp)
movl -0x118(%rbp), %eax
movl -0x11c(%rbp), %ecx
subl %ecx, %eax
cmpl $0x0, %eax
setg %al
movb %al, -0x101(%rbp)
movb -0x101(%rbp), %al
movb %al, -0xf9(%rbp)
movb -0xf9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x48(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x124(%rbp)
movq -0x38(%rbp), %rax
movswl 0x20(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x24(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x124(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x80ad
movq -0x40(%rbp), %rax
cmpl $0x1, 0x10(%rax)
je 0x81cc
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x10(%rcx), %eax
movl %eax, -0x128(%rbp)
movq -0x38(%rbp), %rax
movswl 0x20(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x24(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x128(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x8100
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x10(%rcx), %eax
movl %eax, -0x12c(%rbp)
jmp 0x8131
movq -0x38(%rbp), %rax
movswl 0x20(%rax), %eax
movl %eax, -0x130(%rbp)
movq -0x38(%rbp), %rax
movswl 0x24(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x130(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
movl %eax, -0x138(%rbp)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x134(%rbp)
movq -0x38(%rbp), %rax
movswl 0x20(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x24(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x134(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x817f
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x13c(%rbp)
jmp 0x81ad
movq -0x38(%rbp), %rax
movswl 0x20(%rax), %eax
movl %eax, -0x140(%rbp)
movq -0x38(%rbp), %rax
movswl 0x24(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x140(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x13c(%rbp)
movl -0x138(%rbp), %ecx
movl -0x13c(%rbp), %eax
subl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x141(%rbp)
jle 0x833b
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x148(%rbp)
movq -0x38(%rbp), %rax
movswl 0x22(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x26(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x148(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jne 0x8215
movq -0x40(%rbp), %rcx
movb $0x1, %al
cmpl $0x1, 0x14(%rcx)
movb %al, -0x149(%rbp)
je 0x832f
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x14(%rcx), %eax
movl %eax, -0x150(%rbp)
movq -0x38(%rbp), %rax
movswl 0x22(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x26(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x150(%rbp), %eax
addl %edx, %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x8268
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x40(%rbp), %rcx
addl 0x14(%rcx), %eax
movl %eax, -0x154(%rbp)
jmp 0x8299
movq -0x38(%rbp), %rax
movswl 0x22(%rax), %eax
movl %eax, -0x158(%rbp)
movq -0x38(%rbp), %rax
movswl 0x26(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x158(%rbp), %eax
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x154(%rbp)
movl -0x154(%rbp), %eax
movl %eax, -0x160(%rbp)
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x15c(%rbp)
movq -0x38(%rbp), %rax
movswl 0x22(%rax), %ecx
movq -0x38(%rbp), %rax
movswl 0x26(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x15c(%rbp), %eax
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x82e7
movq -0x40(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x164(%rbp)
jmp 0x8315
movq -0x38(%rbp), %rax
movswl 0x22(%rax), %eax
movl %eax, -0x168(%rbp)
movq -0x38(%rbp), %rax
movswl 0x26(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x168(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x164(%rbp)
movl -0x160(%rbp), %eax
movl -0x164(%rbp), %ecx
subl %ecx, %eax
cmpl $0x0, %eax
setg %al
movb %al, -0x149(%rbp)
movb -0x149(%rbp), %al
movb %al, -0x141(%rbp)
movb -0x141(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
je 0x8360
movq -0x40(%rbp), %rax
movq $0x3, 0x118(%rax)
jmp 0x8390
cmpl $0x0, -0x48(%rbp)
je 0x8377
movq -0x40(%rbp), %rax
movq $0x2, 0x118(%rax)
jmp 0x838e
cmpl $0x0, -0x44(%rbp)
je 0x838c
movq -0x40(%rbp), %rax
movq $0x1, 0x118(%rax)
jmp 0x838e
jmp 0x8390
movq -0x40(%rbp), %rax
cmpw $0x0, 0x102(%rax)
je 0x86ac
movq -0x40(%rbp), %rax
movq (%rax), %rdi
movq 0xb980(%rip), %rsi      # 0x13d30
movq -0x40(%rbp), %r8
addq $0xa8, %r8
leaq 0xbdde(%rip), %rdx      # 0x141a0
leaq 0xbddf(%rip), %rcx      # 0x141a8
movl $0x50, %r9d
callq 0x6ef0
cmpl $0x0, %eax
je 0x83ee
cmpq $0x4, 0xbdbf(%rip)      # 0x141a0
jne 0x83ee
cmpl $0x0, 0xbdbe(%rip)      # 0x141a8
jne 0x840d
jmp 0x83f6
xorl %eax, %eax
testb $0x1, %al
jne 0x840d
jmp 0x83f6
movq -0x40(%rbp), %rdi
addq $0xa8, %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x3070
movq -0x40(%rbp), %rdi
movq 0xb938(%rip), %rsi      # 0x13d50
callq 0x8850
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x108(%rax)
movq -0x40(%rbp), %rdi
movq 0xb902(%rip), %rsi      # 0x13d38
callq 0x8850
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x10a(%rax)
movq -0x40(%rbp), %rdi
movq 0xb8ec(%rip), %rsi      # 0x13d40
callq 0x8850
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x10e(%rax)
movq -0x40(%rbp), %rdi
movq 0xb8d6(%rip), %rsi      # 0x13d48
callq 0x8850
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x110(%rax)
movq -0x40(%rbp), %rdi
movq 0xb8c8(%rip), %rsi      # 0x13d58
callq 0x8850
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x116(%rax)
movq -0x10(%rbp), %rdi
movq 0xb7fa(%rip), %rsi      # 0x13ca8
movq -0x40(%rbp), %r8
addq $0x120, %r8             # imm = 0x120
leaq 0xbce0(%rip), %rdx      # 0x141a0
leaq 0xbce1(%rip), %rcx      # 0x141a8
movl $0x8, %r9d
callq 0x6ef0
cmpl $0x0, %eax
je 0x84e9
cmpq $0x6, 0xbcc1(%rip)      # 0x141a0
jne 0x84e9
movl 0xbcc1(%rip), %eax      # 0x141a8
jmp 0x84eb
jmp 0x84eb
movq -0x40(%rbp), %rax
cmpq $0x0, 0x120(%rax)
je 0x8513
cmpl $0x0, -0x44(%rbp)
je 0x8513
movq -0x40(%rbp), %rax
movq $0x1, 0x118(%rax)
jmp 0x859d
movq -0x40(%rbp), %rax
movswl 0x10e(%rax), %eax
cmpl $0x0, %eax
je 0x8554
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rax
cmpq 0xb7f3(%rip), %rax      # 0x13d28
je 0x8554
cmpl $0x0, -0x44(%rbp)
jne 0x8554
cmpl $0x0, -0x48(%rbp)
je 0x8554
movq -0x40(%rbp), %rax
movq $0x2, 0x118(%rax)
jmp 0x859b
movq -0x40(%rbp), %rax
movswl 0x110(%rax), %eax
cmpl $0x0, %eax
je 0x8599
movq -0x40(%rbp), %rax
movq 0xa0(%rax), %rax
cmpq 0xb7b2(%rip), %rax      # 0x13d28
je 0x8599
cmpl $0x0, -0x44(%rbp)
jne 0x8599
cmpl $0x0, -0x48(%rbp)
jne 0x8599
cmpl $0x0, -0x4c(%rbp)
je 0x8599
movq -0x40(%rbp), %rax
movq $0x3, 0x118(%rax)
jmp 0x859b
jmp 0x859d
movq 0xb5fc(%rip), %rdi      # 0x13ba0
movq -0x40(%rbp), %rax
movq (%rax), %rsi
callq 0x3370
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
je 0x8665
movq -0x30(%rbp), %rax
movq (%rax), %rcx
andq $0x1, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x169(%rbp)
je 0x85e8
movq -0x30(%rbp), %rax
cmpl $0x0, 0x8(%rax)
setne %al
movb %al, -0x169(%rbp)
movb -0x169(%rbp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x106(%rax)
movq -0x40(%rbp), %rax
movswl 0x108(%rax), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x16a(%rbp)
jne 0x863b
movq -0x30(%rbp), %rax
movq (%rax), %rax
andq $0x100, %rax            # imm = 0x100
cmpq $0x0, %rax
setne %al
movb %al, -0x16a(%rbp)
movb -0x16a(%rbp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, 0x108(%rax)
movq -0x30(%rbp), %rdi
callq 0x3050
movq 0xb534(%rip), %rdi      # 0x13ba0
movq -0x40(%rbp), %rax
movq (%rax), %rsi
leaq -0x28(%rbp), %rdx
callq 0x32b0
cmpl $0x0, %eax
je 0x86aa
movq -0x20(%rbp), %rdi
callq 0x3430
movq %rax, %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x128(%rax)
movq -0x20(%rbp), %rdi
callq 0x3050
movq -0x28(%rbp), %rdi
callq 0x3050
jmp 0x86ac
jmp 0x86ae
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x86c9
movq -0x40(%rbp), %rdi
callq 0x3220
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopw %cs:(%rax,%rax)