409e5b:	85 c0                	test   %eax,%eax
409e5d:	59                   	pop    %ecx
409e5e:	75 07                	jne    0x409e67
409e60:	56                   	push   %esi
409e61:	e8 1d f8 ff ff       	call   0x409683
409e66:	59                   	pop    %ecx
409e67:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409e6a:	66 f7 46 0c 08 01    	testw  $0x108,0xc(%esi)
409e70:	57                   	push   %edi
409e71:	74 68                	je     0x409edb
409e73:	8b 46 08             	mov    0x8(%esi),%eax
409e76:	8b 3e                	mov    (%esi),%edi
409e78:	2b f8                	sub    %eax,%edi
409e7a:	8d 50 02             	lea    0x2(%eax),%edx
409e7d:	89 16                	mov    %edx,(%esi)
409e7f:	8b 56 18             	mov    0x18(%esi),%edx
409e82:	4a                   	dec    %edx
409e83:	4a                   	dec    %edx
409e84:	3b fb                	cmp    %ebx,%edi
409e86:	89 56 04             	mov    %edx,0x4(%esi)
409e89:	7e 10                	jle    0x409e9b
409e8b:	57                   	push   %edi
409e8c:	50                   	push   %eax
409e8d:	51                   	push   %ecx
409e8e:	e8 00 f6 ff ff       	call   0x409493
409e93:	83 c4 0c             	add    $0xc,%esp
409e96:	89 45 0c             	mov    %eax,0xc(%ebp)
409e99:	eb 35                	jmp    0x409ed0
409e9b:	83 f9 ff             	cmp    $0xffffffff,%ecx
409e9e:	74 19                	je     0x409eb9
409ea0:	8b d1                	mov    %ecx,%edx
409ea2:	8b c1                	mov    %ecx,%eax
409ea4:	c1 fa 05             	sar    $0x5,%edx
409ea7:	83 e0 1f             	and    $0x1f,%eax
409eaa:	8b 14 95 c0 1d 41 00 	mov    0x411dc0(,%edx,4),%edx
409eb1:	8d 04 c0             	lea    (%eax,%eax,8),%eax
409eb4:	8d 04 82             	lea    (%edx,%eax,4),%eax
409eb7:	eb 05                	jmp    0x409ebe
409eb9:	b8 08 0e 41 00       	mov    $0x410e08,%eax
409ebe:	f6 40 04 20          	testb  $0x20,0x4(%eax)
409ec2:	74 0c                	je     0x409ed0
409ec4:	6a 02                	push   $0x2
409ec6:	53                   	push   %ebx
409ec7:	51                   	push   %ecx
409ec8:	e8 8e fa ff ff       	call   0x40995b
409ecd:	83 c4 0c             	add    $0xc,%esp
409ed0:	8b 46 08             	mov    0x8(%esi),%eax
409ed3:	8b 5d 08             	mov    0x8(%ebp),%ebx
409ed6:	66 89 18             	mov    %bx,(%eax)
409ed9:	eb 1b                	jmp    0x409ef6
409edb:	8b 5d 08             	mov    0x8(%ebp),%ebx
409ede:	6a 02                	push   $0x2
409ee0:	5f                   	pop    %edi
409ee1:	8d 45 08             	lea    0x8(%ebp),%eax
409ee4:	57                   	push   %edi
409ee5:	50                   	push   %eax
409ee6:	51                   	push   %ecx
409ee7:	66 89 5d 08          	mov    %bx,0x8(%ebp)
409eeb:	e8 a3 f5 ff ff       	call   0x409493
409ef0:	83 c4 0c             	add    $0xc,%esp
409ef3:	89 45 0c             	mov    %eax,0xc(%ebp)
409ef6:	39 7d 0c             	cmp    %edi,0xc(%ebp)
409ef9:	5f                   	pop    %edi
409efa:	74 06                	je     0x409f02
409efc:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
409f00:	eb 0e                	jmp    0x409f10
409f02:	8b c3                	mov    %ebx,%eax
409f04:	25 ff ff 00 00       	and    $0xffff,%eax
409f09:	eb 0a                	jmp    0x409f15
409f0b:	0c 20                	or     $0x20,%al
409f0d:	89 46 0c             	mov    %eax,0xc(%esi)
409f10:	b8 ff ff 00 00       	mov    $0xffff,%eax
409f15:	5e                   	pop    %esi
409f16:	5b                   	pop    %ebx
409f17:	c9                   	leave
409f18:	c3                   	ret
409f19:	55                   	push   %ebp
409f1a:	8b ec                	mov    %esp,%ebp
409f1c:	53                   	push   %ebx
409f1d:	56                   	push   %esi
409f1e:	be dc 1e 41 00       	mov    $0x411edc,%esi
409f23:	57                   	push   %edi
409f24:	56                   	push   %esi
409f25:	ff 15 d0 d0 40 00    	call   *0x40d0d0
409f2b:	8b 3d cc d0 40 00    	mov    0x40d0cc,%edi
409f31:	33 db                	xor    %ebx,%ebx
409f33:	39 1d d8 1e 41 00    	cmp    %ebx,0x411ed8
409f39:	74 0e                	je     0x409f49
409f3b:	56                   	push   %esi
409f3c:	ff d7                	call   *%edi
409f3e:	6a 13                	push   $0x13
409f40:	e8 b0 d0 ff ff       	call   0x406ff5
409f45:	59                   	pop    %ecx
409f46:	6a 01                	push   $0x1
409f48:	5b                   	pop    %ebx
409f49:	ff 75 0c             	push   0xc(%ebp)
409f4c:	ff 75 08             	push   0x8(%ebp)
409f4f:	e8 1e 00 00 00       	call   0x409f72
409f54:	59                   	pop    %ecx
409f55:	89 45 0c             	mov    %eax,0xc(%ebp)
409f58:	85 db                	test   %ebx,%ebx
409f5a:	59                   	pop    %ecx
409f5b:	74 0a                	je     0x409f67
409f5d:	6a 13                	push   $0x13
409f5f:	e8 f2 d0 ff ff       	call   0x407056
409f64:	59                   	pop    %ecx
409f65:	eb 03                	jmp    0x409f6a
409f67:	56                   	push   %esi
409f68:	ff d7                	call   *%edi
409f6a:	8b 45 0c             	mov    0xc(%ebp),%eax
409f6d:	5f                   	pop    %edi
409f6e:	5e                   	pop    %esi
409f6f:	5b                   	pop    %ebx
409f70:	5d                   	pop    %ebp
409f71:	c3                   	ret
409f72:	55                   	push   %ebp
409f73:	8b ec                	mov    %esp,%ebp
409f75:	8b 45 08             	mov    0x8(%ebp),%eax
409f78:	85 c0                	test   %eax,%eax
409f7a:	75 02                	jne    0x409f7e
409f7c:	5d                   	pop    %ebp
409f7d:	c3                   	ret
409f7e:	83 3d 6c 18 41 00 00 	cmpl   $0x0,0x41186c
409f85:	75 12                	jne    0x409f99
409f87:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
409f8b:	66 81 f9 ff 00       	cmp    $0xff,%cx
409f90:	77 39                	ja     0x409fcb
409f92:	6a 01                	push   $0x1
409f94:	88 08                	mov    %cl,(%eax)
409f96:	58                   	pop    %eax
409f97:	5d                   	pop    %ebp
409f98:	c3                   	ret
409f99:	8d 4d 08             	lea    0x8(%ebp),%ecx
409f9c:	83 65 08 00          	andl   $0x0,0x8(%ebp)
409fa0:	51                   	push   %ecx
409fa1:	6a 00                	push   $0x0
409fa3:	ff 35 60 0d 41 00    	push   0x410d60
409fa9:	50                   	push   %eax
409faa:	8d 45 0c             	lea    0xc(%ebp),%eax
409fad:	6a 01                	push   $0x1
409faf:	50                   	push   %eax
409fb0:	68 20 02 00 00       	push   $0x220
409fb5:	ff 35 7c 18 41 00    	push   0x41187c
409fbb:	ff 15 18 d1 40 00    	call   *0x40d118
409fc1:	85 c0                	test   %eax,%eax
409fc3:	74 06                	je     0x409fcb
409fc5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
409fc9:	74 0e                	je     0x409fd9
409fcb:	e8 0e d1 ff ff       	call   0x4070de
409fd0:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
409fd6:	83 c8 ff             	or     $0xffffffff,%eax
409fd9:	5d                   	pop    %ebp
409fda:	c3                   	ret
409fdb:	56                   	push   %esi
409fdc:	8b 74 24 08          	mov    0x8(%esp),%esi
409fe0:	8b 46 0c             	mov    0xc(%esi),%eax
409fe3:	a8 83                	test   $0x83,%al
409fe5:	0f 84 d0 00 00 00    	je     0x40a0bb
409feb:	a8 40                	test   $0x40,%al
409fed:	0f 85 c8 00 00 00    	jne    0x40a0bb
409ff3:	a8 02                	test   $0x2,%al
409ff5:	74 0a                	je     0x40a001
409ff7:	0c 20                	or     $0x20,%al
409ff9:	89 46 0c             	mov    %eax,0xc(%esi)
409ffc:	e9 ba 00 00 00       	jmp    0x40a0bb
40a001:	0c 01                	or     $0x1,%al
40a003:	66 a9 0c 01          	test   $0x10c,%ax
40a007:	89 46 0c             	mov    %eax,0xc(%esi)
40a00a:	75 09                	jne    0x40a015
40a00c:	56                   	push   %esi
40a00d:	e8 71 f6 ff ff       	call   0x409683
40a012:	59                   	pop    %ecx
40a013:	eb 05                	jmp    0x40a01a
40a015:	8b 46 08             	mov    0x8(%esi),%eax
40a018:	89 06                	mov    %eax,(%esi)
40a01a:	ff 76 18             	push   0x18(%esi)
40a01d:	ff 76 08             	push   0x8(%esi)
40a020:	ff 76 10             	push   0x10(%esi)
40a023:	e8 fe 18 00 00       	call   0x40b926
40a028:	83 c4 0c             	add    $0xc,%esp
40a02b:	89 46 04             	mov    %eax,0x4(%esi)
40a02e:	85 c0                	test   %eax,%eax
40a030:	74 78                	je     0x40a0aa
40a032:	83 f8 01             	cmp    $0x1,%eax
40a035:	74 73                	je     0x40a0aa
40a037:	83 f8 ff             	cmp    $0xffffffff,%eax
40a03a:	74 6e                	je     0x40a0aa
40a03c:	8b 56 0c             	mov    0xc(%esi),%edx
40a03f:	f6 c2 82             	test   $0x82,%dl
40a042:	75 37                	jne    0x40a07b
40a044:	8b 4e 10             	mov    0x10(%esi),%ecx
40a047:	57                   	push   %edi
40a048:	83 f9 ff             	cmp    $0xffffffff,%ecx
40a04b:	74 17                	je     0x40a064
40a04d:	8b f9                	mov    %ecx,%edi
40a04f:	c1 ff 05             	sar    $0x5,%edi
40a052:	83 e1 1f             	and    $0x1f,%ecx
40a055:	8b 3c bd c0 1d 41 00 	mov    0x411dc0(,%edi,4),%edi
40a05c:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
40a05f:	8d 3c 8f             	lea    (%edi,%ecx,4),%edi
40a062:	eb 05                	jmp    0x40a069
40a064:	bf 08 0e 41 00       	mov    $0x410e08,%edi
40a069:	8a 4f 04             	mov    0x4(%edi),%cl
40a06c:	5f                   	pop    %edi
40a06d:	80 e1 82             	and    $0x82,%cl
40a070:	80 f9 82             	cmp    $0x82,%cl
40a073:	75 06                	jne    0x40a07b
40a075:	80 ce 20             	or     $0x20,%dh
40a078:	89 56 0c             	mov    %edx,0xc(%esi)
40a07b:	81 7e 18 00 02 00 00 	cmpl   $0x200,0x18(%esi)
40a082:	75 14                	jne    0x40a098
40a084:	8b 4e 0c             	mov    0xc(%esi),%ecx
40a087:	f6 c1 08             	test   $0x8,%cl
40a08a:	74 0c                	je     0x40a098
40a08c:	f6 c5 04             	test   $0x4,%ch
40a08f:	75 07                	jne    0x40a098
40a091:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
40a098:	8b 0e                	mov    (%esi),%ecx
40a09a:	83 c0 fe             	add    $0xfffffffe,%eax
40a09d:	89 46 04             	mov    %eax,0x4(%esi)
40a0a0:	0f b7 01             	movzwl (%ecx),%eax
40a0a3:	83 c1 02             	add    $0x2,%ecx
40a0a6:	89 0e                	mov    %ecx,(%esi)
40a0a8:	5e                   	pop    %esi
40a0a9:	c3                   	ret
40a0aa:	f7 d8                	neg    %eax
40a0ac:	1b c0                	sbb    %eax,%eax
40a0ae:	83 e0 10             	and    $0x10,%eax
40a0b1:	83 c0 10             	add    $0x10,%eax
40a0b4:	09 46 0c             	or     %eax,0xc(%esi)
40a0b7:	83 66 04 00          	andl   $0x0,0x4(%esi)
40a0bb:	b8 ff ff 00 00       	mov    $0xffff,%eax
40a0c0:	5e                   	pop    %esi
40a0c1:	c3                   	ret
40a0c2:	55                   	push   %ebp
40a0c3:	8b ec                	mov    %esp,%ebp
40a0c5:	53                   	push   %ebx
40a0c6:	56                   	push   %esi
40a0c7:	be dc 1e 41 00       	mov    $0x411edc,%esi
40a0cc:	57                   	push   %edi
40a0cd:	56                   	push   %esi
40a0ce:	ff 15 d0 d0 40 00    	call   *0x40d0d0
40a0d4:	8b 3d cc d0 40 00    	mov    0x40d0cc,%edi
40a0da:	33 db                	xor    %ebx,%ebx
40a0dc:	39 1d d8 1e 41 00    	cmp    %ebx,0x411ed8
40a0e2:	74 0e                	je     0x40a0f2
40a0e4:	56                   	push   %esi
40a0e5:	ff d7                	call   *%edi
40a0e7:	6a 13                	push   $0x13
40a0e9:	e8 07 cf ff ff       	call   0x406ff5
40a0ee:	59                   	pop    %ecx
40a0ef:	6a 01                	push   $0x1
40a0f1:	5b                   	pop    %ebx
40a0f2:	ff 75 10             	push   0x10(%ebp)
40a0f5:	ff 75 0c             	push   0xc(%ebp)
40a0f8:	ff 75 08             	push   0x8(%ebp)
40a0fb:	e8 1f 00 00 00       	call   0x40a11f
40a100:	83 c4 0c             	add    $0xc,%esp
40a103:	89 45 10             	mov    %eax,0x10(%ebp)
40a106:	85 db                	test   %ebx,%ebx
40a108:	74 0a                	je     0x40a114
40a10a:	6a 13                	push   $0x13
40a10c:	e8 45 cf ff ff       	call   0x407056
40a111:	59                   	pop    %ecx
40a112:	eb 03                	jmp    0x40a117
40a114:	56                   	push   %esi
40a115:	ff d7                	call   *%edi
40a117:	8b 45 10             	mov    0x10(%ebp),%eax
40a11a:	5f                   	pop    %edi
40a11b:	5e                   	pop    %esi
40a11c:	5b                   	pop    %ebx
40a11d:	5d                   	pop    %ebp
40a11e:	c3                   	ret
40a11f:	55                   	push   %ebp
40a120:	8b ec                	mov    %esp,%ebp
40a122:	53                   	push   %ebx
40a123:	56                   	push   %esi
40a124:	8b 75 0c             	mov    0xc(%ebp),%esi
40a127:	33 db                	xor    %ebx,%ebx
40a129:	3b f3                	cmp    %ebx,%esi
40a12b:	74 15                	je     0x40a142
40a12d:	39 5d 10             	cmp    %ebx,0x10(%ebp)
40a130:	74 10                	je     0x40a142
40a132:	8a 06                	mov    (%esi),%al
40a134:	3a c3                	cmp    %bl,%al
40a136:	75 10                	jne    0x40a148
40a138:	8b 45 08             	mov    0x8(%ebp),%eax
40a13b:	3b c3                	cmp    %ebx,%eax
40a13d:	74 03                	je     0x40a142
40a13f:	66 89 18             	mov    %bx,(%eax)
40a142:	33 c0                	xor    %eax,%eax
40a144:	5e                   	pop    %esi
40a145:	5b                   	pop    %ebx
40a146:	5d                   	pop    %ebp
40a147:	c3                   	ret
40a148:	39 1d 6c 18 41 00    	cmp    %ebx,0x41186c
40a14e:	75 13                	jne    0x40a163
40a150:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a153:	3b cb                	cmp    %ebx,%ecx
40a155:	74 07                	je     0x40a15e
40a157:	66 0f b6 c0          	movzbw %al,%ax
40a15b:	66 89 01             	mov    %ax,(%ecx)
40a15e:	6a 01                	push   $0x1
40a160:	58                   	pop    %eax
40a161:	eb e1                	jmp    0x40a144
40a163:	8b 0d ec 09 41 00    	mov    0x4109ec,%ecx
40a169:	0f b6 c0             	movzbl %al,%eax
40a16c:	f6 44 41 01 80       	testb  $0x80,0x1(%ecx,%eax,2)
40a171:	74 4e                	je     0x40a1c1
40a173:	a1 60 0d 41 00       	mov    0x410d60,%eax
40a178:	83 f8 01             	cmp    $0x1,%eax
40a17b:	7e 2a                	jle    0x40a1a7
40a17d:	39 45 10             	cmp    %eax,0x10(%ebp)
40a180:	7c 2f                	jl     0x40a1b1
40a182:	33 c9                	xor    %ecx,%ecx
40a184:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40a187:	0f 95 c1             	setne  %cl
40a18a:	51                   	push   %ecx
40a18b:	ff 75 08             	push   0x8(%ebp)
40a18e:	50                   	push   %eax
40a18f:	56                   	push   %esi
40a190:	6a 09                	push   $0x9
40a192:	ff 35 7c 18 41 00    	push   0x41187c
40a198:	ff 15 d4 d0 40 00    	call   *0x40d0d4
40a19e:	85 c0                	test   %eax,%eax
40a1a0:	a1 60 0d 41 00       	mov    0x410d60,%eax
40a1a5:	75 9d                	jne    0x40a144
40a1a7:	39 45 10             	cmp    %eax,0x10(%ebp)
40a1aa:	72 05                	jb     0x40a1b1
40a1ac:	38 5e 01             	cmp    %bl,0x1(%esi)
40a1af:	75 93                	jne    0x40a144
40a1b1:	e8 28 cf ff ff       	call   0x4070de
40a1b6:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40a1bc:	83 c8 ff             	or     $0xffffffff,%eax
40a1bf:	eb 83                	jmp    0x40a144
40a1c1:	33 c0                	xor    %eax,%eax
40a1c3:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40a1c6:	0f 95 c0             	setne  %al
40a1c9:	50                   	push   %eax
40a1ca:	ff 75 08             	push   0x8(%ebp)
40a1cd:	6a 01                	push   $0x1
40a1cf:	56                   	push   %esi
40a1d0:	6a 09                	push   $0x9
40a1d2:	ff 35 7c 18 41 00    	push   0x41187c
40a1d8:	ff 15 d4 d0 40 00    	call   *0x40d0d4
40a1de:	85 c0                	test   %eax,%eax
40a1e0:	0f 85 78 ff ff ff    	jne    0x40a15e
40a1e6:	eb c9                	jmp    0x40a1b1
40a1e8:	cc                   	int3
40a1e9:	cc                   	int3