40604e:	89 75 f8             	mov    %esi,-0x8(%ebp)
406051:	8b 75 08             	mov    0x8(%ebp),%esi
406054:	32 db                	xor    %bl,%bl
406056:	89 45 f0             	mov    %eax,-0x10(%ebp)
406059:	32 ff                	xor    %bh,%bh
40605b:	57                   	push   %edi
40605c:	8b ce                	mov    %esi,%ecx
40605e:	e8 43 01 00 00       	call   0x4061a6
406063:	0f b7 00             	movzwl (%eax),%eax
406066:	6a 20                	push   $0x20
406068:	59                   	pop    %ecx
406069:	66 3b c1             	cmp    %cx,%ax
40606c:	0f 84 19 01 00 00    	je     0x40618b
406072:	6a 09                	push   $0x9
406074:	59                   	pop    %ecx
406075:	66 3b c1             	cmp    %cx,%ax
406078:	0f 84 0d 01 00 00    	je     0x40618b
40607e:	8b 75 f8             	mov    -0x8(%ebp),%esi
406081:	8b 4d 08             	mov    0x8(%ebp),%ecx
406084:	57                   	push   %edi
406085:	e8 1c 01 00 00       	call   0x4061a6
40608a:	0f b7 00             	movzwl (%eax),%eax
40608d:	47                   	inc    %edi
40608e:	66 85 c0             	test   %ax,%ax
406091:	0f 84 b8 00 00 00    	je     0x40614f
406097:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
40609d:	0f 8d ac 00 00 00    	jge    0x40614f
4060a3:	6a 20                	push   $0x20
4060a5:	59                   	pop    %ecx
4060a6:	66 3b c1             	cmp    %cx,%ax
4060a9:	74 3c                	je     0x4060e7
4060ab:	6a 09                	push   $0x9
4060ad:	59                   	pop    %ecx
4060ae:	66 3b c1             	cmp    %cx,%ax
4060b1:	74 34                	je     0x4060e7
4060b3:	6a 22                	push   $0x22
4060b5:	59                   	pop    %ecx
4060b6:	66 3b c1             	cmp    %cx,%ax
4060b9:	74 0b                	je     0x4060c6
4060bb:	66 89 84 75 d4 df ff 	mov    %ax,-0x202c(%ebp,%esi,2)
4060c2:	ff
4060c3:	46                   	inc    %esi
4060c4:	eb bb                	jmp    0x406081
4060c6:	8b 4d 08             	mov    0x8(%ebp),%ecx
4060c9:	57                   	push   %edi
4060ca:	e8 d7 00 00 00       	call   0x4061a6
4060cf:	6a 22                	push   $0x22
4060d1:	59                   	pop    %ecx
4060d2:	66 39 08             	cmp    %cx,(%eax)
4060d5:	0f 84 f8 bd 06 00    	je     0x471ed3
4060db:	84 db                	test   %bl,%bl
4060dd:	74 66                	je     0x406145
4060df:	32 db                	xor    %bl,%bl
4060e1:	84 db                	test   %bl,%bl
4060e3:	74 9c                	je     0x406081
4060e5:	eb 60                	jmp    0x406147
4060e7:	80 fb 01             	cmp    $0x1,%bl
4060ea:	74 cf                	je     0x4060bb
4060ec:	33 c0                	xor    %eax,%eax
4060ee:	66 89 84 75 d4 df ff 	mov    %ax,-0x202c(%ebp,%esi,2)
4060f5:	ff
4060f6:	8d 85 d4 df ff ff    	lea    -0x202c(%ebp),%eax
4060fc:	50                   	push   %eax
4060fd:	8d 4d e0             	lea    -0x20(%ebp),%ecx
406100:	e8 14 6d 00 00       	call   0x40ce19
406105:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406108:	8d 45 e0             	lea    -0x20(%ebp),%eax
40610b:	50                   	push   %eax
40610c:	e8 be 03 00 00       	call   0x4064cf
406111:	8d 4d e0             	lea    -0x20(%ebp),%ecx
406114:	e8 1e 6a 00 00       	call   0x40cb37
406119:	33 f6                	xor    %esi,%esi
40611b:	89 75 f8             	mov    %esi,-0x8(%ebp)
40611e:	8b 75 08             	mov    0x8(%ebp),%esi
406121:	32 ff                	xor    %bh,%bh
406123:	57                   	push   %edi
406124:	8b ce                	mov    %esi,%ecx
406126:	e8 7b 00 00 00       	call   0x4061a6
40612b:	0f b7 00             	movzwl (%eax),%eax
40612e:	6a 20                	push   $0x20
406130:	59                   	pop    %ecx
406131:	66 3b c1             	cmp    %cx,%ax
406134:	74 0c                	je     0x406142
406136:	6a 09                	push   $0x9
406138:	59                   	pop    %ecx
406139:	66 3b c1             	cmp    %cx,%ax
40613c:	0f 85 3c ff ff ff    	jne    0x40607e
406142:	47                   	inc    %edi
406143:	eb de                	jmp    0x406123
406145:	b3 01                	mov    $0x1,%bl
406147:	89 75 f0             	mov    %esi,-0x10(%ebp)
40614a:	e9 32 ff ff ff       	jmp    0x406081
40614f:	85 f6                	test   %esi,%esi
406151:	74 3e                	je     0x406191
406153:	84 db                	test   %bl,%bl
406155:	75 44                	jne    0x40619b
406157:	33 c0                	xor    %eax,%eax
406159:	66 89 84 75 d4 df ff 	mov    %ax,-0x202c(%ebp,%esi,2)
406160:	ff
406161:	8d 85 d4 df ff ff    	lea    -0x202c(%ebp),%eax
406167:	50                   	push   %eax
406168:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40616b:	e8 a9 6c 00 00       	call   0x40ce19
406170:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406173:	8d 45 e0             	lea    -0x20(%ebp),%eax
406176:	50                   	push   %eax
406177:	e8 53 03 00 00       	call   0x4064cf
40617c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40617f:	e8 b3 69 00 00       	call   0x40cb37
406184:	5f                   	pop    %edi
406185:	5e                   	pop    %esi
406186:	5b                   	pop    %ebx
406187:	c9                   	leave
406188:	c2 04 00             	ret    $0x4
40618b:	47                   	inc    %edi
40618c:	e9 ca fe ff ff       	jmp    0x40605b
406191:	84 ff                	test   %bh,%bh
406193:	75 be                	jne    0x406153
406195:	84 db                	test   %bl,%bl
406197:	74 eb                	je     0x406184
406199:	eb b8                	jmp    0x406153
40619b:	8b 55 f0             	mov    -0x10(%ebp),%edx
40619e:	8d 4e ff             	lea    -0x1(%esi),%ecx
4061a1:	e9 55 bd 06 00       	jmp    0x471efb
4061a6:	55                   	push   %ebp
4061a7:	8b ec                	mov    %esp,%ebp
4061a9:	56                   	push   %esi
4061aa:	8b f1                	mov    %ecx,%esi
4061ac:	e8 49 5c 00 00       	call   0x40bdfa
4061b1:	8b 4e 04             	mov    0x4(%esi),%ecx
4061b4:	8b 55 08             	mov    0x8(%ebp),%edx
4061b7:	8b 06                	mov    (%esi),%eax
4061b9:	3b d1                	cmp    %ecx,%edx
4061bb:	73 08                	jae    0x4061c5
4061bd:	8d 04 50             	lea    (%eax,%edx,2),%eax
4061c0:	5e                   	pop    %esi
4061c1:	5d                   	pop    %ebp
4061c2:	c2 04 00             	ret    $0x4
4061c5:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4061c8:	eb f6                	jmp    0x4061c0
4061ca:	55                   	push   %ebp
4061cb:	8b ec                	mov    %esp,%ebp
4061cd:	83 ec 54             	sub    $0x54,%esp
4061d0:	53                   	push   %ebx
4061d1:	56                   	push   %esi
4061d2:	57                   	push   %edi
4061d3:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4061d6:	e8 c0 87 01 00       	call   0x41e99b
4061db:	ff 75 08             	push   0x8(%ebp)
4061de:	33 ff                	xor    %edi,%edi
4061e0:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4061e3:	89 7d fc             	mov    %edi,-0x4(%ebp)
4061e6:	e8 1e fe ff ff       	call   0x406009
4061eb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4061ee:	8a 45 d4             	mov    -0x2c(%ebp),%al
4061f1:	88 01                	mov    %al,(%ecx)
4061f3:	be 48 11 4c 00       	mov    $0x4c1148,%esi
4061f8:	8b ce                	mov    %esi,%ecx
4061fa:	e8 75 f1 ff ff       	call   0x405374
4061ff:	68 d8 da 49 00       	push   $0x49dad8
406204:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406207:	e8 0d 6c 00 00       	call   0x40ce19
40620c:	56                   	push   %esi
40620d:	8d 45 d8             	lea    -0x28(%ebp),%eax
406210:	50                   	push   %eax
406211:	e8 c5 d7 ff ff       	call   0x4039db
406216:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406219:	8a d8                	mov    %al,%bl
40621b:	e8 17 69 00 00       	call   0x40cb37
406220:	56                   	push   %esi
406221:	b9 20 11 4c 00       	mov    $0x4c1120,%ecx
406226:	e8 c2 0c 00 00       	call   0x406eed
40622b:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40622e:	50                   	push   %eax
40622f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406232:	e8 11 2e 00 00       	call   0x409048
406237:	68 10 db 49 00       	push   $0x49db10
40623c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40623f:	e8 d5 6b 00 00       	call   0x40ce19
406244:	57                   	push   %edi
406245:	6a 01                	push   $0x1
406247:	8d 45 d8             	lea    -0x28(%ebp),%eax
40624a:	50                   	push   %eax
40624b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40624e:	50                   	push   %eax
40624f:	e8 95 74 00 00       	call   0x40d6e9
406254:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406257:	e8 db 68 00 00       	call   0x40cb37
40625c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40625f:	e8 bc c9 00 00       	call   0x412c20
406264:	be 28 db 49 00       	mov    $0x49db28,%esi
406269:	56                   	push   %esi
40626a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40626d:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
406274:	89 7d d8             	mov    %edi,-0x28(%ebp)
406277:	e8 9d 6b 00 00       	call   0x40ce19
40627c:	57                   	push   %edi
40627d:	68 00 01 00 00       	push   $0x100
406282:	8d 45 d8             	lea    -0x28(%ebp),%eax
406285:	50                   	push   %eax
406286:	8d 45 ec             	lea    -0x14(%ebp),%eax
406289:	50                   	push   %eax
40628a:	e8 5a 74 00 00       	call   0x40d6e9
40628f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406292:	e8 a0 68 00 00       	call   0x40cb37
406297:	56                   	push   %esi
406298:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40629b:	e8 79 6b 00 00       	call   0x40ce19
4062a0:	57                   	push   %edi
4062a1:	8d 45 fc             	lea    -0x4(%ebp),%eax
4062a4:	50                   	push   %eax
4062a5:	8d 45 08             	lea    0x8(%ebp),%eax
4062a8:	50                   	push   %eax
4062a9:	8d 45 ec             	lea    -0x14(%ebp),%eax
4062ac:	50                   	push   %eax
4062ad:	e8 93 73 00 00       	call   0x40d645
4062b2:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4062b5:	e8 7d 68 00 00       	call   0x40cb37
4062ba:	8b 7d cc             	mov    -0x34(%ebp),%edi
4062bd:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4062c0:	e8 32 75 00 00       	call   0x40d7f7
4062c5:	8d 45 ec             	lea    -0x14(%ebp),%eax
4062c8:	50                   	push   %eax
4062c9:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4062cc:	e8 2b 01 00 00       	call   0x4063fc
4062d1:	8b 75 ec             	mov    -0x14(%ebp),%esi
4062d4:	56                   	push   %esi
4062d5:	68 38 db 49 00       	push   $0x49db38
4062da:	e8 c8 ac 01 00       	call   0x420fa7
4062df:	59                   	pop    %ecx
4062e0:	59                   	pop    %ecx
4062e1:	85 c0                	test   %eax,%eax
4062e3:	0f 84 1f b9 06 00    	je     0x471c08
4062e9:	56                   	push   %esi
4062ea:	68 54 db 49 00       	push   $0x49db54
4062ef:	e8 b3 ac 01 00       	call   0x420fa7
4062f4:	59                   	pop    %ecx
4062f5:	59                   	pop    %ecx
4062f6:	85 c0                	test   %eax,%eax
4062f8:	0f 84 26 b9 06 00    	je     0x471c24
4062fe:	56                   	push   %esi
4062ff:	68 7c db 49 00       	push   $0x49db7c
406304:	e8 9e ac 01 00       	call   0x420fa7
406309:	59                   	pop    %ecx
40630a:	59                   	pop    %ecx
40630b:	85 c0                	test   %eax,%eax
40630d:	0f 84 2d b9 06 00    	je     0x471c40
406313:	56                   	push   %esi
406314:	68 a4 db 49 00       	push   $0x49dba4
406319:	e8 89 ac 01 00       	call   0x420fa7
40631e:	59                   	pop    %ecx
40631f:	59                   	pop    %ecx
406320:	85 c0                	test   %eax,%eax
406322:	75 3b                	jne    0x40635f
406324:	84 db                	test   %bl,%bl
406326:	0f 85 62 b9 06 00    	jne    0x471c8e
40632c:	c7 05 30 11 4c 00 03 	movl   $0x3,0x4c1130
406333:	00 00 00
406336:	8d 45 ec             	lea    -0x14(%ebp),%eax
406339:	50                   	push   %eax
40633a:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40633d:	e8 ba 00 00 00       	call   0x4063fc
406342:	8d 45 ec             	lea    -0x14(%ebp),%eax
406345:	50                   	push   %eax
406346:	b9 48 11 4c 00       	mov    $0x4c1148,%ecx
40634b:	e8 9d 0b 00 00       	call   0x406eed
406350:	8d 45 ec             	lea    -0x14(%ebp),%eax
406353:	50                   	push   %eax
406354:	8d 4d b0             	lea    -0x50(%ebp),%ecx
406357:	83 ef 02             	sub    $0x2,%edi
40635a:	e8 9d 00 00 00       	call   0x4063fc
40635f:	83 3d 4c 11 4c 00 00 	cmpl   $0x0,0x4c114c
406366:	0f 84 2e b9 06 00    	je     0x471c9a
40636c:	85 ff                	test   %edi,%edi
40636e:	0f 88 81 00 00 00    	js     0x4063f5
406374:	8d 47 01             	lea    0x1(%edi),%eax
406377:	50                   	push   %eax
406378:	33 db                	xor    %ebx,%ebx
40637a:	43                   	inc    %ebx
40637b:	53                   	push   %ebx
40637c:	ff 75 08             	push   0x8(%ebp)
40637f:	e8 cc 5c 01 00       	call   0x41c050
406384:	83 c4 0c             	add    $0xc,%esp
406387:	6a 00                	push   $0x0
406389:	53                   	push   %ebx
40638a:	6a 00                	push   $0x0
40638c:	ff 75 08             	push   0x8(%ebp)
40638f:	e8 fc b7 00 00       	call   0x411b90
406394:	8b f0                	mov    %eax,%esi
406396:	83 c4 10             	add    $0x10,%esp
406399:	8b ce                	mov    %esi,%ecx
40639b:	e8 80 c8 00 00       	call   0x412c20
4063a0:	89 5e 0c             	mov    %ebx,0xc(%esi)
4063a3:	89 3e                	mov    %edi,(%esi)
4063a5:	33 f6                	xor    %esi,%esi
4063a7:	85 ff                	test   %edi,%edi
4063a9:	7e 2b                	jle    0x4063d6
4063ab:	46                   	inc    %esi
4063ac:	56                   	push   %esi
4063ad:	53                   	push   %ebx
4063ae:	6a 00                	push   $0x0
4063b0:	ff 75 08             	push   0x8(%ebp)
4063b3:	e8 d8 b7 00 00       	call   0x411b90
4063b8:	83 c4 10             	add    $0x10,%esp
4063bb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4063be:	51                   	push   %ecx
4063bf:	8b c8                	mov    %eax,%ecx
4063c1:	e8 a2 07 00 00       	call   0x406b68
4063c6:	8d 45 ec             	lea    -0x14(%ebp),%eax
4063c9:	50                   	push   %eax
4063ca:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4063cd:	e8 2a 00 00 00       	call   0x4063fc
4063d2:	3b f7                	cmp    %edi,%esi
4063d4:	7c d5                	jl     0x4063ab
4063d6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4063d9:	e8 59 67 00 00       	call   0x40cb37
4063de:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4063e1:	e8 3a c8 00 00       	call   0x412c20
4063e6:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4063e9:	e8 62 e8 ff ff       	call   0x404c50
4063ee:	5f                   	pop    %edi
4063ef:	5e                   	pop    %esi
4063f0:	5b                   	pop    %ebx
4063f1:	c9                   	leave
4063f2:	c2 08 00             	ret    $0x8
4063f5:	33 ff                	xor    %edi,%edi
4063f7:	e9 78 ff ff ff       	jmp    0x406374
4063fc:	55                   	push   %ebp
4063fd:	8b ec                	mov    %esp,%ebp
4063ff:	8b 11                	mov    (%ecx),%edx
406401:	3b 51 1c             	cmp    0x1c(%ecx),%edx
406404:	7d 19                	jge    0x40641f
406406:	8d 42 01             	lea    0x1(%edx),%eax
406409:	89 01                	mov    %eax,(%ecx)
40640b:	8b 41 18             	mov    0x18(%ecx),%eax
40640e:	8b 4d 08             	mov    0x8(%ebp),%ecx
406411:	ff 34 90             	push   (%eax,%edx,4)
406414:	e8 d4 0a 00 00       	call   0x406eed
406419:	b0 01                	mov    $0x1,%al
40641b:	5d                   	pop    %ebp
40641c:	c2 04 00             	ret    $0x4
40641f:	8b 4d 08             	mov    0x8(%ebp),%ecx
406422:	68 00 dc 49 00       	push   $0x49dc00
406427:	e8 37 06 00 00       	call   0x406a63
40642c:	32 c0                	xor    %al,%al
40642e:	eb eb                	jmp    0x40641b
406430:	55                   	push   %ebp
406431:	8b ec                	mov    %esp,%ebp
406433:	b8 08 00 01 00       	mov    $0x10008,%eax
406438:	e8 63 94 02 00       	call   0x42f8a0