408457:	8b c6                	mov    %esi,%eax
408459:	e8 42 33 00 00       	call   0x40b7a0
40845e:	eb 3d                	jmp    0x40849d
408460:	8b 56 24             	mov    0x24(%esi),%edx
408463:	81 ca 00 00 80 00    	or     $0x800000,%edx
408469:	8b c6                	mov    %esi,%eax
40846b:	e8 00 33 00 00       	call   0x40b770
408470:	eb 2b                	jmp    0x40849d
408472:	8b 46 24             	mov    0x24(%esi),%eax
408475:	25 ff ff 30 ff       	and    $0xff30ffff,%eax
40847a:	f6 46 36 08          	testb  $0x8,0x36(%esi)
40847e:	75 05                	jne    0x408485
408480:	0d 00 00 00 80       	or     $0x80000000,%eax
408485:	8b d6                	mov    %esi,%edx
408487:	92                   	xchg   %eax,%edx
408488:	e8 e3 32 00 00       	call   0x40b770
40848d:	8b 56 28             	mov    0x28(%esi),%edx
408490:	81 e2 fe fc fe ff    	and    $0xfffefcfe,%edx
408496:	8b c6                	mov    %esi,%eax
408498:	e8 03 33 00 00       	call   0x40b7a0
40849d:	5e                   	pop    %esi
40849e:	5b                   	pop    %ebx
40849f:	c3                   	ret
4084a0:	53                   	push   %ebx
4084a1:	56                   	push   %esi
4084a2:	57                   	push   %edi
4084a3:	51                   	push   %ecx
4084a4:	8b f9                	mov    %ecx,%edi
4084a6:	8b f2                	mov    %edx,%esi
4084a8:	8b d8                	mov    %eax,%ebx
4084aa:	8b c3                	mov    %ebx,%eax
4084ac:	e8 73 3c 00 00       	call   0x40c124
4084b1:	84 c0                	test   %al,%al
4084b3:	0f 85 a1 00 00 00    	jne    0x40855a
4084b9:	8b 46 04             	mov    0x4(%esi),%eax
4084bc:	83 f8 24             	cmp    $0x24,%eax
4084bf:	75 4b                	jne    0x40850c
4084c1:	8b d6                	mov    %esi,%edx
4084c3:	8b c3                	mov    %ebx,%eax
4084c5:	e8 0a 36 00 00       	call   0x40bad4
4084ca:	89 07                	mov    %eax,(%edi)
4084cc:	8b 83 be 00 00 00    	mov    0xbe(%ebx),%eax
4084d2:	2b 83 b6 00 00 00    	sub    0xb6(%ebx),%eax
4084d8:	8b 93 c2 00 00 00    	mov    0xc2(%ebx),%edx
4084de:	2b 93 ba 00 00 00    	sub    0xba(%ebx),%edx
4084e4:	8b 4e 0c             	mov    0xc(%esi),%ecx
4084e7:	89 0c 24             	mov    %ecx,(%esp)
4084ea:	8b 0c 24             	mov    (%esp),%ecx
4084ed:	89 41 18             	mov    %eax,0x18(%ecx)
4084f0:	8b 04 24             	mov    (%esp),%eax
4084f3:	89 50 1c             	mov    %edx,0x1c(%eax)
4084f6:	8b 04 24             	mov    (%esp),%eax
4084f9:	8b 14 24             	mov    (%esp),%edx
4084fc:	8b 4a 18             	mov    0x18(%edx),%ecx
4084ff:	89 48 20             	mov    %ecx,0x20(%eax)
408502:	8b 4a 1c             	mov    0x1c(%edx),%ecx
408505:	89 48 24             	mov    %ecx,0x24(%eax)
408508:	b0 01                	mov    $0x1,%al
40850a:	eb 50                	jmp    0x40855c
40850c:	3d 84 00 00 00       	cmp    $0x84,%eax
408511:	75 1d                	jne    0x408530
408513:	8b d6                	mov    %esi,%edx
408515:	8b c3                	mov    %ebx,%eax
408517:	e8 b8 35 00 00       	call   0x40bad4
40851c:	89 07                	mov    %eax,(%edi)
40851e:	83 3f 0a             	cmpl   $0xa,(%edi)
408521:	7c 37                	jl     0x40855a
408523:	83 3f 11             	cmpl   $0x11,(%edi)
408526:	7f 32                	jg     0x40855a
408528:	33 c0                	xor    %eax,%eax
40852a:	89 07                	mov    %eax,(%edi)
40852c:	b0 01                	mov    $0x1,%al
40852e:	eb 2c                	jmp    0x40855c
408530:	3d 16 01 00 00       	cmp    $0x116,%eax
408535:	75 23                	jne    0x40855a
408537:	8b c3                	mov    %ebx,%eax
408539:	e8 e6 3b 00 00       	call   0x40c124
40853e:	84 c0                	test   %al,%al
408540:	75 18                	jne    0x40855a
408542:	6a 01                	push   $0x1
408544:	68 00 f0 00 00       	push   $0xf000
408549:	6a 00                	push   $0x0
40854b:	8b 43 1c             	mov    0x1c(%ebx),%eax
40854e:	50                   	push   %eax
40854f:	e8 24 c5 ff ff       	call   0x404a78
408554:	50                   	push   %eax
408555:	e8 a6 c4 ff ff       	call   0x404a00
40855a:	33 c0                	xor    %eax,%eax
40855c:	5a                   	pop    %edx
40855d:	5f                   	pop    %edi
40855e:	5e                   	pop    %esi
40855f:	5b                   	pop    %ebx
408560:	c3                   	ret
408561:	8d 40 00             	lea    0x0(%eax),%eax
408564:	53                   	push   %ebx
408565:	51                   	push   %ecx
408566:	8b d8                	mov    %eax,%ebx
408568:	6a 00                	push   $0x0
40856a:	33 c0                	xor    %eax,%eax
40856c:	8a c2                	mov    %dl,%al
40856e:	50                   	push   %eax
40856f:	68 f1 00 00 00       	push   $0xf1
408574:	53                   	push   %ebx
408575:	e8 c2 3f 00 00       	call   0x40c53c
40857a:	89 1c 24             	mov    %ebx,(%esp)
40857d:	8b 04 24             	mov    (%esp),%eax
408580:	5a                   	pop    %edx
408581:	5b                   	pop    %ebx
408582:	c3                   	ret
408583:	90                   	nop
408584:	c7 40 64 64 de 40 00 	movl   $0x40de64,0x64(%eax)
40858b:	c3                   	ret
40858c:	55                   	push   %ebp
40858d:	8b ec                	mov    %esp,%ebp
40858f:	53                   	push   %ebx
408590:	8b d8                	mov    %eax,%ebx
408592:	8b c3                	mov    %ebx,%eax
408594:	e8 43 5a 00 00       	call   0x40dfdc
408599:	8b 55 08             	mov    0x8(%ebp),%edx
40859c:	89 90 88 00 00 00    	mov    %edx,0x88(%eax)
4085a2:	8b 55 0c             	mov    0xc(%ebp),%edx
4085a5:	89 90 8c 00 00 00    	mov    %edx,0x8c(%eax)
4085ab:	8b c3                	mov    %ebx,%eax
4085ad:	e8 d2 ff ff ff       	call   0x408584
4085b2:	5b                   	pop    %ebx
4085b3:	5d                   	pop    %ebp
4085b4:	c2 08 00             	ret    $0x8
4085b7:	90                   	nop
4085b8:	55                   	push   %ebp
4085b9:	8b ec                	mov    %esp,%ebp
4085bb:	53                   	push   %ebx
4085bc:	8b d8                	mov    %eax,%ebx
4085be:	8b c3                	mov    %ebx,%eax
4085c0:	e8 17 5a 00 00       	call   0x40dfdc
4085c5:	8b 55 08             	mov    0x8(%ebp),%edx
4085c8:	89 90 80 00 00 00    	mov    %edx,0x80(%eax)
4085ce:	8b 55 0c             	mov    0xc(%ebp),%edx
4085d1:	89 90 84 00 00 00    	mov    %edx,0x84(%eax)
4085d7:	8b c3                	mov    %ebx,%eax
4085d9:	e8 a6 ff ff ff       	call   0x408584
4085de:	5b                   	pop    %ebx
4085df:	5d                   	pop    %ebp
4085e0:	c2 08 00             	ret    $0x8
4085e3:	90                   	nop
4085e4:	57                   	push   %edi
4085e5:	50                   	push   %eax
4085e6:	e8 cd cb ff ff       	call   0x4051b8
4085eb:	97                   	xchg   %eax,%edi
4085ec:	58                   	pop    %eax
4085ed:	e8 03 00 00 00       	call   0x4085f5
4085f2:	97                   	xchg   %eax,%edi
4085f3:	5f                   	pop    %edi
4085f4:	c3                   	ret
4085f5:	55                   	push   %ebp
4085f6:	31 ed                	xor    %ebp,%ebp
4085f8:	56                   	push   %esi
4085f9:	53                   	push   %ebx
4085fa:	8b 50 44             	mov    0x44(%eax),%edx
4085fd:	8b 4a 1c             	mov    0x1c(%edx),%ecx
408600:	8b 72 18             	mov    0x18(%edx),%esi
408603:	e3 6c                	jecxz  0x408671
408605:	51                   	push   %ecx
408606:	ad                   	lods   %ds:(%esi),%eax
408607:	50                   	push   %eax
408608:	f6 40 26 01          	testb  $0x1,0x26(%eax)
40860c:	74 48                	je     0x408656
40860e:	8b 50 26             	mov    0x26(%eax),%edx
408611:	08 f2                	or     %dh,%dl
408613:	80 e2 09             	and    $0x9,%dl
408616:	80 fa 01             	cmp    $0x1,%dl
408619:	75 3b                	jne    0x408656
40861b:	e8 20 4e 00 00       	call   0x40d440
408620:	84 c0                	test   %al,%al
408622:	58                   	pop    %eax
408623:	74 49                	je     0x40866e
408625:	50                   	push   %eax
408626:	92                   	xchg   %eax,%edx
408627:	56                   	push   %esi
408628:	8b 4f 1c             	mov    0x1c(%edi),%ecx
40862b:	8b 77 18             	mov    0x18(%edi),%esi
40862e:	31 db                	xor    %ebx,%ebx
408630:	e3 1c                	jecxz  0x40864e
408632:	ad                   	lods   %ds:(%esi),%eax
408633:	66 8b 40 3d          	mov    0x3d(%eax),%ax
408637:	66 3b 42 3d          	cmp    0x3d(%edx),%ax
40863b:	7e 0e                	jle    0x40864b
40863d:	5e                   	pop    %esi
40863e:	89 d1                	mov    %edx,%ecx
408640:	89 da                	mov    %ebx,%edx
408642:	89 f8                	mov    %edi,%eax
408644:	e8 57 cc ff ff       	call   0x4052a0
408649:	eb 0b                	jmp    0x408656
40864b:	43                   	inc    %ebx
40864c:	e2 e4                	loop   0x408632
40864e:	5e                   	pop    %esi
40864f:	89 f8                	mov    %edi,%eax
408651:	e8 7a cb ff ff       	call   0x4051d0
408656:	45                   	inc    %ebp
408657:	58                   	pop    %eax
408658:	f6 40 27 08          	testb  $0x8,0x27(%eax)
40865c:	75 10                	jne    0x40866e
40865e:	50                   	push   %eax
40865f:	e8 91 ff ff ff       	call   0x4085f5
408664:	5a                   	pop    %edx
408665:	74 07                	je     0x40866e
408667:	89 f8                	mov    %edi,%eax
408669:	e8 fe cb ff ff       	call   0x40526c
40866e:	59                   	pop    %ecx
40866f:	e2 94                	loop   0x408605
408671:	5b                   	pop    %ebx
408672:	5e                   	pop    %esi
408673:	85 ed                	test   %ebp,%ebp
408675:	5d                   	pop    %ebp
408676:	c3                   	ret
408677:	90                   	nop
408678:	60                   	pusha
408679:	50                   	push   %eax
40867a:	89 c3                	mov    %eax,%ebx
40867c:	89 d5                	mov    %edx,%ebp
40867e:	e8 61 ff ff ff       	call   0x4085e4
408683:	97                   	xchg   %eax,%edi
408684:	8b 8b f2 00 00 00    	mov    0xf2(%ebx),%ecx
40868a:	31 db                	xor    %ebx,%ebx
40868c:	e3 04                	jecxz  0x408692
40868e:	66 8b 59 3d          	mov    0x3d(%ecx),%bx
408692:	8b 4f 1c             	mov    0x1c(%edi),%ecx
408695:	8b 77 18             	mov    0x18(%edi),%esi
408698:	31 d2                	xor    %edx,%edx
40869a:	52                   	push   %edx
40869b:	52                   	push   %edx
40869c:	85 c9                	test   %ecx,%ecx
40869e:	74 6c                	je     0x40870c
4086a0:	51                   	push   %ecx
4086a1:	ad                   	lods   %ds:(%esi),%eax
4086a2:	66 39 58 3d          	cmp    %bx,0x3d(%eax)
4086a6:	74 60                	je     0x408708
4086a8:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4086ac:	e3 28                	jecxz  0x4086d6
4086ae:	66 8b 49 3d          	mov    0x3d(%ecx),%cx
4086b2:	85 ed                	test   %ebp,%ebp
4086b4:	7d 12                	jge    0x4086c8
4086b6:	66 39 58 3d          	cmp    %bx,0x3d(%eax)
4086ba:	7d 2c                	jge    0x4086e8
4086bc:	66 39 48 3d          	cmp    %cx,0x3d(%eax)
4086c0:	7e 26                	jle    0x4086e8
4086c2:	89 44 24 08          	mov    %eax,0x8(%esp)
4086c6:	eb 20                	jmp    0x4086e8
4086c8:	66 39 58 3d          	cmp    %bx,0x3d(%eax)
4086cc:	7e 1a                	jle    0x4086e8
4086ce:	66 39 48 3d          	cmp    %cx,0x3d(%eax)
4086d2:	7c ee                	jl     0x4086c2
4086d4:	eb 12                	jmp    0x4086e8
4086d6:	85 ed                	test   %ebp,%ebp
4086d8:	7c 08                	jl     0x4086e2
4086da:	66 39 58 3d          	cmp    %bx,0x3d(%eax)
4086de:	7f e2                	jg     0x4086c2
4086e0:	eb 06                	jmp    0x4086e8
4086e2:	66 39 58 3d          	cmp    %bx,0x3d(%eax)
4086e6:	7c da                	jl     0x4086c2
4086e8:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4086ec:	e3 16                	jecxz  0x408704
4086ee:	66 8b 49 3d          	mov    0x3d(%ecx),%cx
4086f2:	85 ed                	test   %ebp,%ebp
4086f4:	7c 08                	jl     0x4086fe
4086f6:	66 39 48 3d          	cmp    %cx,0x3d(%eax)
4086fa:	7d 0c                	jge    0x408708
4086fc:	eb 06                	jmp    0x408704
4086fe:	66 39 48 3d          	cmp    %cx,0x3d(%eax)
408702:	7e 04                	jle    0x408708
408704:	89 44 24 04          	mov    %eax,0x4(%esp)
408708:	59                   	pop    %ecx
408709:	49                   	dec    %ecx
40870a:	75 94                	jne    0x4086a0
40870c:	5a                   	pop    %edx
40870d:	59                   	pop    %ecx
40870e:	41                   	inc    %ecx
40870f:	e2 02                	loop   0x408713
408711:	89 d1                	mov    %edx,%ecx
408713:	5b                   	pop    %ebx
408714:	e3 21                	jecxz  0x408737
408716:	91                   	xchg   %eax,%ecx
408717:	8b 48 1c             	mov    0x1c(%eax),%ecx
40871a:	e3 15                	jecxz  0x408731
40871c:	fe 80 2a 01 00 00    	incb   0x12a(%eax)
408722:	50                   	push   %eax
408723:	b2 01                	mov    $0x1,%dl
408725:	e8 6e 4c 00 00       	call   0x40d398
40872a:	58                   	pop    %eax
40872b:	fe 88 2a 01 00 00    	decb   0x12a(%eax)
408731:	89 83 f2 00 00 00    	mov    %eax,0xf2(%ebx)
408737:	97                   	xchg   %eax,%edi
408738:	e8 d3 1a 00 00       	call   0x40a210
40873d:	61                   	popa
40873e:	c3                   	ret
40873f:	90                   	nop
408740:	51                   	push   %ecx
408741:	88 90 b0 00 00 00    	mov    %dl,0xb0(%eax)
408747:	89 04 24             	mov    %eax,(%esp)
40874a:	8b 04 24             	mov    (%esp),%eax
40874d:	5a                   	pop    %edx
40874e:	c3                   	ret
40874f:	90                   	nop
408750:	8b 15 44 4c 40 00    	mov    0x404c44,%edx
408756:	33 c0                	xor    %eax,%eax
408758:	e8 a3 1a 00 00       	call   0x40a200
40875d:	c3                   	ret
40875e:	8b c0                	mov    %eax,%eax
408760:	53                   	push   %ebx
408761:	8b d8                	mov    %eax,%ebx
408763:	8b c3                	mov    %ebx,%eax
408765:	e8 fa c9 ff ff       	call   0x405164
40876a:	a0 d0 60 42 00       	mov    0x4260d0,%al
40876f:	88 43 2e             	mov    %al,0x2e(%ebx)
408772:	5b                   	pop    %ebx
408773:	c3                   	ret
408774:	8b 40 18             	mov    0x18(%eax),%eax
408777:	8b 40 18             	mov    0x18(%eax),%eax
40877a:	8b 04 90             	mov    (%eax,%edx,4),%eax
40877d:	c3                   	ret
40877e:	8b c0                	mov    %eax,%eax
408780:	56                   	push   %esi
408781:	57                   	push   %edi
408782:	8b 48 1c             	mov    0x1c(%eax),%ecx
408785:	8b 40 18             	mov    0x18(%eax),%eax
408788:	51                   	push   %ecx
408789:	e3 03                	jecxz  0x40878e
40878b:	8b 70 18             	mov    0x18(%eax),%esi
40878e:	56                   	push   %esi
40878f:	92                   	xchg   %eax,%edx
408790:	31 d2                	xor    %edx,%edx
408792:	e3 16                	jecxz  0x4087aa
408794:	50                   	push   %eax
408795:	51                   	push   %ecx
408796:	52                   	push   %edx
408797:	ad                   	lods   %ds:(%esi),%eax
408798:	e8 df d1 ff ff       	call   0x40597c
40879d:	5a                   	pop    %edx
40879e:	8d 54 10 02          	lea    0x2(%eax,%edx,1),%edx
4087a2:	59                   	pop    %ecx
4087a3:	e2 f0                	loop   0x408795
4087a5:	58                   	pop    %eax
4087a6:	5e                   	pop    %esi
4087a7:	87 ca                	xchg   %ecx,%edx
4087a9:	50                   	push   %eax
4087aa:	e8 d5 af ff ff       	call   0x403784
4087af:	5f                   	pop    %edi
4087b0:	59                   	pop    %ecx
4087b1:	e3 1b                	jecxz  0x4087ce
4087b3:	8b 3f                	mov    (%edi),%edi
4087b5:	51                   	push   %ecx