408da6:	8b 77 10             	mov    0x10(%edi),%esi
408da9:	85 f6                	test   %esi,%esi
408dab:	0f 84 ac 01 00 00    	je     0x408f5d
408db1:	66 8b 47 02          	mov    0x2(%edi),%ax
408db5:	33 c9                	xor    %ecx,%ecx
408db7:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
408dbb:	83 c6 0a             	add    $0xa,%esi
408dbe:	8a 47 04             	mov    0x4(%edi),%al
408dc1:	8a f9                	mov    %cl,%bh
408dc3:	88 45 e2             	mov    %al,-0x1e(%ebp)
408dc6:	33 c0                	xor    %eax,%eax
408dc8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408dcb:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
408dcf:	89 4d ec             	mov    %ecx,-0x14(%ebp)
408dd2:	89 4d f0             	mov    %ecx,-0x10(%ebp)
408dd5:	88 7d ff             	mov    %bh,-0x1(%ebp)
408dd8:	eb 2c                	jmp    0x408e06
408dda:	ff 75 0c             	push   0xc(%ebp)
408ddd:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408de0:	ff 75 08             	push   0x8(%ebp)
408de3:	e8 c0 f7 ff ff       	call   0x4085a8
408de8:	85 c0                	test   %eax,%eax
408dea:	0f 88 f3 00 00 00    	js     0x408ee3
408df0:	8d 45 e0             	lea    -0x20(%ebp),%eax
408df3:	8b cf                	mov    %edi,%ecx
408df5:	0f 84 bf 00 00 00    	je     0x408eba
408dfb:	ff 75 f8             	push   -0x8(%ebp)
408dfe:	50                   	push   %eax
408dff:	e8 06 ff ff ff       	call   0x408d0a
408e04:	8b f0                	mov    %eax,%esi
408e06:	ff 77 14             	push   0x14(%edi)
408e09:	8d 45 f8             	lea    -0x8(%ebp),%eax
408e0c:	89 75 f8             	mov    %esi,-0x8(%ebp)
408e0f:	50                   	push   %eax
408e10:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408e13:	e8 e4 f8 ff ff       	call   0x4086fc
408e18:	8a d8                	mov    %al,%bl
408e1a:	84 db                	test   %bl,%bl
408e1c:	75 bc                	jne    0x408dda
408e1e:	8b 75 f8             	mov    -0x8(%ebp),%esi
408e21:	89 77 14             	mov    %esi,0x14(%edi)
408e24:	33 d2                	xor    %edx,%edx
408e26:	84 ff                	test   %bh,%bh
408e28:	75 21                	jne    0x408e4b
408e2a:	8b 45 0c             	mov    0xc(%ebp),%eax
408e2d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408e30:	21 55 ec             	and    %edx,-0x14(%ebp)
408e33:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
408e37:	8b 45 08             	mov    0x8(%ebp),%eax
408e3a:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
408e41:	89 45 f0             	mov    %eax,-0x10(%ebp)
408e44:	e8 c6 f7 ff ff       	call   0x40860f
408e49:	8b d0                	mov    %eax,%edx
408e4b:	66 8b 47 06          	mov    0x6(%edi),%ax
408e4f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408e52:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
408e56:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
408e5a:	8a 47 08             	mov    0x8(%edi),%al
408e5d:	88 45 ce             	mov    %al,-0x32(%ebp)
408e60:	8b 45 18             	mov    0x18(%ebp),%eax
408e63:	89 45 d0             	mov    %eax,-0x30(%ebp)
408e66:	8b 45 14             	mov    0x14(%ebp),%eax
408e69:	66 89 45 d4          	mov    %ax,-0x2c(%ebp)
408e6d:	8b 45 10             	mov    0x10(%ebp),%eax
408e70:	89 45 dc             	mov    %eax,-0x24(%ebp)
408e73:	e8 97 f7 ff ff       	call   0x40860f
408e78:	8b 5f 18             	mov    0x18(%edi),%ebx
408e7b:	03 c2                	add    %edx,%eax
408e7d:	89 45 f4             	mov    %eax,-0xc(%ebp)
408e80:	8b d3                	mov    %ebx,%edx
408e82:	8b 47 14             	mov    0x14(%edi),%eax
408e85:	2b d0                	sub    %eax,%edx
408e87:	3b c3                	cmp    %ebx,%eax
408e89:	1b c9                	sbb    %ecx,%ecx
408e8b:	23 ca                	and    %edx,%ecx
408e8d:	8b 55 f4             	mov    -0xc(%ebp),%edx
408e90:	3b ca                	cmp    %edx,%ecx
408e92:	0f 82 c5 00 00 00    	jb     0x408f5d
408e98:	2b da                	sub    %edx,%ebx
408e9a:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
408e9d:	2b de                	sub    %esi,%ebx
408e9f:	2b c6                	sub    %esi,%eax
408ea1:	74 71                	je     0x408f14
408ea3:	85 c9                	test   %ecx,%ecx
408ea5:	75 4c                	jne    0x408ef3
408ea7:	ff 15 c0 63 42 00    	call   *0x4263c0
408ead:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
408eb3:	e8 36 99 01 00       	call   0x4227ee
408eb8:	eb 5a                	jmp    0x408f14
408eba:	ff 75 18             	push   0x18(%ebp)
408ebd:	ff 75 14             	push   0x14(%ebp)
408ec0:	ff 75 10             	push   0x10(%ebp)
408ec3:	ff 75 f8             	push   -0x8(%ebp)
408ec6:	50                   	push   %eax
408ec7:	e8 0d fd ff ff       	call   0x408bd9
408ecc:	8b f0                	mov    %eax,%esi
408ece:	89 75 f8             	mov    %esi,-0x8(%ebp)
408ed1:	85 f6                	test   %esi,%esi
408ed3:	75 07                	jne    0x408edc
408ed5:	b0 01                	mov    $0x1,%al
408ed7:	e9 83 00 00 00       	jmp    0x408f5f
408edc:	b7 01                	mov    $0x1,%bh
408ede:	88 7d ff             	mov    %bh,-0x1(%ebp)
408ee1:	eb 03                	jmp    0x408ee6
408ee3:	89 75 f8             	mov    %esi,-0x8(%ebp)
408ee6:	84 db                	test   %bl,%bl
408ee8:	0f 85 36 ff ff ff    	jne    0x408e24
408eee:	e9 2e ff ff ff       	jmp    0x408e21
408ef3:	85 f6                	test   %esi,%esi
408ef5:	74 b0                	je     0x408ea7
408ef7:	3b d8                	cmp    %eax,%ebx
408ef9:	73 0e                	jae    0x408f09
408efb:	ff 15 c0 63 42 00    	call   *0x4263c0
408f01:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
408f07:	eb aa                	jmp    0x408eb3
408f09:	50                   	push   %eax
408f0a:	56                   	push   %esi
408f0b:	51                   	push   %ecx
408f0c:	e8 78 9c 01 00       	call   0x422b89
408f11:	83 c4 0c             	add    $0xc,%esp
408f14:	8b 47 14             	mov    0x14(%edi),%eax
408f17:	03 45 f4             	add    -0xc(%ebp),%eax
408f1a:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
408f1e:	89 47 14             	mov    %eax,0x14(%edi)
408f21:	75 0f                	jne    0x408f32
408f23:	50                   	push   %eax
408f24:	8d 45 f8             	lea    -0x8(%ebp),%eax
408f27:	50                   	push   %eax
408f28:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408f2b:	e8 03 f7 ff ff       	call   0x408633
408f30:	eb 13                	jmp    0x408f45
408f32:	80 7d e2 00          	cmpb   $0x0,-0x1e(%ebp)
408f36:	74 0d                	je     0x408f45
408f38:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408f3b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408f3e:	40                   	inc    %eax
408f3f:	50                   	push   %eax
408f40:	e8 8a f6 ff ff       	call   0x4085cf
408f45:	ff 77 14             	push   0x14(%edi)
408f48:	8d 4d f8             	lea    -0x8(%ebp),%ecx
408f4b:	51                   	push   %ecx
408f4c:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408f4f:	e8 df f6 ff ff       	call   0x408633
408f54:	c6 47 20 01          	movb   $0x1,0x20(%edi)
408f58:	e9 78 ff ff ff       	jmp    0x408ed5
408f5d:	32 c0                	xor    %al,%al
408f5f:	5f                   	pop    %edi
408f60:	5e                   	pop    %esi
408f61:	5b                   	pop    %ebx
408f62:	c9                   	leave
408f63:	c2 14 00             	ret    $0x14
408f66:	8b ff                	mov    %edi,%edi
408f68:	55                   	push   %ebp
408f69:	8b ec                	mov    %esp,%ebp
408f6b:	b8 60 10 00 00       	mov    $0x1060,%eax
408f70:	e8 db 9b 01 00       	call   0x422b50
408f75:	a1 10 42 42 00       	mov    0x424210,%eax
408f7a:	33 c5                	xor    %ebp,%eax
408f7c:	89 45 f8             	mov    %eax,-0x8(%ebp)
408f7f:	83 a5 e8 ef ff ff 00 	andl   $0x0,-0x1018(%ebp)
408f86:	83 a5 dc ef ff ff 00 	andl   $0x0,-0x1024(%ebp)
408f8d:	53                   	push   %ebx
408f8e:	8b d9                	mov    %ecx,%ebx
408f90:	8b 4d 08             	mov    0x8(%ebp),%ecx
408f93:	56                   	push   %esi
408f94:	57                   	push   %edi
408f95:	89 8d d8 ef ff ff    	mov    %ecx,-0x1028(%ebp)
408f9b:	8d 04 d3             	lea    (%ebx,%edx,8),%eax
408f9e:	89 85 d4 ef ff ff    	mov    %eax,-0x102c(%ebp)
408fa4:	0f b6 41 08          	movzbl 0x8(%ecx),%eax
408fa8:	50                   	push   %eax
408fa9:	0f b7 41 06          	movzwl 0x6(%ecx),%eax
408fad:	50                   	push   %eax
408fae:	0f b6 41 04          	movzbl 0x4(%ecx),%eax
408fb2:	50                   	push   %eax
408fb3:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
408fb7:	50                   	push   %eax
408fb8:	0f b7 01             	movzwl (%ecx),%eax
408fbb:	8d 8d a4 ef ff ff    	lea    -0x105c(%ebp),%ecx
408fc1:	50                   	push   %eax
408fc2:	e8 dc f7 ff ff       	call   0x4087a3
408fc7:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
408fcd:	c7 85 ec ef ff ff 00 	movl   $0x1000,-0x1014(%ebp)
408fd4:	10 00 00
408fd7:	50                   	push   %eax
408fd8:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
408fde:	50                   	push   %eax
408fdf:	8d 85 e4 ef ff ff    	lea    -0x101c(%ebp),%eax
408fe5:	50                   	push   %eax
408fe6:	51                   	push   %ecx
408fe7:	8b cb                	mov    %ebx,%ecx
408fe9:	e8 24 e9 ff ff       	call   0x407912
408fee:	8b f0                	mov    %eax,%esi
408ff0:	8b ce                	mov    %esi,%ecx
408ff2:	e8 54 da ff ff       	call   0x406a4b
408ff7:	85 f6                	test   %esi,%esi
408ff9:	74 10                	je     0x40900b
408ffb:	33 c0                	xor    %eax,%eax
408ffd:	21 85 e4 ef ff ff    	and    %eax,-0x101c(%ebp)
409003:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
409009:	eb 06                	jmp    0x409011
40900b:	8b 85 ec ef ff ff    	mov    -0x1014(%ebp),%eax
409011:	68 00 10 00 00       	push   $0x1000
409016:	50                   	push   %eax
409017:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
40901d:	50                   	push   %eax
40901e:	8d 8d a4 ef ff ff    	lea    -0x105c(%ebp),%ecx
409024:	e8 73 f8 ff ff       	call   0x40889c
409029:	80 bd c5 ef ff ff 00 	cmpb   $0x0,-0x103b(%ebp)
409030:	0f 85 00 01 00 00    	jne    0x409136
409036:	83 a5 e0 ef ff ff 00 	andl   $0x0,-0x1020(%ebp)
40903d:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
409043:	89 85 c8 ef ff ff    	mov    %eax,-0x1038(%ebp)
409049:	8d b5 c8 ef ff ff    	lea    -0x1038(%ebp),%esi
40904f:	83 ec 48             	sub    $0x48,%esp
409052:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
409058:	89 85 cc ef ff ff    	mov    %eax,-0x1034(%ebp)
40905e:	8b cc                	mov    %esp,%ecx
409060:	8d 85 a4 ef ff ff    	lea    -0x105c(%ebp),%eax
409066:	89 85 d0 ef ff ff    	mov    %eax,-0x1030(%ebp)
40906c:	8d 41 08             	lea    0x8(%ecx),%eax
40906f:	8d 78 04             	lea    0x4(%eax),%edi
409072:	c7 00 48 10 40 00    	movl   $0x401048,(%eax)
409078:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409079:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40907a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40907b:	89 41 40             	mov    %eax,0x40(%ecx)
40907e:	8b 8d d8 ef ff ff    	mov    -0x1028(%ebp),%ecx
409084:	e8 02 f9 ff ff       	call   0x40898b
409089:	80 bd c4 ef ff ff 00 	cmpb   $0x0,-0x103c(%ebp)
409090:	88 85 f3 ef ff ff    	mov    %al,-0x100d(%ebp)
409096:	74 47                	je     0x4090df
409098:	8b 8d b8 ef ff ff    	mov    -0x1048(%ebp),%ecx
40909e:	8b 95 b4 ef ff ff    	mov    -0x104c(%ebp),%edx
4090a4:	2b ca                	sub    %edx,%ecx
4090a6:	6a 01                	push   $0x1
4090a8:	ff b5 e4 ef ff ff    	push   -0x101c(%ebp)
4090ae:	51                   	push   %ecx
4090af:	51                   	push   %ecx
4090b0:	51                   	push   %ecx
4090b1:	8b cb                	mov    %ebx,%ecx
4090b3:	e8 af e8 ff ff       	call   0x407967
4090b8:	3d 01 00 00 c0       	cmp    $0xc0000001,%eax
4090bd:	74 61                	je     0x409120
4090bf:	85 c0                	test   %eax,%eax
4090c1:	74 1c                	je     0x4090df
4090c3:	8b 85 b8 ef ff ff    	mov    -0x1048(%ebp),%eax
4090c9:	8b 95 b4 ef ff ff    	mov    -0x104c(%ebp),%edx
4090cf:	2b c2                	sub    %edx,%eax
4090d1:	6a 00                	push   $0x0
4090d3:	6a 00                	push   $0x0
4090d5:	51                   	push   %ecx
4090d6:	51                   	push   %ecx
4090d7:	50                   	push   %eax
4090d8:	8b cb                	mov    %ebx,%ecx
4090da:	e8 88 e8 ff ff       	call   0x407967
4090df:	8b 85 e0 ef ff ff    	mov    -0x1020(%ebp),%eax
4090e5:	83 c3 08             	add    $0x8,%ebx
4090e8:	8b bd e8 ef ff ff    	mov    -0x1018(%ebp),%edi
4090ee:	89 85 dc ef ff ff    	mov    %eax,-0x1024(%ebp)
4090f4:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
4090fa:	e8 46 12 00 00       	call   0x40a345
4090ff:	80 bd f3 ef ff ff 00 	cmpb   $0x0,-0x100d(%ebp)
409106:	75 39                	jne    0x409141
409108:	3b 9d d4 ef ff ff    	cmp    -0x102c(%ebp),%ebx
40910e:	73 31                	jae    0x409141
409110:	83 ff 32             	cmp    $0x32,%edi
409113:	73 2c                	jae    0x409141
409115:	8b 8d d8 ef ff ff    	mov    -0x1028(%ebp),%ecx
40911b:	e9 84 fe ff ff       	jmp    0x408fa4
409120:	8b bd e8 ef ff ff    	mov    -0x1018(%ebp),%edi
409126:	47                   	inc    %edi
409127:	c6 85 f3 ef ff ff 00 	movb   $0x0,-0x100d(%ebp)
40912e:	89 bd e8 ef ff ff    	mov    %edi,-0x1018(%ebp)
409134:	eb be                	jmp    0x4090f4
409136:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40913c:	e8 04 12 00 00       	call   0x40a345
409141:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409144:	5f                   	pop    %edi
409145:	5e                   	pop    %esi
409146:	33 cd                	xor    %ebp,%ecx
409148:	5b                   	pop    %ebx
409149:	e8 22 87 01 00       	call   0x421870
40914e:	c9                   	leave
40914f:	c2 04 00             	ret    $0x4
409152:	8b ff                	mov    %edi,%edi
409154:	53                   	push   %ebx
409155:	56                   	push   %esi
409156:	6a 00                	push   $0x0
409158:	6a 04                	push   $0x4
40915a:	5b                   	pop    %ebx
40915b:	53                   	push   %ebx
40915c:	6a 01                	push   $0x1
40915e:	53                   	push   %ebx
40915f:	6a 00                	push   $0x0
409161:	8b f1                	mov    %ecx,%esi
409163:	e8 3b f6 ff ff       	call   0x4087a3
409168:	6a 02                	push   $0x2
40916a:	53                   	push   %ebx
40916b:	6a 01                	push   $0x1
40916d:	53                   	push   %ebx
40916e:	6a 00                	push   $0x0
409170:	8d 4e 24             	lea    0x24(%esi),%ecx
409173:	e8 2b f6 ff ff       	call   0x4087a3
409178:	6a 01                	push   $0x1
40917a:	6a 00                	push   $0x0
40917c:	6a 01                	push   $0x1
40917e:	53                   	push   %ebx
40917f:	6a 00                	push   $0x0
409181:	8d 4e 48             	lea    0x48(%esi),%ecx
409184:	e8 1a f6 ff ff       	call   0x4087a3
409189:	8b c6                	mov    %esi,%eax
40918b:	5e                   	pop    %esi
40918c:	5b                   	pop    %ebx
40918d:	c3                   	ret
40918e:	8b ff                	mov    %edi,%edi
409190:	55                   	push   %ebp
409191:	8b ec                	mov    %esp,%ebp
409193:	83 e4 f8             	and    $0xfffffff8,%esp
409196:	83 ec 34             	sub    $0x34,%esp
409199:	a1 10 42 42 00       	mov    0x424210,%eax
40919e:	33 c4                	xor    %esp,%eax
4091a0:	89 44 24 30          	mov    %eax,0x30(%esp)
4091a4:	56                   	push   %esi
4091a5:	8b f1                	mov    %ecx,%esi
4091a7:	80 7e 20 00          	cmpb   $0x0,0x20(%esi)
4091ab:	74 43                	je     0x4091f0
4091ad:	a1 18 1d 40 00       	mov    0x401d18,%eax
4091b2:	8d 4c 24 04          	lea    0x4(%esp),%ecx
4091b6:	89 44 24 04          	mov    %eax,0x4(%esp)
4091ba:	a1 1c 1d 40 00       	mov    0x401d1c,%eax
4091bf:	89 44 24 08          	mov    %eax,0x8(%esp)
4091c3:	a1 08 1d 40 00       	mov    0x401d08,%eax
4091c8:	89 44 24 0c          	mov    %eax,0xc(%esp)
4091cc:	a1 0c 1d 40 00       	mov    0x401d0c,%eax
4091d1:	56                   	push   %esi
4091d2:	89 44 24 14          	mov    %eax,0x14(%esp)
4091d6:	a1 40 1d 40 00       	mov    0x401d40,%eax
4091db:	6a 03                	push   $0x3
4091dd:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4091e1:	a1 44 1d 40 00       	mov    0x401d44,%eax
4091e6:	5a                   	pop    %edx
4091e7:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4091eb:	e8 76 fd ff ff       	call   0x408f66
4091f0:	80 7e 44 00          	cmpb   $0x0,0x44(%esi)
4091f4:	74 46                	je     0x40923c
4091f6:	a1 50 1d 40 00       	mov    0x401d50,%eax
4091fb:	8d 4c 24 04          	lea    0x4(%esp),%ecx
4091ff:	89 44 24 04          	mov    %eax,0x4(%esp)
409203:	a1 54 1d 40 00       	mov    0x401d54,%eax