40b0f9:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b0fc:	83 ce ff             	or     $0xffffffff,%esi
40b0ff:	56                   	push   %esi
40b100:	68 80 24 40 00       	push   $0x402480
40b105:	56                   	push   %esi
40b106:	50                   	push   %eax
40b107:	6a 01                	push   $0x1
40b109:	6a 7f                	push   $0x7f
40b10b:	ff 15 f4 20 41 00    	call   *0x4120f4
40b111:	83 f8 02             	cmp    $0x2,%eax
40b114:	75 09                	jne    0x40b11f
40b116:	c7 45 b8 01 00 00 00 	movl   $0x1,-0x48(%ebp)
40b11d:	eb 27                	jmp    0x40b146
40b11f:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b123:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b126:	73 03                	jae    0x40b12b
40b128:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b12b:	56                   	push   %esi
40b12c:	68 8c 24 40 00       	push   $0x40248c
40b131:	56                   	push   %esi
40b132:	50                   	push   %eax
40b133:	6a 01                	push   $0x1
40b135:	6a 7f                	push   $0x7f
40b137:	ff 15 f4 20 41 00    	call   *0x4120f4
40b13d:	83 f8 02             	cmp    $0x2,%eax
40b140:	75 2b                	jne    0x40b16d
40b142:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
40b146:	8d 45 b8             	lea    -0x48(%ebp),%eax
40b149:	c7 45 c4 01 00 00 00 	movl   $0x1,-0x3c(%ebp)
40b150:	50                   	push   %eax
40b151:	6a 00                	push   $0x0
40b153:	ff 75 1c             	push   0x1c(%ebp)
40b156:	ff 75 c8             	push   -0x38(%ebp)
40b159:	ff 15 18 20 41 00    	call   *0x412018
40b15f:	85 c0                	test   %eax,%eax
40b161:	75 0f                	jne    0x40b172
40b163:	ff 15 70 20 41 00    	call   *0x412070
40b169:	8b f0                	mov    %eax,%esi
40b16b:	eb 07                	jmp    0x40b174
40b16d:	6a 57                	push   $0x57
40b16f:	5e                   	pop    %esi
40b170:	eb 02                	jmp    0x40b174
40b172:	33 f6                	xor    %esi,%esi
40b174:	6a 00                	push   $0x0
40b176:	6a 01                	push   $0x1
40b178:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b17b:	e8 70 b3 ff ff       	call   0x4064f0
40b180:	8b c6                	mov    %esi,%eax
40b182:	e8 a9 34 00 00       	call   0x40e630
40b187:	c2 18 00             	ret    $0x18
40b18a:	6a 34                	push   $0x34
40b18c:	b8 f5 f1 40 00       	mov    $0x40f1f5,%eax
40b191:	e8 eb 34 00 00       	call   0x40e681
40b196:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b199:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b19c:	8b 75 10             	mov    0x10(%ebp),%esi
40b19f:	8b 55 14             	mov    0x14(%ebp),%edx
40b1a2:	8b 45 18             	mov    0x18(%ebp),%eax
40b1a5:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40b1a9:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40b1ac:	33 db                	xor    %ebx,%ebx
40b1ae:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b1b5:	66 89 5d d8          	mov    %bx,-0x28(%ebp)
40b1b9:	21 5d fc             	and    %ebx,-0x4(%ebp)
40b1bc:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40b1bf:	53                   	push   %ebx
40b1c0:	50                   	push   %eax
40b1c1:	52                   	push   %edx
40b1c2:	56                   	push   %esi
40b1c3:	57                   	push   %edi
40b1c4:	e8 47 fd ff ff       	call   0x40af10
40b1c9:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40b1cc:	84 c0                	test   %al,%al
40b1ce:	75 19                	jne    0x40b1e9
40b1d0:	33 ff                	xor    %edi,%edi
40b1d2:	8b f7                	mov    %edi,%esi
40b1d4:	57                   	push   %edi
40b1d5:	6a 01                	push   $0x1
40b1d7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b1da:	e8 11 b3 ff ff       	call   0x4064f0
40b1df:	8b c6                	mov    %esi,%eax
40b1e1:	e8 4a 34 00 00       	call   0x40e630
40b1e6:	c2 18 00             	ret    $0x18
40b1e9:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b1ed:	8b 75 d8             	mov    -0x28(%ebp),%esi
40b1f0:	73 03                	jae    0x40b1f5
40b1f2:	8d 75 d8             	lea    -0x28(%ebp),%esi
40b1f5:	0f b7 06             	movzwl (%esi),%eax
40b1f8:	66 85 c0             	test   %ax,%ax
40b1fb:	74 1b                	je     0x40b218
40b1fd:	8b c8                	mov    %eax,%ecx
40b1ff:	51                   	push   %ecx
40b200:	ff 15 b0 21 41 00    	call   *0x4121b0
40b206:	59                   	pop    %ecx
40b207:	85 c0                	test   %eax,%eax
40b209:	74 0d                	je     0x40b218
40b20b:	83 c6 02             	add    $0x2,%esi
40b20e:	0f b7 06             	movzwl (%esi),%eax
40b211:	8b c8                	mov    %eax,%ecx
40b213:	66 85 c0             	test   %ax,%ax
40b216:	75 e7                	jne    0x40b1ff
40b218:	66 83 3e 2d          	cmpw   $0x2d,(%esi)
40b21c:	75 07                	jne    0x40b225
40b21e:	6a 0d                	push   $0xd
40b220:	5e                   	pop    %esi
40b221:	33 ff                	xor    %edi,%edi
40b223:	eb af                	jmp    0x40b1d4
40b225:	ff 15 ac 21 41 00    	call   *0x4121ac
40b22b:	33 ff                	xor    %edi,%edi
40b22d:	6a 0a                	push   $0xa
40b22f:	89 38                	mov    %edi,(%eax)
40b231:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b234:	50                   	push   %eax
40b235:	56                   	push   %esi
40b236:	ff 15 a8 21 41 00    	call   *0x4121a8
40b23c:	83 c4 0c             	add    $0xc,%esp
40b23f:	89 45 c0             	mov    %eax,-0x40(%ebp)
40b242:	83 f8 ff             	cmp    $0xffffffff,%eax
40b245:	75 0b                	jne    0x40b252
40b247:	ff 15 ac 21 41 00    	call   *0x4121ac
40b24d:	83 38 22             	cmpl   $0x22,(%eax)
40b250:	74 2f                	je     0x40b281
40b252:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40b255:	0f b7 10             	movzwl (%eax),%edx
40b258:	66 85 d2             	test   %dx,%dx
40b25b:	74 2c                	je     0x40b289
40b25d:	52                   	push   %edx
40b25e:	ff 15 b0 21 41 00    	call   *0x4121b0
40b264:	59                   	pop    %ecx
40b265:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40b268:	85 c0                	test   %eax,%eax
40b26a:	74 10                	je     0x40b27c
40b26c:	83 c1 02             	add    $0x2,%ecx
40b26f:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40b272:	0f b7 01             	movzwl (%ecx),%eax
40b275:	8b d0                	mov    %eax,%edx
40b277:	66 85 c0             	test   %ax,%ax
40b27a:	75 e1                	jne    0x40b25d
40b27c:	66 39 39             	cmp    %di,(%ecx)
40b27f:	74 08                	je     0x40b289
40b281:	6a 0d                	push   $0xd
40b283:	5e                   	pop    %esi
40b284:	e9 4b ff ff ff       	jmp    0x40b1d4
40b289:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b28c:	c7 45 cc 02 00 00 00 	movl   $0x2,-0x34(%ebp)
40b293:	50                   	push   %eax
40b294:	57                   	push   %edi
40b295:	ff 75 1c             	push   0x1c(%ebp)
40b298:	53                   	push   %ebx
40b299:	ff 15 18 20 41 00    	call   *0x412018
40b29f:	85 c0                	test   %eax,%eax
40b2a1:	0f 85 2b ff ff ff    	jne    0x40b1d2
40b2a7:	ff 15 70 20 41 00    	call   *0x412070
40b2ad:	8b f0                	mov    %eax,%esi
40b2af:	e9 20 ff ff ff       	jmp    0x40b1d4
40b2b4:	6a 30                	push   $0x30
40b2b6:	b8 22 f2 40 00       	mov    $0x40f222,%eax
40b2bb:	e8 c1 33 00 00       	call   0x40e681
40b2c0:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b2c3:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b2c6:	8b 75 10             	mov    0x10(%ebp),%esi
40b2c9:	8b 55 14             	mov    0x14(%ebp),%edx
40b2cc:	8b 45 18             	mov    0x18(%ebp),%eax
40b2cf:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40b2d3:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40b2d6:	33 db                	xor    %ebx,%ebx
40b2d8:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b2df:	66 89 5d d8          	mov    %bx,-0x28(%ebp)
40b2e3:	21 5d fc             	and    %ebx,-0x4(%ebp)
40b2e6:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40b2e9:	53                   	push   %ebx
40b2ea:	50                   	push   %eax
40b2eb:	52                   	push   %edx
40b2ec:	56                   	push   %esi
40b2ed:	57                   	push   %edi
40b2ee:	e8 1d fc ff ff       	call   0x40af10
40b2f3:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
40b2f6:	84 c0                	test   %al,%al
40b2f8:	74 34                	je     0x40b32e
40b2fa:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b2fe:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b301:	73 03                	jae    0x40b306
40b303:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b306:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40b309:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40b30c:	50                   	push   %eax
40b30d:	6a 00                	push   $0x0
40b30f:	ff 75 1c             	push   0x1c(%ebp)
40b312:	c7 45 d0 04 00 00 00 	movl   $0x4,-0x30(%ebp)
40b319:	53                   	push   %ebx
40b31a:	ff 15 18 20 41 00    	call   *0x412018
40b320:	85 c0                	test   %eax,%eax
40b322:	75 0a                	jne    0x40b32e
40b324:	ff 15 70 20 41 00    	call   *0x412070
40b32a:	8b f0                	mov    %eax,%esi
40b32c:	eb 02                	jmp    0x40b330
40b32e:	33 f6                	xor    %esi,%esi
40b330:	6a 00                	push   $0x0
40b332:	6a 01                	push   $0x1
40b334:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b337:	e8 b4 b1 ff ff       	call   0x4064f0
40b33c:	8b c6                	mov    %esi,%eax
40b33e:	e8 ed 32 00 00       	call   0x40e630
40b343:	c2 18 00             	ret    $0x18
40b346:	6a 50                	push   $0x50
40b348:	b8 5f f2 40 00       	mov    $0x40f25f,%eax
40b34d:	e8 2f 33 00 00       	call   0x40e681
40b352:	8b 45 08             	mov    0x8(%ebp),%eax
40b355:	33 db                	xor    %ebx,%ebx
40b357:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b35a:	8b 75 10             	mov    0x10(%ebp),%esi
40b35d:	8b 55 14             	mov    0x14(%ebp),%edx
40b360:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40b364:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40b367:	8b 45 18             	mov    0x18(%ebp),%eax
40b36a:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b371:	66 89 5d d8          	mov    %bx,-0x28(%ebp)
40b375:	21 5d fc             	and    %ebx,-0x4(%ebp)
40b378:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40b37b:	53                   	push   %ebx
40b37c:	50                   	push   %eax
40b37d:	52                   	push   %edx
40b37e:	56                   	push   %esi
40b37f:	57                   	push   %edi
40b380:	e8 45 fc ff ff       	call   0x40afca
40b385:	84 c0                	test   %al,%al
40b387:	0f 84 2b 01 00 00    	je     0x40b4b8
40b38d:	8b 45 e8             	mov    -0x18(%ebp),%eax
40b390:	85 c0                	test   %eax,%eax
40b392:	0f 84 20 01 00 00    	je     0x40b4b8
40b398:	8d 34 45 02 00 00 00 	lea    0x2(,%eax,2),%esi
40b39f:	33 db                	xor    %ebx,%ebx
40b3a1:	56                   	push   %esi
40b3a2:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40b3a5:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40b3a8:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40b3ab:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40b3ae:	e8 3a c5 ff ff       	call   0x4078ed
40b3b3:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b3b7:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b3ba:	73 03                	jae    0x40b3bf
40b3bc:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b3bf:	56                   	push   %esi
40b3c0:	50                   	push   %eax
40b3c1:	ff 75 b8             	push   -0x48(%ebp)
40b3c4:	e8 5d 33 00 00       	call   0x40e726
40b3c9:	8b fb                	mov    %ebx,%edi
40b3cb:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40b3ce:	21 7d d0             	and    %edi,-0x30(%ebp)
40b3d1:	89 7d c8             	mov    %edi,-0x38(%ebp)
40b3d4:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40b3d8:	68 54 42 40 00       	push   $0x404254
40b3dd:	ff 75 b8             	push   -0x48(%ebp)
40b3e0:	ff 15 a4 21 41 00    	call   *0x4121a4
40b3e6:	83 c4 14             	add    $0x14,%esp
40b3e9:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40b3ec:	33 f6                	xor    %esi,%esi
40b3ee:	85 c0                	test   %eax,%eax
40b3f0:	74 74                	je     0x40b466
40b3f2:	33 c9                	xor    %ecx,%ecx
40b3f4:	8d 55 d4             	lea    -0x2c(%ebp),%edx
40b3f7:	3b d6                	cmp    %esi,%edx
40b3f9:	73 2e                	jae    0x40b429
40b3fb:	3b fa                	cmp    %edx,%edi
40b3fd:	77 2a                	ja     0x40b429
40b3ff:	8b f2                	mov    %edx,%esi
40b401:	2b f7                	sub    %edi,%esi
40b403:	c1 fe 02             	sar    $0x2,%esi
40b406:	3b 4d d0             	cmp    -0x30(%ebp),%ecx
40b409:	75 0f                	jne    0x40b41a
40b40b:	51                   	push   %ecx
40b40c:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40b40f:	e8 d3 16 00 00       	call   0x40cae7
40b414:	8b 5d cc             	mov    -0x34(%ebp),%ebx
40b417:	8b 7d c8             	mov    -0x38(%ebp),%edi
40b41a:	8b 04 b7             	mov    (%edi,%esi,4),%eax
40b41d:	89 03                	mov    %eax,(%ebx)
40b41f:	83 c3 04             	add    $0x4,%ebx
40b422:	8b f3                	mov    %ebx,%esi
40b424:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40b427:	eb 21                	jmp    0x40b44a
40b429:	3b 5d d0             	cmp    -0x30(%ebp),%ebx
40b42c:	75 12                	jne    0x40b440
40b42e:	51                   	push   %ecx
40b42f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40b432:	e8 b0 16 00 00       	call   0x40cae7
40b437:	8b 5d cc             	mov    -0x34(%ebp),%ebx
40b43a:	8b 7d c8             	mov    -0x38(%ebp),%edi
40b43d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40b440:	89 03                	mov    %eax,(%ebx)
40b442:	83 c3 04             	add    $0x4,%ebx
40b445:	8b f3                	mov    %ebx,%esi
40b447:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40b44a:	68 54 42 40 00       	push   $0x404254
40b44f:	6a 00                	push   $0x0
40b451:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40b454:	ff 15 a4 21 41 00    	call   *0x4121a4
40b45a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40b45d:	59                   	pop    %ecx
40b45e:	59                   	pop    %ecx
40b45f:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40b462:	85 c0                	test   %eax,%eax
40b464:	75 8e                	jne    0x40b3f4
40b466:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40b469:	c7 45 b0 84 00 00 00 	movl   $0x84,-0x50(%ebp)
40b470:	50                   	push   %eax
40b471:	6a 00                	push   $0x0
40b473:	ff 75 1c             	push   0x1c(%ebp)
40b476:	2b f7                	sub    %edi,%esi
40b478:	89 7d a4             	mov    %edi,-0x5c(%ebp)
40b47b:	ff 75 b4             	push   -0x4c(%ebp)
40b47e:	c1 fe 02             	sar    $0x2,%esi
40b481:	89 75 ac             	mov    %esi,-0x54(%ebp)
40b484:	ff 15 18 20 41 00    	call   *0x412018
40b48a:	85 c0                	test   %eax,%eax
40b48c:	75 0a                	jne    0x40b498
40b48e:	ff 15 70 20 41 00    	call   *0x412070
40b494:	8b f0                	mov    %eax,%esi
40b496:	eb 02                	jmp    0x40b49a
40b498:	33 f6                	xor    %esi,%esi
40b49a:	85 ff                	test   %edi,%edi
40b49c:	74 08                	je     0x40b4a6
40b49e:	57                   	push   %edi
40b49f:	ff 15 e4 21 41 00    	call   *0x4121e4
40b4a5:	59                   	pop    %ecx
40b4a6:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
40b4aa:	74 0e                	je     0x40b4ba
40b4ac:	ff 75 b8             	push   -0x48(%ebp)
40b4af:	ff 15 e4 21 41 00    	call   *0x4121e4
40b4b5:	59                   	pop    %ecx
40b4b6:	eb 02                	jmp    0x40b4ba
40b4b8:	33 f6                	xor    %esi,%esi
40b4ba:	6a 00                	push   $0x0
40b4bc:	6a 01                	push   $0x1
40b4be:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b4c1:	e8 2a b0 ff ff       	call   0x4064f0
40b4c6:	8b c6                	mov    %esi,%eax
40b4c8:	e8 63 31 00 00       	call   0x40e630
40b4cd:	c2 18 00             	ret    $0x18
40b4d0:	6a 4c                	push   $0x4c
40b4d2:	b8 94 f2 40 00       	mov    $0x40f294,%eax
40b4d7:	e8 a5 31 00 00       	call   0x40e681
40b4dc:	8b f9                	mov    %ecx,%edi
40b4de:	8b 45 0c             	mov    0xc(%ebp),%eax
40b4e1:	33 f6                	xor    %esi,%esi
40b4e3:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b4e6:	6a 07                	push   $0x7
40b4e8:	89 45 a8             	mov    %eax,-0x58(%ebp)
40b4eb:	33 c0                	xor    %eax,%eax
40b4ed:	59                   	pop    %ecx