408d30:	2d 63 12 00 00       	sub    $0x1263,%eax
408d35:	74 45                	je     0x408d7c
408d37:	2d 12 08 00 00       	sub    $0x812,%eax
408d3c:	74 e7                	je     0x408d25
408d3e:	83 e8 01             	sub    $0x1,%eax
408d41:	eb e0                	jmp    0x408d23
408d43:	b9 b1 de 00 00       	mov    $0xdeb1,%ecx
408d48:	3b c1                	cmp    %ecx,%eax
408d4a:	77 13                	ja     0x408d5f
408d4c:	74 d7                	je     0x408d25
408d4e:	2d ad de 00 00       	sub    $0xdead,%eax
408d53:	74 d0                	je     0x408d25
408d55:	83 e8 01             	sub    $0x1,%eax
408d58:	74 cb                	je     0x408d25
408d5a:	83 e8 01             	sub    $0x1,%eax
408d5d:	eb dd                	jmp    0x408d3c
408d5f:	2d b2 de 00 00       	sub    $0xdeb2,%eax
408d64:	74 bf                	je     0x408d25
408d66:	83 e8 01             	sub    $0x1,%eax
408d69:	74 ba                	je     0x408d25
408d6b:	2d 35 1f 00 00       	sub    $0x1f35,%eax
408d70:	74 b3                	je     0x408d25
408d72:	83 e8 01             	sub    $0x1,%eax
408d75:	74 05                	je     0x408d7c
408d77:	8b 45 0c             	mov    0xc(%ebp),%eax
408d7a:	5d                   	pop    %ebp
408d7b:	c3                   	ret
408d7c:	8b 45 0c             	mov    0xc(%ebp),%eax
408d7f:	83 e0 08             	and    $0x8,%eax
408d82:	5d                   	pop    %ebp
408d83:	c3                   	ret
408d84:	8b ff                	mov    %edi,%edi
408d86:	55                   	push   %ebp
408d87:	8b ec                	mov    %esp,%ebp
408d89:	ff 75 1c             	push   0x1c(%ebp)
408d8c:	ff 75 18             	push   0x18(%ebp)
408d8f:	ff 75 14             	push   0x14(%ebp)
408d92:	ff 75 10             	push   0x10(%ebp)
408d95:	ff 75 0c             	push   0xc(%ebp)
408d98:	ff 75 08             	push   0x8(%ebp)
408d9b:	e8 4c ff ff ff       	call   0x408cec
408da0:	59                   	pop    %ecx
408da1:	59                   	pop    %ecx
408da2:	50                   	push   %eax
408da3:	ff 75 08             	push   0x8(%ebp)
408da6:	ff 15 c8 f0 40 00    	call   *0x40f0c8
408dac:	5d                   	pop    %ebp
408dad:	c3                   	ret
408dae:	8b ff                	mov    %edi,%edi
408db0:	55                   	push   %ebp
408db1:	8b ec                	mov    %esp,%ebp
408db3:	8b 45 08             	mov    0x8(%ebp),%eax
408db6:	b9 ac de 00 00       	mov    $0xdeac,%ecx
408dbb:	3b c1                	cmp    %ecx,%eax
408dbd:	77 3d                	ja     0x408dfc
408dbf:	74 79                	je     0x408e3a
408dc1:	b9 33 c4 00 00       	mov    $0xc433,%ecx
408dc6:	3b c1                	cmp    %ecx,%eax
408dc8:	77 1d                	ja     0x408de7
408dca:	74 6e                	je     0x408e3a
408dcc:	83 e8 2a             	sub    $0x2a,%eax
408dcf:	74 69                	je     0x408e3a
408dd1:	2d 02 c4 00 00       	sub    $0xc402,%eax
408dd6:	74 62                	je     0x408e3a
408dd8:	83 e8 01             	sub    $0x1,%eax
408ddb:	74 5d                	je     0x408e3a
408ddd:	83 e8 01             	sub    $0x1,%eax
408de0:	74 58                	je     0x408e3a
408de2:	83 e8 03             	sub    $0x3,%eax
408de5:	eb 47                	jmp    0x408e2e
408de7:	2d 35 c4 00 00       	sub    $0xc435,%eax
408dec:	74 4c                	je     0x408e3a
408dee:	2d 63 12 00 00       	sub    $0x1263,%eax
408df3:	74 45                	je     0x408e3a
408df5:	2d 12 08 00 00       	sub    $0x812,%eax
408dfa:	eb 2d                	jmp    0x408e29
408dfc:	b9 b1 de 00 00       	mov    $0xdeb1,%ecx
408e01:	3b c1                	cmp    %ecx,%eax
408e03:	77 13                	ja     0x408e18
408e05:	74 33                	je     0x408e3a
408e07:	2d ad de 00 00       	sub    $0xdead,%eax
408e0c:	74 2c                	je     0x408e3a
408e0e:	83 e8 01             	sub    $0x1,%eax
408e11:	74 27                	je     0x408e3a
408e13:	83 e8 01             	sub    $0x1,%eax
408e16:	eb 11                	jmp    0x408e29
408e18:	2d b2 de 00 00       	sub    $0xdeb2,%eax
408e1d:	74 1b                	je     0x408e3a
408e1f:	83 e8 01             	sub    $0x1,%eax
408e22:	74 16                	je     0x408e3a
408e24:	2d 35 1f 00 00       	sub    $0x1f35,%eax
408e29:	74 0f                	je     0x408e3a
408e2b:	83 e8 01             	sub    $0x1,%eax
408e2e:	74 0a                	je     0x408e3a
408e30:	8b 45 0c             	mov    0xc(%ebp),%eax
408e33:	25 7f ff ff ff       	and    $0xffffff7f,%eax
408e38:	5d                   	pop    %ebp
408e39:	c3                   	ret
408e3a:	33 c0                	xor    %eax,%eax
408e3c:	5d                   	pop    %ebp
408e3d:	c3                   	ret
408e3e:	8b ff                	mov    %edi,%edi
408e40:	55                   	push   %ebp
408e41:	8b ec                	mov    %esp,%ebp
408e43:	8b 55 08             	mov    0x8(%ebp),%edx
408e46:	53                   	push   %ebx
408e47:	56                   	push   %esi
408e48:	57                   	push   %edi
408e49:	81 fa e8 fd 00 00    	cmp    $0xfde8,%edx
408e4f:	74 0c                	je     0x408e5d
408e51:	81 fa e9 fd 00 00    	cmp    $0xfde9,%edx
408e57:	74 04                	je     0x408e5d
408e59:	32 db                	xor    %bl,%bl
408e5b:	eb 02                	jmp    0x408e5f
408e5d:	b3 01                	mov    $0x1,%bl
408e5f:	ff 75 0c             	push   0xc(%ebp)
408e62:	52                   	push   %edx
408e63:	e8 46 ff ff ff       	call   0x408dae
408e68:	8b 7d 24             	mov    0x24(%ebp),%edi
408e6b:	59                   	pop    %ecx
408e6c:	59                   	pop    %ecx
408e6d:	0f b6 cb             	movzbl %bl,%ecx
408e70:	f7 d9                	neg    %ecx
408e72:	0f b6 f3             	movzbl %bl,%esi
408e75:	1b c9                	sbb    %ecx,%ecx
408e77:	f7 d1                	not    %ecx
408e79:	23 cf                	and    %edi,%ecx
408e7b:	f7 de                	neg    %esi
408e7d:	1b f6                	sbb    %esi,%esi
408e7f:	f7 d6                	not    %esi
408e81:	23 75 20             	and    0x20(%ebp),%esi
408e84:	84 db                	test   %bl,%bl
408e86:	74 07                	je     0x408e8f
408e88:	85 ff                	test   %edi,%edi
408e8a:	74 03                	je     0x408e8f
408e8c:	83 27 00             	andl   $0x0,(%edi)
408e8f:	51                   	push   %ecx
408e90:	56                   	push   %esi
408e91:	ff 75 1c             	push   0x1c(%ebp)
408e94:	ff 75 18             	push   0x18(%ebp)
408e97:	ff 75 14             	push   0x14(%ebp)
408e9a:	ff 75 10             	push   0x10(%ebp)
408e9d:	50                   	push   %eax
408e9e:	52                   	push   %edx
408e9f:	ff 15 cc f0 40 00    	call   *0x40f0cc
408ea5:	5f                   	pop    %edi
408ea6:	5e                   	pop    %esi
408ea7:	5b                   	pop    %ebx
408ea8:	5d                   	pop    %ebp
408ea9:	c3                   	ret
408eaa:	8b ff                	mov    %edi,%edi
408eac:	55                   	push   %ebp
408ead:	8b ec                	mov    %esp,%ebp
408eaf:	8b 55 08             	mov    0x8(%ebp),%edx
408eb2:	57                   	push   %edi
408eb3:	33 ff                	xor    %edi,%edi
408eb5:	66 39 3a             	cmp    %di,(%edx)
408eb8:	74 21                	je     0x408edb
408eba:	56                   	push   %esi
408ebb:	8b ca                	mov    %edx,%ecx
408ebd:	8d 71 02             	lea    0x2(%ecx),%esi
408ec0:	66 8b 01             	mov    (%ecx),%ax
408ec3:	83 c1 02             	add    $0x2,%ecx
408ec6:	66 3b c7             	cmp    %di,%ax
408ec9:	75 f5                	jne    0x408ec0
408ecb:	2b ce                	sub    %esi,%ecx
408ecd:	d1 f9                	sar    $1,%ecx
408ecf:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
408ed2:	83 c2 02             	add    $0x2,%edx
408ed5:	66 39 3a             	cmp    %di,(%edx)
408ed8:	75 e1                	jne    0x408ebb
408eda:	5e                   	pop    %esi
408edb:	8d 42 02             	lea    0x2(%edx),%eax
408ede:	5f                   	pop    %edi
408edf:	5d                   	pop    %ebp
408ee0:	c3                   	ret
408ee1:	8b ff                	mov    %edi,%edi
408ee3:	55                   	push   %ebp
408ee4:	8b ec                	mov    %esp,%ebp
408ee6:	51                   	push   %ecx
408ee7:	51                   	push   %ecx
408ee8:	56                   	push   %esi
408ee9:	ff 15 d0 f0 40 00    	call   *0x40f0d0
408eef:	8b f0                	mov    %eax,%esi
408ef1:	85 f6                	test   %esi,%esi
408ef3:	0f 84 85 00 00 00    	je     0x408f7e
408ef9:	53                   	push   %ebx
408efa:	56                   	push   %esi
408efb:	e8 aa ff ff ff       	call   0x408eaa
408f00:	33 db                	xor    %ebx,%ebx
408f02:	2b c6                	sub    %esi,%eax
408f04:	53                   	push   %ebx
408f05:	53                   	push   %ebx
408f06:	53                   	push   %ebx
408f07:	53                   	push   %ebx
408f08:	d1 f8                	sar    $1,%eax
408f0a:	50                   	push   %eax
408f0b:	56                   	push   %esi
408f0c:	53                   	push   %ebx
408f0d:	53                   	push   %ebx
408f0e:	89 45 f8             	mov    %eax,-0x8(%ebp)
408f11:	e8 28 ff ff ff       	call   0x408e3e
408f16:	83 c4 24             	add    $0x24,%esp
408f19:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f1c:	85 c0                	test   %eax,%eax
408f1e:	75 0b                	jne    0x408f2b
408f20:	56                   	push   %esi
408f21:	ff 15 d4 f0 40 00    	call   *0x40f0d4
408f27:	33 c0                	xor    %eax,%eax
408f29:	eb 52                	jmp    0x408f7d
408f2b:	57                   	push   %edi
408f2c:	50                   	push   %eax
408f2d:	e8 f9 e8 ff ff       	call   0x40782b
408f32:	8b f8                	mov    %eax,%edi
408f34:	59                   	pop    %ecx
408f35:	53                   	push   %ebx
408f36:	85 ff                	test   %edi,%edi
408f38:	75 11                	jne    0x408f4b
408f3a:	e8 3a e9 ff ff       	call   0x407879
408f3f:	59                   	pop    %ecx
408f40:	56                   	push   %esi
408f41:	ff 15 d4 f0 40 00    	call   *0x40f0d4
408f47:	33 c0                	xor    %eax,%eax
408f49:	eb 31                	jmp    0x408f7c
408f4b:	53                   	push   %ebx
408f4c:	ff 75 fc             	push   -0x4(%ebp)
408f4f:	57                   	push   %edi
408f50:	ff 75 f8             	push   -0x8(%ebp)
408f53:	56                   	push   %esi
408f54:	53                   	push   %ebx
408f55:	53                   	push   %ebx
408f56:	e8 e3 fe ff ff       	call   0x408e3e
408f5b:	83 c4 20             	add    $0x20,%esp
408f5e:	85 c0                	test   %eax,%eax
408f60:	75 08                	jne    0x408f6a
408f62:	57                   	push   %edi
408f63:	e8 11 e9 ff ff       	call   0x407879
408f68:	eb 08                	jmp    0x408f72
408f6a:	53                   	push   %ebx
408f6b:	e8 09 e9 ff ff       	call   0x407879
408f70:	8b df                	mov    %edi,%ebx
408f72:	59                   	pop    %ecx
408f73:	56                   	push   %esi
408f74:	ff 15 d4 f0 40 00    	call   *0x40f0d4
408f7a:	8b c3                	mov    %ebx,%eax
408f7c:	5f                   	pop    %edi
408f7d:	5b                   	pop    %ebx
408f7e:	5e                   	pop    %esi
408f7f:	c9                   	leave
408f80:	c3                   	ret
408f81:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
408f87:	8b 40 30             	mov    0x30(%eax),%eax
408f8a:	8b 40 68             	mov    0x68(%eax),%eax
408f8d:	c1 e8 08             	shr    $0x8,%eax
408f90:	24 01                	and    $0x1,%al
408f92:	c3                   	ret
408f93:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
408f99:	8b 40 30             	mov    0x30(%eax),%eax
408f9c:	8b 40 10             	mov    0x10(%eax),%eax
408f9f:	8b 40 08             	mov    0x8(%eax),%eax
408fa2:	c1 e8 1f             	shr    $0x1f,%eax
408fa5:	c3                   	ret
408fa6:	8b ff                	mov    %edi,%edi
408fa8:	55                   	push   %ebp
408fa9:	8b ec                	mov    %esp,%ebp
408fab:	51                   	push   %ecx
408fac:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408fb0:	e8 de ff ff ff       	call   0x408f93
408fb5:	84 c0                	test   %al,%al
408fb7:	75 09                	jne    0x408fc2
408fb9:	8d 45 fc             	lea    -0x4(%ebp),%eax
408fbc:	50                   	push   %eax
408fbd:	e8 6b 0d 00 00       	call   0x409d2d
408fc2:	33 c0                	xor    %eax,%eax
408fc4:	83 7d fc 01          	cmpl   $0x1,-0x4(%ebp)
408fc8:	0f 95 c0             	setne  %al
408fcb:	c9                   	leave
408fcc:	c3                   	ret
408fcd:	8b ff                	mov    %edi,%edi
408fcf:	55                   	push   %ebp
408fd0:	8b ec                	mov    %esp,%ebp
408fd2:	51                   	push   %ecx
408fd3:	51                   	push   %ecx
408fd4:	53                   	push   %ebx
408fd5:	56                   	push   %esi
408fd6:	6a 38                	push   $0x38
408fd8:	6a 40                	push   $0x40
408fda:	e8 84 e9 ff ff       	call   0x407963
408fdf:	8b f0                	mov    %eax,%esi
408fe1:	33 db                	xor    %ebx,%ebx
408fe3:	89 75 f8             	mov    %esi,-0x8(%ebp)
408fe6:	59                   	pop    %ecx
408fe7:	59                   	pop    %ecx
408fe8:	85 f6                	test   %esi,%esi
408fea:	75 04                	jne    0x408ff0
408fec:	8b f3                	mov    %ebx,%esi
408fee:	eb 4b                	jmp    0x40903b
408ff0:	8d 86 00 0e 00 00    	lea    0xe00(%esi),%eax
408ff6:	3b f0                	cmp    %eax,%esi
408ff8:	74 41                	je     0x40903b
408ffa:	57                   	push   %edi
408ffb:	8d 7e 20             	lea    0x20(%esi),%edi
408ffe:	8b f0                	mov    %eax,%esi
409000:	53                   	push   %ebx
409001:	68 a0 0f 00 00       	push   $0xfa0
409006:	8d 47 e0             	lea    -0x20(%edi),%eax
409009:	50                   	push   %eax
40900a:	e8 7c 0e 00 00       	call   0x409e8b
40900f:	83 4f f8 ff          	orl    $0xffffffff,-0x8(%edi)
409013:	80 67 0d f8          	andb   $0xf8,0xd(%edi)
409017:	89 1f                	mov    %ebx,(%edi)
409019:	8d 7f 38             	lea    0x38(%edi),%edi
40901c:	89 5f cc             	mov    %ebx,-0x34(%edi)
40901f:	8d 47 e0             	lea    -0x20(%edi),%eax
409022:	c7 47 d0 00 00 0a 0a 	movl   $0xa0a0000,-0x30(%edi)
409029:	c6 47 d4 0a          	movb   $0xa,-0x2c(%edi)
40902d:	89 5f d6             	mov    %ebx,-0x2a(%edi)
409030:	88 5f da             	mov    %bl,-0x26(%edi)
409033:	3b c6                	cmp    %esi,%eax
409035:	75 c9                	jne    0x409000
409037:	8b 75 f8             	mov    -0x8(%ebp),%esi
40903a:	5f                   	pop    %edi
40903b:	53                   	push   %ebx
40903c:	e8 38 e8 ff ff       	call   0x407879
409041:	59                   	pop    %ecx
409042:	8b c6                	mov    %esi,%eax
409044:	5e                   	pop    %esi
409045:	5b                   	pop    %ebx
409046:	c9                   	leave
409047:	c3                   	ret
409048:	8b ff                	mov    %edi,%edi
40904a:	55                   	push   %ebp
40904b:	8b ec                	mov    %esp,%ebp
40904d:	56                   	push   %esi
40904e:	8b 75 08             	mov    0x8(%ebp),%esi
409051:	85 f6                	test   %esi,%esi
409053:	74 25                	je     0x40907a
409055:	53                   	push   %ebx
409056:	8d 9e 00 0e 00 00    	lea    0xe00(%esi),%ebx
40905c:	57                   	push   %edi
40905d:	8b fe                	mov    %esi,%edi
40905f:	3b f3                	cmp    %ebx,%esi
409061:	74 0e                	je     0x409071
409063:	57                   	push   %edi
409064:	ff 15 6c f0 40 00    	call   *0x40f06c
40906a:	83 c7 38             	add    $0x38,%edi
40906d:	3b fb                	cmp    %ebx,%edi
40906f:	75 f2                	jne    0x409063
409071:	56                   	push   %esi
409072:	e8 02 e8 ff ff       	call   0x407879