// File: /workspace/github_c_makefile_star2_O0/kyx0r[P]xkeyboard/xkeyboard.c
// Function: do_button_event
void do_button_event(void)
{
	int i, j, mod, sc, lockmap = 0;
	char *name;
	static Window lastkeywin = 0;
	static Window lastmodkeywin = 0;
	Window win = myevent.xbutton.window;
	static Time laststamp = 0;
	Time stamp = myevent.xbutton.time;

	if (lastkeywin && myevent.type == ButtonRelease) {
		XSetWindowBorderWidth(dpy, lastkeywin, BORDER);
		win = lastkeywin;
		lastkeywin = 0;
	}
	if (lastkeywin) {	/* sanity */
		XSetWindowBorderWidth(dpy, lastkeywin, BORDER);
		lastkeywin = 0;
	}
	for (i = 0; i < MAX_KEYS; i++) {
		if (win == mykey[i])
			break;
	}
	if (i == MAX_KEYS) {
		/* unexpected event window */
		return;
	}
	sc = xk[i].scancode;
	for (j = 0; j < 8; j++) {
		if (modifiermap[j][0] == sc)
			break;
		if (modifiermap[j][1] == sc)
			break;
		if (modifiermap[j][2] == sc)
			break;
		if (modifiermap[j][3] == sc)
			break;
	}
	mod = 0;
	if (j < 8) {
		if (myevent.type == ButtonRelease)
			return;
		if(win == lastmodkeywin && stamp - laststamp < 500)
		{
			lockmod = !lockmod ? 1 : 0;
			GC tmp = mygcled;
			mygcled = mygcred;
			mygcred = tmp;
			if(lockmod)
			{
				name = scanname[0][sc];
				if(name)
					XDrawString(dpy, mykey[i], mygcled,
							8 * sn / sd, 26 * sn / sd,
							name, strlen(name));
			}
			do_control();
			return;
		} 
		laststamp = stamp;
		lastmodkeywin = mykey[i];
		mod = (1 << j);
		if (keystate & mod) {
                       keystate &= ~mod;
                       lockmap |= mod;
                       myevent.type = ButtonRelease;
                       i = modindex[j];
                       sc = xk[i].scancode;
                       name = scanname[0][sc];
                       if (name)
                               XDrawString(dpy, mykey[i], mygc,
                                       8 * sn / sd, 26 * sn / sd,
                                       name, strlen(name));
		} else { 
			keystate |= mod; 
			lockmap |= mod;
			modindex[j] = i;
			name = scanname[0][sc];
			if (name)
			{
				XDrawString(dpy, mykey[i], mygcled,
						8 * sn / sd, 26 * sn / sd,
						name, strlen(name));
			}
		}
	}
	if (myevent.type == ButtonPress) {
		if (!mod)
			lastkeywin = mykey[i];
		myevent.type = KeyPress;
		XSetWindowBorderWidth(dpy, mykey[i], 2);
	} else {
		myevent.type = KeyRelease;
		XSetWindowBorderWidth(dpy, mykey[i], BORDER);
	}
	if ((lockmap & 0x92) && myevent.type == KeyRelease)
		myevent.type = KeyPress;

	if(sendkey)
	{
		int revert;
		Window focus;
		int statemask = 0;

		if (keystate & 0x01) { 	/* shift */
			statemask |= ShiftMask;
		}
		if (keystate & 0x02) { 	/* caps */
			statemask |= LockMask;
		}
		if (keystate & 0x04) {	/* control */
			statemask |= ControlMask;
		}
		if (keystate & 0x08) { 	/* alt */
			statemask |= Mod1Mask;
		}
		if (keystate & 0x0f) {
			statemask |= Mod2Mask;
		}
		if (keystate & 0x20) { 
			statemask |= Mod3Mask;
		}
		if (keystate & 0x40) { 	/* win key */
			statemask |= Mod4Mask;
		}
		if (keystate & 0x80) { 	
			statemask |= Mod5Mask;
		}

		XGetInputFocus(dpy, &focus, &revert);

		XEvent event;
		event.xkey.type = myevent.type;
		event.xkey.window = focus;
		event.xkey.root = event.xkey.subwindow = None;
		event.xkey.time = 0;
		event.xkey.send_event = 1;
		event.xkey.keycode = sc;
		event.xkey.state = statemask;
		XSendEvent(dpy, focus, True, KeyPressMask | KeyReleaseMask, &event);
		XSync(dpy, 1);
	}
	else
	{
		XTestFakeKeyEvent(dpy, sc, (myevent.type == KeyPress), 0);
	}
	if (myevent.type == KeyPress && !(mod)) {
		/* automagically turn off some modifiers */
		if(!lockmod)
		{
			if (keystate & 0x01) { 	/* shift */
				i = modindex[0];
				sc = xk[i].scancode;
				XSetWindowBorderWidth(dpy, mykey[i], BORDER);
				XTestFakeKeyEvent(dpy, sc, 0, 0);
				name = scanname[0][sc];
				if (name)
					XDrawString(dpy, mykey[i], mygc,
							8 * sn / sd, 26 * sn / sd,
							name, strlen(name));
			}
			if (keystate & 0x04) {	/* control */
				i = modindex[2];
				sc = xk[i].scancode;
				XSetWindowBorderWidth(dpy, mykey[i], BORDER);
				XTestFakeKeyEvent(dpy, sc, 0, 0);
				name = scanname[0][sc];
				if (name)
					XDrawString(dpy, mykey[i], mygc,
							8 * sn / sd, 26 * sn / sd,
							name, strlen(name));
			}
			if (keystate & 0x08) { 	/* alt */
				i = modindex[3];
				sc = xk[i].scancode;
				XSetWindowBorderWidth(dpy, mykey[i], BORDER);
				XTestFakeKeyEvent(dpy, sc, 0, 0);
				name = scanname[0][sc];
				if (name)
					XDrawString(dpy, mykey[i], mygc,
							8 * sn / sd, 26 * sn / sd,
							name, strlen(name));
			}
			keystate &= ~0x0d;
		}
	}
	if (lockmap & 0x92) {	/* Need to generate keyup events */
		if (lockmap & 0x02) {	/* Lock */
			XTestFakeKeyEvent(dpy,
				xk[modindex[1]].scancode, 0, 0);
		}
		if (lockmap & 0x10) {	/* Mod1 */
			XTestFakeKeyEvent(dpy,
				xk[modindex[4]].scancode, 0, 0);
		}
		if (lockmap & 0x80) {	/* Mod5 */
			XTestFakeKeyEvent(dpy,
				xk[modindex[7]].scancode, 0, 0);
		}
	}
	XFlush(dpy);
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movl $0x0, -0x14(%rbp)
movq 0x19cc7(%rip), %rax     # 0x1e190
movq %rax, -0x28(%rbp)
movq 0x19cd4(%rip), %rax     # 0x1e1a8
movq %rax, -0x30(%rbp)
cmpq $0x0, 0x19d50(%rip)     # 0x1e230
je 0x4516
cmpl $0x5, 0x19c87(%rip)     # 0x1e170
jne 0x4516
movq 0x15306(%rip), %rdi     # 0x197f8
movq 0x19d37(%rip), %rsi     # 0x1e230
xorl %edx, %edx
callq 0x21d0
movq 0x19d29(%rip), %rax     # 0x1e230
movq %rax, -0x28(%rbp)
movq $0x0, 0x19d1a(%rip) # 0x1e230
cmpq $0x0, 0x19d12(%rip)     # 0x1e230
je 0x4540
movq 0x152d1(%rip), %rdi     # 0x197f8
movq 0x19d02(%rip), %rsi     # 0x1e230
xorl %edx, %edx
callq 0x21d0
movq $0x0, 0x19cf0(%rip) # 0x1e230
movl $0x0, -0x4(%rbp)
cmpl $0x69, -0x4(%rbp)
jge 0x4571
movq -0x28(%rbp), %rax
movslq -0x4(%rbp), %rdx
leaq 0x15604(%rip), %rcx     # 0x19b60
cmpq (%rcx,%rdx,8), %rax
jne 0x4564
jmp 0x4571
jmp 0x4566
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x4547
cmpl $0x69, -0x4(%rbp)
jne 0x457c
jmp 0x5046
movslq -0x4(%rbp), %rcx
leaq 0x4db9(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x10(%rbp)
movl $0x0, -0x8(%rbp)
cmpl $0x8, -0x8(%rbp)
jge 0x461f
movslq -0x8(%rbp), %rcx
leaq 0x199c5(%rip), %rax     # 0x1df70
shlq $0x6, %rcx
addq %rcx, %rax
movl (%rax), %eax
cmpl -0x10(%rbp), %eax
jne 0x45bb
jmp 0x461f
movslq -0x8(%rbp), %rcx
leaq 0x199aa(%rip), %rax     # 0x1df70
shlq $0x6, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
cmpl -0x10(%rbp), %eax
jne 0x45d7
jmp 0x461f
movslq -0x8(%rbp), %rcx
leaq 0x1998e(%rip), %rax     # 0x1df70
shlq $0x6, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
cmpl -0x10(%rbp), %eax
jne 0x45f3
jmp 0x461f
movslq -0x8(%rbp), %rcx
leaq 0x19972(%rip), %rax     # 0x1df70
shlq $0x6, %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
cmpl -0x10(%rbp), %eax
jne 0x460f
jmp 0x461f
jmp 0x4611
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x459a
movl $0x0, -0xc(%rbp)
cmpl $0x8, -0x8(%rbp)
jge 0x49bf
cmpl $0x5, 0x19b39(%rip)     # 0x1e170
jne 0x463e
jmp 0x5046
movq -0x28(%rbp), %rax
cmpq 0x19bef(%rip), %rax     # 0x1e238
jne 0x4782
movq -0x30(%rbp), %rax
subq 0x19be6(%rip), %rax     # 0x1e240
cmpq $0x1f4, %rax            # imm = 0x1F4
jae 0x4782
cmpl $0x0, 0x19bdb(%rip)     # 0x1e248
setne %dl
xorb $-0x1, %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, 0x19bc2(%rip)     # 0x1e248
movq 0x15393(%rip), %rax     # 0x19a20
movq %rax, -0x38(%rbp)
movq 0x15390(%rip), %rax     # 0x19a28
movq %rax, 0x15381(%rip)     # 0x19a20
movq -0x38(%rbp), %rax
movq %rax, 0x1537e(%rip)     # 0x19a28
cmpl $0x0, 0x19b97(%rip)     # 0x1e248
je 0x4778
movslq -0x10(%rbp), %rcx
leaq 0x1588e(%rip), %rax     # 0x19f50
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x4776
movq 0x1511c(%rip), %rax     # 0x197f8
movq %rax, -0x138(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x15472(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, -0x130(%rbp)
movq 0x15320(%rip), %rax     # 0x19a20
movq %rax, -0x128(%rbp)
movl 0x15323(%rip), %eax     # 0x19a30
shll $0x3, %eax
cltd
idivl 0x1531d(%rip)           # 0x19a34
movl %eax, -0x120(%rbp)
imull $0x1a, 0x1530c(%rip), %eax # 0x19a30
cltd
idivl 0x15309(%rip)           # 0x19a34
movl %eax, -0x11c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20d0
movq -0x138(%rbp), %rdi
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rdx
movl -0x120(%rbp), %ecx
movl -0x11c(%rbp), %r8d
movq -0x118(%rbp), %r9
movl %eax, (%rsp)
callq 0x2280
jmp 0x4778
callq 0x41b0
jmp 0x5046
movq -0x30(%rbp), %rax
movq %rax, 0x19ab3(%rip)     # 0x1e240
movslq -0x4(%rbp), %rcx
leaq 0x153c8(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, 0x19a95(%rip)     # 0x1e238
movl -0x8(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, -0xc(%rbp)
movl 0x15792(%rip), %eax     # 0x19f48
andl -0xc(%rbp), %eax
cmpl $0x0, %eax
je 0x48d3
movl -0xc(%rbp), %eax
xorl $-0x1, %eax
andl 0x1577a(%rip), %eax     # 0x19f48
movl %eax, 0x15774(%rip)     # 0x19f48
movl -0xc(%rbp), %eax
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x5, 0x19989(%rip)     # 0x1e170
movslq -0x8(%rbp), %rcx
leaq 0x1975e(%rip), %rax     # 0x1df50
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x4b3d(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x10(%rbp)
movslq -0x10(%rbp), %rcx
leaq 0x15736(%rip), %rax     # 0x19f50
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x48ce
movq 0x14fc4(%rip), %rax     # 0x197f8
movq %rax, -0x160(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x1531a(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, -0x158(%rbp)
movq 0x151b8(%rip), %rax     # 0x19a10
movq %rax, -0x150(%rbp)
movl 0x151cb(%rip), %eax     # 0x19a30
shll $0x3, %eax
cltd
idivl 0x151c5(%rip)           # 0x19a34
movl %eax, -0x148(%rbp)
imull $0x1a, 0x151b4(%rip), %eax # 0x19a30
cltd
idivl 0x151b1(%rip)           # 0x19a34
movl %eax, -0x144(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20d0
movq -0x160(%rbp), %rdi
movq -0x158(%rbp), %rsi
movq -0x150(%rbp), %rdx
movl -0x148(%rbp), %ecx
movl -0x144(%rbp), %r8d
movq -0x140(%rbp), %r9
movl %eax, (%rsp)
callq 0x2280
jmp 0x49bd
movl -0xc(%rbp), %eax
orl 0x1566c(%rip), %eax     # 0x19f48
movl %eax, 0x15666(%rip)     # 0x19f48
movl -0xc(%rbp), %eax
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x4(%rbp), %edx
movslq -0x8(%rbp), %rcx
leaq 0x19657(%rip), %rax     # 0x1df50
movl %edx, (%rax,%rcx,4)
movslq -0x10(%rbp), %rcx
leaq 0x15649(%rip), %rax     # 0x19f50
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x49bb
movq 0x14ed7(%rip), %rax     # 0x197f8
movq %rax, -0x188(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x1522d(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, -0x180(%rbp)
movq 0x150db(%rip), %rax     # 0x19a20
movq %rax, -0x178(%rbp)
movl 0x150de(%rip), %eax     # 0x19a30
shll $0x3, %eax
cltd
idivl 0x150d8(%rip)           # 0x19a34
movl %eax, -0x170(%rbp)
imull $0x1a, 0x150c7(%rip), %eax # 0x19a30
cltd
idivl 0x150c4(%rip)           # 0x19a34
movl %eax, -0x16c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20d0
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rsi
movq -0x178(%rbp), %rdx
movl -0x170(%rbp), %ecx
movl -0x16c(%rbp), %r8d
movq -0x168(%rbp), %r9
movl %eax, (%rsp)
callq 0x2280
jmp 0x49bd
jmp 0x49bf
cmpl $0x4, 0x197aa(%rip)     # 0x1e170
jne 0x4a10
cmpl $0x0, -0xc(%rbp)
jne 0x49e4
movslq -0x4(%rbp), %rcx
leaq 0x15187(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, 0x1984c(%rip)     # 0x1e230
movl $0x2, 0x19782(%rip)     # 0x1e170
movq 0x14e03(%rip), %rdi     # 0x197f8
movslq -0x4(%rbp), %rcx
leaq 0x15160(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rsi
movl $0x2, %edx
callq 0x21d0
jmp 0x4a37
movl $0x3, 0x19756(%rip)     # 0x1e170
movq 0x14dd7(%rip), %rdi     # 0x197f8
movslq -0x4(%rbp), %rcx
leaq 0x15134(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0x21d0
movl -0x14(%rbp), %eax
andl $0x92, %eax
cmpl $0x0, %eax
je 0x4a57
cmpl $0x3, 0x19725(%rip)     # 0x1e170
jne 0x4a57
movl $0x2, 0x19719(%rip)     # 0x1e170
cmpl $0x0, 0x197ee(%rip)     # 0x1e24c
je 0x4bc3
movl $0x0, -0x4c(%rbp)
movl 0x154d7(%rip), %eax     # 0x19f48
andl $0x1, %eax
cmpl $0x0, %eax
je 0x4a82
movl -0x4c(%rbp), %eax
orl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl 0x154c0(%rip), %eax     # 0x19f48
andl $0x2, %eax
cmpl $0x0, %eax
je 0x4a99
movl -0x4c(%rbp), %eax
orl $0x2, %eax
movl %eax, -0x4c(%rbp)
movl 0x154a9(%rip), %eax     # 0x19f48
andl $0x4, %eax
cmpl $0x0, %eax
je 0x4ab0
movl -0x4c(%rbp), %eax
orl $0x4, %eax
movl %eax, -0x4c(%rbp)
movl 0x15492(%rip), %eax     # 0x19f48
andl $0x8, %eax
cmpl $0x0, %eax
je 0x4ac7
movl -0x4c(%rbp), %eax
orl $0x8, %eax
movl %eax, -0x4c(%rbp)
movl 0x1547b(%rip), %eax     # 0x19f48
andl $0xf, %eax
cmpl $0x0, %eax
je 0x4ade
movl -0x4c(%rbp), %eax
orl $0x10, %eax
movl %eax, -0x4c(%rbp)
movl 0x15464(%rip), %eax     # 0x19f48
andl $0x20, %eax
cmpl $0x0, %eax
je 0x4af5
movl -0x4c(%rbp), %eax
orl $0x20, %eax
movl %eax, -0x4c(%rbp)
movl 0x1544d(%rip), %eax     # 0x19f48
andl $0x40, %eax
cmpl $0x0, %eax
je 0x4b0c
movl -0x4c(%rbp), %eax
orl $0x40, %eax
movl %eax, -0x4c(%rbp)
movl 0x15436(%rip), %eax     # 0x19f48
andl $0x80, %eax
cmpl $0x0, %eax
je 0x4b27
movl -0x4c(%rbp), %eax
orl $0x80, %eax
movl %eax, -0x4c(%rbp)
movq 0x14cca(%rip), %rdi     # 0x197f8
leaq -0x48(%rbp), %rsi
leaq -0x3c(%rbp), %rdx
callq 0x23c0
movl 0x1962f(%rip), %eax     # 0x1e170
movl %eax, -0x110(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq $0x0, -0xe0(%rbp)
movq $0x0, -0xe8(%rbp)
movq $0x0, -0xd8(%rbp)
movl $0x1, -0x100(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0xbc(%rbp)
movl -0x4c(%rbp), %eax
movl %eax, -0xc0(%rbp)
movq 0x14c62(%rip), %rdi     # 0x197f8
movq -0x48(%rbp), %rsi
movl $0x1, %edx
movl $0x3, %ecx
leaq -0x110(%rbp), %r8
callq 0x2030
movq 0x14c41(%rip), %rdi     # 0x197f8
movl $0x1, %esi
callq 0x2260
jmp 0x4be5
movq 0x14c2e(%rip), %rdi     # 0x197f8
movl -0x10(%rbp), %esi
cmpl $0x2, 0x1959c(%rip)     # 0x1e170
sete %al
andb $0x1, %al
movzbl %al, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x22b0
cmpl $0x2, 0x19584(%rip)     # 0x1e170
jne 0x4f89
cmpl $0x0, -0xc(%rbp)
jne 0x4f89
cmpl $0x0, 0x19645(%rip)     # 0x1e248
jne 0x4f87
movl 0x15339(%rip), %eax     # 0x19f48
andl $0x1, %eax
cmpl $0x0, %eax
je 0x4d2e
movl 0x1932f(%rip), %eax     # 0x1df50
movl %eax, -0x4(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x4711(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x10(%rbp)
movq 0x14bb6(%rip), %rdi     # 0x197f8
movslq -0x4(%rbp), %rcx
leaq 0x14f13(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0x21d0
movq 0x14b99(%rip), %rdi     # 0x197f8
movl -0x10(%rbp), %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x22b0
movslq -0x10(%rbp), %rcx
leaq 0x152d8(%rip), %rax     # 0x19f50
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x4d2c
movq 0x14b66(%rip), %rax     # 0x197f8
movq %rax, -0x1b0(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x14ebc(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, -0x1a8(%rbp)
movq 0x14d5a(%rip), %rax     # 0x19a10
movq %rax, -0x1a0(%rbp)
movl 0x14d6d(%rip), %eax     # 0x19a30
shll $0x3, %eax
cltd
idivl 0x14d67(%rip)           # 0x19a34
movl %eax, -0x198(%rbp)
imull $0x1a, 0x14d56(%rip), %eax # 0x19a30
cltd
idivl 0x14d53(%rip)           # 0x19a34
movl %eax, -0x194(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20d0
movq -0x1b0(%rbp), %rdi
movq -0x1a8(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
movl -0x198(%rbp), %ecx
movl -0x194(%rbp), %r8d
movq -0x190(%rbp), %r9
movl %eax, (%rsp)
callq 0x2280
jmp 0x4d2e
movl 0x15214(%rip), %eax     # 0x19f48
andl $0x4, %eax
cmpl $0x0, %eax
je 0x4e53
movl 0x19212(%rip), %eax     # 0x1df58
movl %eax, -0x4(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x45ec(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x10(%rbp)
movq 0x14a91(%rip), %rdi     # 0x197f8
movslq -0x4(%rbp), %rcx
leaq 0x14dee(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0x21d0
movq 0x14a74(%rip), %rdi     # 0x197f8
movl -0x10(%rbp), %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x22b0
movslq -0x10(%rbp), %rcx
leaq 0x151b3(%rip), %rax     # 0x19f50
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x4e51
movq 0x14a41(%rip), %rax     # 0x197f8
movq %rax, -0x1d8(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x14d97(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, -0x1d0(%rbp)
movq 0x14c35(%rip), %rax     # 0x19a10
movq %rax, -0x1c8(%rbp)
movl 0x14c48(%rip), %eax     # 0x19a30
shll $0x3, %eax
cltd
idivl 0x14c42(%rip)           # 0x19a34
movl %eax, -0x1c0(%rbp)
imull $0x1a, 0x14c31(%rip), %eax # 0x19a30
cltd
idivl 0x14c2e(%rip)           # 0x19a34
movl %eax, -0x1bc(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20d0
movq -0x1d8(%rbp), %rdi
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
movl -0x1c0(%rbp), %ecx
movl -0x1bc(%rbp), %r8d
movq -0x1b8(%rbp), %r9
movl %eax, (%rsp)
callq 0x2280
jmp 0x4e53
movl 0x150ef(%rip), %eax     # 0x19f48
andl $0x8, %eax
cmpl $0x0, %eax
je 0x4f78
movl 0x190f1(%rip), %eax     # 0x1df5c
movl %eax, -0x4(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x44c7(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x10(%rbp)
movq 0x1496c(%rip), %rdi     # 0x197f8
movslq -0x4(%rbp), %rcx
leaq 0x14cc9(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0x21d0
movq 0x1494f(%rip), %rdi     # 0x197f8
movl -0x10(%rbp), %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x22b0
movslq -0x10(%rbp), %rcx
leaq 0x1508e(%rip), %rax     # 0x19f50
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x4f76
movq 0x1491c(%rip), %rax     # 0x197f8
movq %rax, -0x200(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x14c72(%rip), %rax     # 0x19b60
movq (%rax,%rcx,8), %rax
movq %rax, -0x1f8(%rbp)
movq 0x14b10(%rip), %rax     # 0x19a10
movq %rax, -0x1f0(%rbp)
movl 0x14b23(%rip), %eax     # 0x19a30
shll $0x3, %eax
cltd
idivl 0x14b1d(%rip)           # 0x19a34
movl %eax, -0x1e8(%rbp)
imull $0x1a, 0x14b0c(%rip), %eax # 0x19a30
cltd
idivl 0x14b09(%rip)           # 0x19a34
movl %eax, -0x1e4(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20d0
movq -0x200(%rbp), %rdi
movq -0x1f8(%rbp), %rsi
movq -0x1f0(%rbp), %rdx
movl -0x1e8(%rbp), %ecx
movl -0x1e4(%rbp), %r8d
movq -0x1e0(%rbp), %r9
movl %eax, (%rsp)
callq 0x2280
jmp 0x4f78
movl 0x14fca(%rip), %eax     # 0x19f48
andl $-0xe, %eax
movl %eax, 0x14fc1(%rip)     # 0x19f48
jmp 0x4f89
movl -0x14(%rbp), %eax
andl $0x92, %eax
cmpl $0x0, %eax
je 0x503a
movl -0x14(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x4fce
movq 0x1484c(%rip), %rdi     # 0x197f8
movslq 0x18fa1(%rip), %rcx     # 0x1df54
leaq 0x4386(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x22b0
movl -0x14(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x5002
movq 0x14818(%rip), %rdi     # 0x197f8
movslq 0x18f79(%rip), %rcx     # 0x1df60
leaq 0x4352(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x22b0
movl -0x14(%rbp), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x5038
movq 0x147e2(%rip), %rdi     # 0x197f8
movslq 0x18f4f(%rip), %rcx     # 0x1df6c
leaq 0x431c(%rip), %rax      # 0x9340
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x22b0
jmp 0x503a
movq 0x147b7(%rip), %rdi     # 0x197f8
callq 0x2300
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
nop