407133:	6a 20                	push   $0x20
407135:	8d 45 b8             	lea    -0x48(%ebp),%eax
407138:	50                   	push   %eax
407139:	68 6b 04 00 00       	push   $0x46b
40713e:	6a 00                	push   $0x0
407140:	ff 15 20 f1 40 00    	call   *0x40f120
407146:	85 c0                	test   %eax,%eax
407148:	75 04                	jne    0x40714e
40714a:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40714e:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
407154:	50                   	push   %eax
407155:	8d 45 b8             	lea    -0x48(%ebp),%eax
407158:	50                   	push   %eax
407159:	68 ac 1d 40 00       	push   $0x401dac
40715e:	eb 28                	jmp    0x407188
407160:	8d 45 b8             	lea    -0x48(%ebp),%eax
407163:	50                   	push   %eax
407164:	68 6b 04 00 00       	push   $0x46b
407169:	6a 00                	push   $0x0
40716b:	ff 15 20 f1 40 00    	call   *0x40f120
407171:	85 c0                	test   %eax,%eax
407173:	75 04                	jne    0x407179
407175:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
407179:	ff b6 fc fb ff ff    	push   -0x404(%esi)
40717f:	8d 45 b8             	lea    -0x48(%ebp),%eax
407182:	50                   	push   %eax
407183:	68 e0 1d 40 00       	push   $0x401de0
407188:	e8 2d b7 ff ff       	call   0x4028ba
40718d:	83 c4 0c             	add    $0xc,%esp
407190:	ff 76 08             	push   0x8(%esi)
407193:	ff 76 04             	push   0x4(%esi)
407196:	e8 f0 be ff ff       	call   0x40308b
40719b:	8d 56 0c             	lea    0xc(%esi),%edx
40719e:	e8 61 c4 ff ff       	call   0x403604
4071a3:	68 c4 13 40 00       	push   $0x4013c4
4071a8:	e8 0d b7 ff ff       	call   0x4028ba
4071ad:	47                   	inc    %edi
4071ae:	81 c6 48 06 00 00    	add    $0x648,%esi
4071b4:	59                   	pop    %ecx
4071b5:	3b bd 34 ff ff ff    	cmp    -0xcc(%ebp),%edi
4071bb:	0f 82 b3 fe ff ff    	jb     0x407074
4071c1:	8b bd 28 ff ff ff    	mov    -0xd8(%ebp),%edi
4071c7:	57                   	push   %edi
4071c8:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4071ce:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4071d1:	8b c3                	mov    %ebx,%eax
4071d3:	5f                   	pop    %edi
4071d4:	5e                   	pop    %esi
4071d5:	33 cd                	xor    %ebp,%ecx
4071d7:	5b                   	pop    %ebx
4071d8:	e8 f3 18 00 00       	call   0x408ad0
4071dd:	c9                   	leave
4071de:	c3                   	ret
4071df:	8b ff                	mov    %edi,%edi
4071e1:	55                   	push   %ebp
4071e2:	8b ec                	mov    %esp,%ebp
4071e4:	81 ec 0c 04 00 00    	sub    $0x40c,%esp
4071ea:	a1 04 a0 40 00       	mov    0x40a004,%eax
4071ef:	33 c5                	xor    %ebp,%eax
4071f1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4071f4:	53                   	push   %ebx
4071f5:	56                   	push   %esi
4071f6:	8b f1                	mov    %ecx,%esi
4071f8:	57                   	push   %edi
4071f9:	8d 46 fc             	lea    -0x4(%esi),%eax
4071fc:	83 f8 02             	cmp    $0x2,%eax
4071ff:	0f 87 8e 00 00 00    	ja     0x407293
407205:	8b 42 08             	mov    0x8(%edx),%eax
407208:	33 db                	xor    %ebx,%ebx
40720a:	8b c8                	mov    %eax,%ecx
40720c:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
407212:	8d 79 02             	lea    0x2(%ecx),%edi
407215:	66 8b 01             	mov    (%ecx),%ax
407218:	83 c1 02             	add    $0x2,%ecx
40721b:	66 3b c3             	cmp    %bx,%ax
40721e:	75 f5                	jne    0x407215
407220:	2b cf                	sub    %edi,%ecx
407222:	d1 f9                	sar    $1,%ecx
407224:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
40722a:	76 05                	jbe    0x407231
40722c:	6a 57                	push   $0x57
40722e:	58                   	pop    %eax
40722f:	eb 6c                	jmp    0x40729d
407231:	8b 5a 0c             	mov    0xc(%edx),%ebx
407234:	83 fe 04             	cmp    $0x4,%esi
407237:	7e 23                	jle    0x40725c
407239:	8b 7a 10             	mov    0x10(%edx),%edi
40723c:	6a 2a                	push   $0x2a
40723e:	58                   	pop    %eax
40723f:	66 39 07             	cmp    %ax,(%edi)
407242:	75 02                	jne    0x407246
407244:	33 ff                	xor    %edi,%edi
407246:	83 fe 05             	cmp    $0x5,%esi
407249:	7e 13                	jle    0x40725e
40724b:	8b 4a 14             	mov    0x14(%edx),%ecx
40724e:	66 39 01             	cmp    %ax,(%ecx)
407251:	74 0b                	je     0x40725e
407253:	e8 1e ca ff ff       	call   0x403c76
407258:	8b f0                	mov    %eax,%esi
40725a:	eb 05                	jmp    0x407261
40725c:	33 ff                	xor    %edi,%edi
40725e:	83 ce ff             	or     $0xffffffff,%esi
407261:	ff b5 f4 fb ff ff    	push   -0x40c(%ebp)
407267:	ba 00 01 00 00       	mov    $0x100,%edx
40726c:	8d 8d f8 fd ff ff    	lea    -0x208(%ebp),%ecx
407272:	e8 e9 b4 ff ff       	call   0x402760
407277:	8b cb                	mov    %ebx,%ecx
407279:	e8 f8 c9 ff ff       	call   0x403c76
40727e:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
407282:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
407288:	50                   	push   %eax
407289:	56                   	push   %esi
40728a:	57                   	push   %edi
40728b:	ff 15 84 f0 40 00    	call   *0x40f084
407291:	eb 0a                	jmp    0x40729d
407293:	6a 04                	push   $0x4
407295:	59                   	pop    %ecx
407296:	e8 c4 b7 ff ff       	call   0x402a5f
40729b:	33 c0                	xor    %eax,%eax
40729d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4072a0:	5f                   	pop    %edi
4072a1:	5e                   	pop    %esi
4072a2:	33 cd                	xor    %ebp,%ecx
4072a4:	5b                   	pop    %ebx
4072a5:	e8 26 18 00 00       	call   0x408ad0
4072aa:	c9                   	leave
4072ab:	c3                   	ret
4072ac:	8b ff                	mov    %edi,%edi
4072ae:	55                   	push   %ebp
4072af:	8b ec                	mov    %esp,%ebp
4072b1:	81 ec 5c 04 00 00    	sub    $0x45c,%esp
4072b7:	a1 04 a0 40 00       	mov    0x40a004,%eax
4072bc:	33 c5                	xor    %ebp,%eax
4072be:	89 45 fc             	mov    %eax,-0x4(%ebp)
4072c1:	53                   	push   %ebx
4072c2:	56                   	push   %esi
4072c3:	57                   	push   %edi
4072c4:	8b fa                	mov    %edx,%edi
4072c6:	33 f6                	xor    %esi,%esi
4072c8:	8b d1                	mov    %ecx,%edx
4072ca:	89 b5 e4 fb ff ff    	mov    %esi,-0x41c(%ebp)
4072d0:	89 95 e0 fb ff ff    	mov    %edx,-0x420(%ebp)
4072d6:	89 b5 e8 fb ff ff    	mov    %esi,-0x418(%ebp)
4072dc:	83 fa 04             	cmp    $0x4,%edx
4072df:	74 12                	je     0x4072f3
4072e1:	83 fa 10             	cmp    $0x10,%edx
4072e4:	7d 0d                	jge    0x4072f3
4072e6:	6a 03                	push   $0x3
4072e8:	59                   	pop    %ecx
4072e9:	e8 71 b7 ff ff       	call   0x402a5f
4072ee:	e9 fa 00 00 00       	jmp    0x4073ed
4072f3:	8b 47 08             	mov    0x8(%edi),%eax
4072f6:	8b c8                	mov    %eax,%ecx
4072f8:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
4072fe:	8d 59 02             	lea    0x2(%ecx),%ebx
407301:	66 8b 01             	mov    (%ecx),%ax
407304:	83 c1 02             	add    $0x2,%ecx
407307:	66 3b c6             	cmp    %si,%ax
40730a:	75 f5                	jne    0x407301
40730c:	2b cb                	sub    %ebx,%ecx
40730e:	d1 f9                	sar    $1,%ecx
407310:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
407316:	76 08                	jbe    0x407320
407318:	6a 57                	push   $0x57
40731a:	58                   	pop    %eax
40731b:	e9 cf 00 00 00       	jmp    0x4073ef
407320:	8b 47 0c             	mov    0xc(%edi),%eax
407323:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
407329:	83 fa 04             	cmp    $0x4,%edx
40732c:	7e 65                	jle    0x407393
40732e:	8b 47 10             	mov    0x10(%edi),%eax
407331:	6a 2a                	push   $0x2a
407333:	5b                   	pop    %ebx
407334:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
40733a:	66 39 18             	cmp    %bx,(%eax)
40733d:	75 06                	jne    0x407345
40733f:	89 b5 ec fb ff ff    	mov    %esi,-0x414(%ebp)
407345:	83 fa 05             	cmp    $0x5,%edx
407348:	7e 4f                	jle    0x407399
40734a:	8b 4f 14             	mov    0x14(%edi),%ecx
40734d:	66 39 19             	cmp    %bx,(%ecx)
407350:	75 05                	jne    0x407357
407352:	83 cb ff             	or     $0xffffffff,%ebx
407355:	eb 07                	jmp    0x40735e
407357:	e8 1a c9 ff ff       	call   0x403c76
40735c:	8b d8                	mov    %eax,%ebx
40735e:	8b 4f 18             	mov    0x18(%edi),%ecx
407361:	e8 10 c9 ff ff       	call   0x403c76
407366:	83 bd e0 fb ff ff 07 	cmpl   $0x7,-0x420(%ebp)
40736d:	89 85 e4 fb ff ff    	mov    %eax,-0x41c(%ebp)
407373:	89 b5 e8 fb ff ff    	mov    %esi,-0x418(%ebp)
407379:	7e 21                	jle    0x40739c
40737b:	6a 07                	push   $0x7
40737d:	51                   	push   %ecx
40737e:	8b d7                	mov    %edi,%edx
407380:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
407386:	e8 bb c9 ff ff       	call   0x403d46
40738b:	8d b5 a4 fb ff ff    	lea    -0x45c(%ebp),%esi
407391:	eb 09                	jmp    0x40739c
407393:	89 b5 ec fb ff ff    	mov    %esi,-0x414(%ebp)
407399:	83 cb ff             	or     $0xffffffff,%ebx
40739c:	ff b5 dc fb ff ff    	push   -0x424(%ebp)
4073a2:	ba 00 01 00 00       	mov    $0x100,%edx
4073a7:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
4073ad:	e8 ae b3 ff ff       	call   0x402760
4073b2:	8b 8d d8 fb ff ff    	mov    -0x428(%ebp),%ecx
4073b8:	e8 b9 c8 ff ff       	call   0x403c76
4073bd:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
4073c1:	33 c0                	xor    %eax,%eax
4073c3:	66 89 85 f0 fb ff ff 	mov    %ax,-0x410(%ebp)
4073ca:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
4073d0:	50                   	push   %eax
4073d1:	ff b5 e8 fb ff ff    	push   -0x418(%ebp)
4073d7:	ff b5 e4 fb ff ff    	push   -0x41c(%ebp)
4073dd:	56                   	push   %esi
4073de:	53                   	push   %ebx
4073df:	ff b5 ec fb ff ff    	push   -0x414(%ebp)
4073e5:	ff 15 00 f0 40 00    	call   *0x40f000
4073eb:	8b f0                	mov    %eax,%esi
4073ed:	8b c6                	mov    %esi,%eax
4073ef:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4073f2:	5f                   	pop    %edi
4073f3:	5e                   	pop    %esi
4073f4:	33 cd                	xor    %ebp,%ecx
4073f6:	5b                   	pop    %ebx
4073f7:	e8 d4 16 00 00       	call   0x408ad0
4073fc:	c9                   	leave
4073fd:	c3                   	ret
4073fe:	8b ff                	mov    %edi,%edi
407400:	55                   	push   %ebp
407401:	8b ec                	mov    %esp,%ebp
407403:	81 ec 64 04 00 00    	sub    $0x464,%esp
407409:	a1 04 a0 40 00       	mov    0x40a004,%eax
40740e:	33 c5                	xor    %ebp,%eax
407410:	89 45 fc             	mov    %eax,-0x4(%ebp)
407413:	53                   	push   %ebx
407414:	56                   	push   %esi
407415:	57                   	push   %edi
407416:	6a 12                	push   $0x12
407418:	58                   	pop    %eax
407419:	89 8d e8 fb ff ff    	mov    %ecx,-0x418(%ebp)
40741f:	8b fa                	mov    %edx,%edi
407421:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
407427:	3b c8                	cmp    %eax,%ecx
407429:	7d 0f                	jge    0x40743a
40742b:	33 c9                	xor    %ecx,%ecx
40742d:	41                   	inc    %ecx
40742e:	e8 2c b6 ff ff       	call   0x402a5f
407433:	33 ff                	xor    %edi,%edi
407435:	e9 98 02 00 00       	jmp    0x4076d2
40743a:	8b 47 08             	mov    0x8(%edi),%eax
40743d:	33 db                	xor    %ebx,%ebx
40743f:	89 85 d4 fb ff ff    	mov    %eax,-0x42c(%ebp)
407445:	8b 47 0c             	mov    0xc(%edi),%eax
407448:	6a 2a                	push   $0x2a
40744a:	59                   	pop    %ecx
40744b:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
407451:	66 39 08             	cmp    %cx,(%eax)
407454:	75 06                	jne    0x40745c
407456:	89 9d dc fb ff ff    	mov    %ebx,-0x424(%ebp)
40745c:	8b 57 10             	mov    0x10(%edi),%edx
40745f:	66 39 0a             	cmp    %cx,(%edx)
407462:	74 67                	je     0x4074cb
407464:	8b 77 14             	mov    0x14(%edi),%esi
407467:	66 39 0e             	cmp    %cx,(%esi)
40746a:	74 5f                	je     0x4074cb
40746c:	8b ca                	mov    %edx,%ecx
40746e:	8d 41 02             	lea    0x2(%ecx),%eax
407471:	89 85 e4 fb ff ff    	mov    %eax,-0x41c(%ebp)
407477:	66 8b 01             	mov    (%ecx),%ax
40747a:	83 c1 02             	add    $0x2,%ecx
40747d:	66 3b c3             	cmp    %bx,%ax
407480:	75 f5                	jne    0x407477
407482:	2b 8d e4 fb ff ff    	sub    -0x41c(%ebp),%ecx
407488:	d1 f9                	sar    $1,%ecx
40748a:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
407490:	76 08                	jbe    0x40749a
407492:	6a 57                	push   $0x57
407494:	58                   	pop    %eax
407495:	e9 3a 02 00 00       	jmp    0x4076d4
40749a:	33 c0                	xor    %eax,%eax
40749c:	c7 85 f0 fb ff ff 01 	movl   $0x1,-0x410(%ebp)
4074a3:	00 00 00
4074a6:	52                   	push   %edx
4074a7:	ba 00 01 00 00       	mov    $0x100,%edx
4074ac:	66 89 85 f4 fb ff ff 	mov    %ax,-0x40c(%ebp)
4074b3:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
4074b9:	e8 a2 b2 ff ff       	call   0x402760
4074be:	8b ce                	mov    %esi,%ecx
4074c0:	e8 b1 c7 ff ff       	call   0x403c76
4074c5:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
4074c9:	eb 0f                	jmp    0x4074da
4074cb:	33 c0                	xor    %eax,%eax
4074cd:	89 9d f0 fb ff ff    	mov    %ebx,-0x410(%ebp)
4074d3:	66 89 85 f4 fd ff ff 	mov    %ax,-0x20c(%ebp)
4074da:	8b 4f 18             	mov    0x18(%edi),%ecx
4074dd:	e8 94 c7 ff ff       	call   0x403c76
4074e2:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
4074e8:	8b 47 1c             	mov    0x1c(%edi),%eax
4074eb:	6a 2a                	push   $0x2a
4074ed:	59                   	pop    %ecx
4074ee:	0f b7 00             	movzwl (%eax),%eax
4074f1:	66 3b c1             	cmp    %cx,%ax
4074f4:	74 10                	je     0x407506
4074f6:	83 f8 74             	cmp    $0x74,%eax
4074f9:	74 0b                	je     0x407506
4074fb:	88 9d e0 fb ff ff    	mov    %bl,-0x420(%ebp)
407501:	83 f8 54             	cmp    $0x54,%eax
407504:	75 07                	jne    0x40750d
407506:	c6 85 e0 fb ff ff 01 	movb   $0x1,-0x420(%ebp)
40750d:	6a 08                	push   $0x8
40750f:	51                   	push   %ecx
407510:	8b d7                	mov    %edi,%edx
407512:	8d 8d a0 fb ff ff    	lea    -0x460(%ebp),%ecx
407518:	e8 29 c8 ff ff       	call   0x403d46
40751d:	8b 4f 44             	mov    0x44(%edi),%ecx
407520:	e8 51 c7 ff ff       	call   0x403c76
407525:	8b c8                	mov    %eax,%ecx
407527:	89 8d e4 fb ff ff    	mov    %ecx,-0x41c(%ebp)
40752d:	8d 04 8d 12 00 00 00 	lea    0x12(,%ecx,4),%eax
407534:	39 85 e8 fb ff ff    	cmp    %eax,-0x418(%ebp)
40753a:	74 0f                	je     0x40754b
40753c:	33 c9                	xor    %ecx,%ecx
40753e:	41                   	inc    %ecx
40753f:	e8 1b b5 ff ff       	call   0x402a5f
407544:	33 c0                	xor    %eax,%eax
407546:	e9 89 01 00 00       	jmp    0x4076d4
40754b:	85 c9                	test   %ecx,%ecx
40754d:	0f 84 37 01 00 00    	je     0x40768a
407553:	8b c1                	mov    %ecx,%eax
407555:	c1 e0 04             	shl    $0x4,%eax
407558:	05 e8 05 00 00       	add    $0x5e8,%eax
40755d:	50                   	push   %eax
40755e:	ff 15 a4 f0 40 00    	call   *0x40f0a4
407564:	8b f0                	mov    %eax,%esi
407566:	85 f6                	test   %esi,%esi
407568:	75 07                	jne    0x407571
40756a:	6a 08                	push   $0x8
40756c:	e9 23 ff ff ff       	jmp    0x407494
407571:	33 c0                	xor    %eax,%eax
407573:	66 89 06             	mov    %ax,(%esi)
407576:	66 89 86 00 02 00 00 	mov    %ax,0x200(%esi)
40757d:	66 89 86 c0 03 00 00 	mov    %ax,0x3c0(%esi)
407584:	8b 4f 4c             	mov    0x4c(%edi),%ecx
407587:	e8 ea c6 ff ff       	call   0x403c76
40758c:	89 86 d8 05 00 00    	mov    %eax,0x5d8(%esi)
407592:	8b 4f 50             	mov    0x50(%edi),%ecx
407595:	e8 dc c6 ff ff       	call   0x403c76
40759a:	8b 8d e4 fb ff ff    	mov    -0x41c(%ebp),%ecx
4075a0:	89 86 dc 05 00 00    	mov    %eax,0x5dc(%esi)