408ef6:	8b c0                	mov    %eax,%eax
408ef8:	55                   	push   %ebp
408ef9:	8b ec                	mov    %esp,%ebp
408efb:	53                   	push   %ebx
408efc:	8b d8                	mov    %eax,%ebx
408efe:	8b c3                	mov    %ebx,%eax
408f00:	e8 d7 50 00 00       	call   0x40dfdc
408f05:	8b 55 08             	mov    0x8(%ebp),%edx
408f08:	89 50 10             	mov    %edx,0x10(%eax)
408f0b:	8b 55 0c             	mov    0xc(%ebp),%edx
408f0e:	89 50 14             	mov    %edx,0x14(%eax)
408f11:	5b                   	pop    %ebx
408f12:	5d                   	pop    %ebp
408f13:	c2 08 00             	ret    $0x8
408f16:	8b c0                	mov    %eax,%eax
408f18:	ff 25 80 b4 42 00    	jmp    *0x42b480
408f1e:	8b c0                	mov    %eax,%eax
408f20:	ff 25 7c b4 42 00    	jmp    *0x42b47c
408f26:	8b c0                	mov    %eax,%eax
408f28:	55                   	push   %ebp
408f29:	8b ec                	mov    %esp,%ebp
408f2b:	51                   	push   %ecx
408f2c:	53                   	push   %ebx
408f2d:	8b 45 10             	mov    0x10(%ebp),%eax
408f30:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f33:	8b 45 fc             	mov    -0x4(%ebp),%eax
408f36:	66 83 78 23 00       	cmpw   $0x0,0x23(%eax)
408f3b:	74 0c                	je     0x408f49
408f3d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408f40:	8b 55 fc             	mov    -0x4(%ebp),%edx
408f43:	8b 43 25             	mov    0x25(%ebx),%eax
408f46:	ff 53 21             	call   *0x21(%ebx)
408f49:	5b                   	pop    %ebx
408f4a:	59                   	pop    %ecx
408f4b:	5d                   	pop    %ebp
408f4c:	c2 14 00             	ret    $0x14
408f4f:	90                   	nop
408f50:	53                   	push   %ebx
408f51:	8b d8                	mov    %eax,%ebx
408f53:	8b 15 1c 4d 40 00    	mov    0x404d1c,%edx
408f59:	33 c0                	xor    %eax,%eax
408f5b:	e8 a0 12 00 00       	call   0x40a200
408f60:	89 58 1d             	mov    %ebx,0x1d(%eax)
408f63:	c6 40 2d 01          	movb   $0x1,0x2d(%eax)
408f67:	5b                   	pop    %ebx
408f68:	c3                   	ret
408f69:	8d 40 00             	lea    0x0(%eax),%eax
408f6c:	53                   	push   %ebx
408f6d:	8b d8                	mov    %eax,%ebx
408f6f:	8b c3                	mov    %ebx,%eax
408f71:	33 d2                	xor    %edx,%edx
408f73:	8b 08                	mov    (%eax),%ecx
408f75:	ff 51 08             	call   *0x8(%ecx)
408f78:	ff 05 e4 63 42 00    	incl   0x4263e4
408f7e:	8b c3                	mov    %ebx,%eax
408f80:	e8 2b 36 00 00       	call   0x40c5b0
408f85:	8b c3                	mov    %ebx,%eax
408f87:	5b                   	pop    %ebx
408f88:	c3                   	ret
408f89:	8d 40 00             	lea    0x0(%eax),%eax
408f8c:	53                   	push   %ebx
408f8d:	56                   	push   %esi
408f8e:	8b da                	mov    %edx,%ebx
408f90:	8b f0                	mov    %eax,%esi
408f92:	8b 46 18             	mov    0x18(%esi),%eax
408f95:	85 c0                	test   %eax,%eax
408f97:	0f 95 c2             	setne  %dl
408f9a:	32 d3                	xor    %bl,%dl
408f9c:	74 30                	je     0x408fce
408f9e:	85 c0                	test   %eax,%eax
408fa0:	75 21                	jne    0x408fc3
408fa2:	33 c0                	xor    %eax,%eax
408fa4:	8a 46 2d             	mov    0x2d(%esi),%al
408fa7:	83 c8 00             	or     $0x0,%eax
408faa:	50                   	push   %eax
408fab:	56                   	push   %esi
408fac:	68 28 8f 40 00       	push   $0x408f28
408fb1:	8b 46 29             	mov    0x29(%esi),%eax
408fb4:	50                   	push   %eax
408fb5:	8b 46 1d             	mov    0x1d(%esi),%eax
408fb8:	50                   	push   %eax
408fb9:	e8 5a ff ff ff       	call   0x408f18
408fbe:	89 46 18             	mov    %eax,0x18(%esi)
408fc1:	eb 0b                	jmp    0x408fce
408fc3:	50                   	push   %eax
408fc4:	e8 57 ff ff ff       	call   0x408f20
408fc9:	33 c0                	xor    %eax,%eax
408fcb:	89 46 18             	mov    %eax,0x18(%esi)
408fce:	88 5e 1c             	mov    %bl,0x1c(%esi)
408fd1:	5e                   	pop    %esi
408fd2:	5b                   	pop    %ebx
408fd3:	c3                   	ret
408fd4:	c3                   	ret
408fd5:	8d 40 00             	lea    0x0(%eax),%eax
408fd8:	53                   	push   %ebx
408fd9:	56                   	push   %esi
408fda:	8b d8                	mov    %eax,%ebx
408fdc:	8b 73 24             	mov    0x24(%ebx),%esi
408fdf:	85 f6                	test   %esi,%esi
408fe1:	74 0f                	je     0x408ff2
408fe3:	8b c6                	mov    %esi,%eax
408fe5:	e8 0a 19 00 00       	call   0x40a8f4
408fea:	8b 53 2c             	mov    0x2c(%ebx),%edx
408fed:	e8 0a c4 ff ff       	call   0x4053fc
408ff2:	5e                   	pop    %esi
408ff3:	5b                   	pop    %ebx
408ff4:	c3                   	ret
408ff5:	8d 40 00             	lea    0x0(%eax),%eax
408ff8:	53                   	push   %ebx
408ff9:	56                   	push   %esi
408ffa:	51                   	push   %ecx
408ffb:	8b d8                	mov    %eax,%ebx
408ffd:	33 f6                	xor    %esi,%esi
408fff:	8b c3                	mov    %ebx,%eax
409001:	e8 5a 3b 00 00       	call   0x40cb60
409006:	84 c0                	test   %al,%al
409008:	75 7e                	jne    0x409088
40900a:	8b c3                	mov    %ebx,%eax
40900c:	ff 53 34             	call   *0x34(%ebx)
40900f:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
409013:	75 70                	jne    0x409085
409015:	8b 43 41             	mov    0x41(%ebx),%eax
409018:	85 c0                	test   %eax,%eax
40901a:	74 69                	je     0x409085
40901c:	89 04 24             	mov    %eax,(%esp)
40901f:	6a 00                	push   $0x0
409021:	e8 22 ba ff ff       	call   0x404a48
409026:	8b f0                	mov    %eax,%esi
409028:	33 c0                	xor    %eax,%eax
40902a:	89 43 41             	mov    %eax,0x41(%ebx)
40902d:	6a 00                	push   $0x0
40902f:	6a 00                	push   $0x0
409031:	8d 43 41             	lea    0x41(%ebx),%eax
409034:	50                   	push   %eax
409035:	6a 00                	push   $0x0
409037:	8b 43 3d             	mov    0x3d(%ebx),%eax
40903a:	50                   	push   %eax
40903b:	56                   	push   %esi
40903c:	e8 97 b8 ff ff       	call   0x4048d8
409041:	89 43 20             	mov    %eax,0x20(%ebx)
409044:	56                   	push   %esi
409045:	6a 00                	push   $0x0
409047:	e8 ac ba ff ff       	call   0x404af8
40904c:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
409050:	74 2d                	je     0x40907f
409052:	8b 4b 45             	mov    0x45(%ebx),%ecx
409055:	8b 53 41             	mov    0x41(%ebx),%edx
409058:	8b 04 24             	mov    (%esp),%eax
40905b:	e8 e4 98 ff ff       	call   0x402944
409060:	80 7b 72 00          	cmpb   $0x0,0x72(%ebx)
409064:	75 09                	jne    0x40906f
409066:	8b 04 24             	mov    (%esp),%eax
409069:	50                   	push   %eax
40906a:	e8 b9 b7 ff ff       	call   0x404828
40906f:	c6 43 72 01          	movb   $0x1,0x72(%ebx)
409073:	33 c0                	xor    %eax,%eax
409075:	89 43 56             	mov    %eax,0x56(%ebx)
409078:	33 c0                	xor    %eax,%eax
40907a:	89 43 5a             	mov    %eax,0x5a(%ebx)
40907d:	eb 06                	jmp    0x409085
40907f:	8b 04 24             	mov    (%esp),%eax
409082:	89 43 41             	mov    %eax,0x41(%ebx)
409085:	8b 73 20             	mov    0x20(%ebx),%esi
409088:	8b c6                	mov    %esi,%eax
40908a:	5a                   	pop    %edx
40908b:	5e                   	pop    %esi
40908c:	5b                   	pop    %ebx
40908d:	c3                   	ret
40908e:	8b c0                	mov    %eax,%eax
409090:	55                   	push   %ebp
409091:	8b ec                	mov    %esp,%ebp
409093:	83 c4 e0             	add    $0xffffffe0,%esp
409096:	53                   	push   %ebx
409097:	56                   	push   %esi
409098:	57                   	push   %edi
409099:	8b 5d 08             	mov    0x8(%ebp),%ebx
40909c:	8b 5b ec             	mov    -0x14(%ebx),%ebx
40909f:	c6 43 3c 00          	movb   $0x0,0x3c(%ebx)
4090a3:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
4090a7:	8b 45 08             	mov    0x8(%ebp),%eax
4090aa:	8d 50 f2             	lea    -0xe(%eax),%edx
4090ad:	8b 45 08             	mov    0x8(%ebp),%eax
4090b0:	8b 40 e8             	mov    -0x18(%eax),%eax
4090b3:	b9 0e 00 00 00       	mov    $0xe,%ecx
4090b8:	e8 a3 d9 ff ff       	call   0x406a60
4090bd:	83 f8 0e             	cmp    $0xe,%eax
4090c0:	0f 85 d3 02 00 00    	jne    0x409399
4090c6:	33 ff                	xor    %edi,%edi
4090c8:	33 c0                	xor    %eax,%eax
4090ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
4090cd:	8b 45 08             	mov    0x8(%ebp),%eax
4090d0:	66 81 78 f2 42 4d    	cmpw   $0x4d42,-0xe(%eax)
4090d6:	74 15                	je     0x4090ed
4090d8:	8b 45 08             	mov    0x8(%ebp),%eax
4090db:	8b 50 e4             	mov    -0x1c(%eax),%edx
4090de:	8b 45 08             	mov    0x8(%ebp),%eax
4090e1:	8b 40 e8             	mov    -0x18(%eax),%eax
4090e4:	33 c9                	xor    %ecx,%ecx
4090e6:	e8 65 da ff ff       	call   0x406b50
4090eb:	eb 12                	jmp    0x4090ff
4090ed:	8b 45 08             	mov    0x8(%ebp),%eax
4090f0:	8b 78 fc             	mov    -0x4(%eax),%edi
4090f3:	83 ef 0e             	sub    $0xe,%edi
4090f6:	8b 45 08             	mov    0x8(%ebp),%eax
4090f9:	8b 40 f4             	mov    -0xc(%eax),%eax
4090fc:	89 45 f8             	mov    %eax,-0x8(%ebp)
4090ff:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
409106:	c7 45 ec 28 00 00 00 	movl   $0x28,-0x14(%ebp)
40910d:	8b 45 ec             	mov    -0x14(%ebp),%eax
409110:	05 00 04 00 00       	add    $0x400,%eax
409115:	e8 c2 18 00 00       	call   0x40a9dc
40911a:	8b f0                	mov    %eax,%esi
40911c:	89 73 3d             	mov    %esi,0x3d(%ebx)
40911f:	8b d6                	mov    %esi,%edx
409121:	8b 45 08             	mov    0x8(%ebp),%eax
409124:	8b 40 e8             	mov    -0x18(%eax),%eax
409127:	b9 04 00 00 00       	mov    $0x4,%ecx
40912c:	e8 2f d9 ff ff       	call   0x406a60
409131:	83 f8 04             	cmp    $0x4,%eax
409134:	0f 85 5f 02 00 00    	jne    0x409399
40913a:	8b 73 3d             	mov    0x3d(%ebx),%esi
40913d:	8b 06                	mov    (%esi),%eax
40913f:	3b 45 ec             	cmp    -0x14(%ebp),%eax
409142:	75 24                	jne    0x409168
409144:	8b 4d ec             	mov    -0x14(%ebp),%ecx
409147:	83 e9 04             	sub    $0x4,%ecx
40914a:	8d 56 04             	lea    0x4(%esi),%edx
40914d:	8b 45 08             	mov    0x8(%ebp),%eax
409150:	8b 40 e8             	mov    -0x18(%eax),%eax
409153:	e8 08 d9 ff ff       	call   0x406a60
409158:	8b 55 ec             	mov    -0x14(%ebp),%edx
40915b:	83 ea 04             	sub    $0x4,%edx
40915e:	3b c2                	cmp    %edx,%eax
409160:	0f 85 33 02 00 00    	jne    0x409399
409166:	eb 5c                	jmp    0x4091c4
409168:	83 f8 0c             	cmp    $0xc,%eax
40916b:	0f 85 28 02 00 00    	jne    0x409399
409171:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
409178:	c7 45 ec 0c 00 00 00 	movl   $0xc,-0x14(%ebp)
40917f:	8b 75 ec             	mov    -0x14(%ebp),%esi
409182:	83 ee 04             	sub    $0x4,%esi
409185:	8b ce                	mov    %esi,%ecx
409187:	8d 55 e4             	lea    -0x1c(%ebp),%edx
40918a:	8b 45 08             	mov    0x8(%ebp),%eax
40918d:	8b 40 e8             	mov    -0x18(%eax),%eax
409190:	e8 cb d8 ff ff       	call   0x406a60
409195:	3b c6                	cmp    %esi,%eax
409197:	0f 85 fc 01 00 00    	jne    0x409399
40919d:	8b 43 3d             	mov    0x3d(%ebx),%eax
4091a0:	c7 00 28 00 00 00    	movl   $0x28,(%eax)
4091a6:	0f b7 55 e4          	movzwl -0x1c(%ebp),%edx
4091aa:	89 50 04             	mov    %edx,0x4(%eax)
4091ad:	0f b7 55 e6          	movzwl -0x1a(%ebp),%edx
4091b1:	89 50 08             	mov    %edx,0x8(%eax)
4091b4:	66 8b 55 e8          	mov    -0x18(%ebp),%dx
4091b8:	66 89 50 0c          	mov    %dx,0xc(%eax)
4091bc:	66 8b 55 ea          	mov    -0x16(%ebp),%dx
4091c0:	66 89 50 0e          	mov    %dx,0xe(%eax)
4091c4:	8b 73 3d             	mov    0x3d(%ebx),%esi
4091c7:	0f b7 46 0e          	movzwl 0xe(%esi),%eax
4091cb:	0f b7 56 0c          	movzwl 0xc(%esi),%edx
4091cf:	f7 ea                	imul   %edx
4091d1:	e8 92 34 00 00       	call   0x40c668
4091d6:	88 43 49             	mov    %al,0x49(%ebx)
4091d9:	8b 43 3d             	mov    0x3d(%ebx),%eax
4091dc:	8b 40 04             	mov    0x4(%eax),%eax
4091df:	89 43 1c             	mov    %eax,0x1c(%ebx)
4091e2:	8b 43 3d             	mov    0x3d(%ebx),%eax
4091e5:	8b 40 08             	mov    0x8(%eax),%eax
4091e8:	99                   	cltd
4091e9:	33 c2                	xor    %edx,%eax
4091eb:	2b c2                	sub    %edx,%eax
4091ed:	89 43 18             	mov    %eax,0x18(%ebx)
4091f0:	8b c3                	mov    %ebx,%eax
4091f2:	e8 3d 3c 00 00       	call   0x40ce34
4091f7:	8b f0                	mov    %eax,%esi
4091f9:	0f af 73 18          	imul   0x18(%ebx),%esi
4091fd:	89 73 45             	mov    %esi,0x45(%ebx)
409200:	56                   	push   %esi
409201:	6a 40                	push   $0x40
409203:	e8 18 b6 ff ff       	call   0x404820
409208:	89 43 41             	mov    %eax,0x41(%ebx)
40920b:	33 f6                	xor    %esi,%esi
40920d:	8b 53 3d             	mov    0x3d(%ebx),%edx
409210:	66 8b 42 0e          	mov    0xe(%edx),%ax
409214:	66 83 f8 08          	cmp    $0x8,%ax
409218:	77 1e                	ja     0x409238
40921a:	8b 4a 20             	mov    0x20(%edx),%ecx
40921d:	85 c9                	test   %ecx,%ecx
40921f:	76 07                	jbe    0x409228
409221:	8b f1                	mov    %ecx,%esi
409223:	c1 e6 02             	shl    $0x2,%esi
409226:	eb 25                	jmp    0x40924d
409228:	8b c8                	mov    %eax,%ecx
40922a:	b8 01 00 00 00       	mov    $0x1,%eax
40922f:	d3 e0                	shl    %cl,%eax
409231:	8b f0                	mov    %eax,%esi
409233:	c1 e6 02             	shl    $0x2,%esi
409236:	eb 15                	jmp    0x40924d
409238:	8a 43 49             	mov    0x49(%ebx),%al
40923b:	2c 05                	sub    $0x5,%al
40923d:	74 09                	je     0x409248
40923f:	8b 43 3d             	mov    0x3d(%ebx),%eax
409242:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
409246:	75 05                	jne    0x40924d
409248:	be 0c 00 00 00       	mov    $0xc,%esi
40924d:	85 ff                	test   %edi,%edi
40924f:	76 22                	jbe    0x409273
409251:	2b 7d ec             	sub    -0x14(%ebp),%edi
409254:	3b f7                	cmp    %edi,%esi
409256:	74 1b                	je     0x409273
409258:	8a 43 49             	mov    0x49(%ebx),%al
40925b:	04 fc                	add    $0xfc,%al
40925d:	2c 02                	sub    $0x2,%al
40925f:	73 04                	jae    0x409265
409261:	85 ff                	test   %edi,%edi
409263:	75 0e                	jne    0x409273
409265:	8b d7                	mov    %edi,%edx
409267:	b8 00 04 00 00       	mov    $0x400,%eax
40926c:	e8 37 be ff ff       	call   0x4050a8
409271:	8b f0                	mov    %eax,%esi
409273:	85 f6                	test   %esi,%esi
409275:	74 5b                	je     0x4092d2
409277:	3b f7                	cmp    %edi,%esi
409279:	77 02                	ja     0x40927d
40927b:	2b fe                	sub    %esi,%edi
40927d:	83 7d f4 04          	cmpl   $0x4,-0xc(%ebp)
409281:	75 1d                	jne    0x4092a0
409283:	8b 43 3d             	mov    0x3d(%ebx),%eax
409286:	8d 50 28             	lea    0x28(%eax),%edx
409289:	8b 45 08             	mov    0x8(%ebp),%eax
40928c:	8b 40 e8             	mov    -0x18(%eax),%eax
40928f:	8b ce                	mov    %esi,%ecx
409291:	e8 ca d7 ff ff       	call   0x406a60
409296:	3b c6                	cmp    %esi,%eax
409298:	0f 85 fb 00 00 00    	jne    0x409399
40929e:	eb 32                	jmp    0x4092d2
4092a0:	8b 43 3d             	mov    0x3d(%ebx),%eax
4092a3:	83 c0 28             	add    $0x28,%eax
4092a6:	89 45 f0             	mov    %eax,-0x10(%ebp)
4092a9:	85 f6                	test   %esi,%esi
4092ab:	76 25                	jbe    0x4092d2
4092ad:	8b 55 f0             	mov    -0x10(%ebp),%edx
4092b0:	8b 45 08             	mov    0x8(%ebp),%eax
4092b3:	8b 40 e8             	mov    -0x18(%eax),%eax
4092b6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4092b9:	e8 a2 d7 ff ff       	call   0x406a60
4092be:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4092c1:	0f 85 d2 00 00 00    	jne    0x409399
4092c7:	2b 75 f4             	sub    -0xc(%ebp),%esi