408516:	3b c6                	cmp    %esi,%eax
408518:	0f 85 27 01 00 00    	jne    0x408645
40851e:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
408522:	75 14                	jne    0x408538
408524:	ff 75 c8             	push   -0x38(%ebp)
408527:	ff 75 fc             	push   -0x4(%ebp)
40852a:	68 d8 cb 44 00       	push   $0x44cbd8
40852f:	56                   	push   %esi
408530:	e8 e5 80 03 00       	call   0x44061a
408535:	83 c4 10             	add    $0x10,%esp
408538:	6a 03                	push   $0x3
40853a:	5e                   	pop    %esi
40853b:	eb 02                	jmp    0x40853f
40853d:	8b f7                	mov    %edi,%esi
40853f:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
408543:	74 12                	je     0x408557
408545:	ff 75 fc             	push   -0x4(%ebp)
408548:	68 2c cc 44 00       	push   $0x44cc2c
40854d:	6a 02                	push   $0x2
40854f:	e8 c6 80 03 00       	call   0x44061a
408554:	83 c4 0c             	add    $0xc,%esp
408557:	56                   	push   %esi
408558:	8d 45 c8             	lea    -0x38(%ebp),%eax
40855b:	50                   	push   %eax
40855c:	e8 56 79 01 00       	call   0x41feb7
408561:	8b f0                	mov    %eax,%esi
408563:	85 f6                	test   %esi,%esi
408565:	0f 88 46 01 00 00    	js     0x4086b1
40856b:	8d 45 e8             	lea    -0x18(%ebp),%eax
40856e:	50                   	push   %eax
40856f:	ff 75 fc             	push   -0x4(%ebp)
408572:	53                   	push   %ebx
408573:	e8 3e d0 ff ff       	call   0x4055b6
408578:	8b f0                	mov    %eax,%esi
40857a:	85 f6                	test   %esi,%esi
40857c:	0f 88 24 01 00 00    	js     0x4086a6
408582:	8b 7d e8             	mov    -0x18(%ebp),%edi
408585:	83 fe 01             	cmp    $0x1,%esi
408588:	75 1d                	jne    0x4085a7
40858a:	57                   	push   %edi
40858b:	ff 75 fc             	push   -0x4(%ebp)
40858e:	53                   	push   %ebx
40858f:	e8 32 e5 ff ff       	call   0x406ac6
408594:	8b f0                	mov    %eax,%esi
408596:	85 f6                	test   %esi,%esi
408598:	79 1e                	jns    0x4085b8
40859a:	ff 75 fc             	push   -0x4(%ebp)
40859d:	68 98 cc 44 00       	push   $0x44cc98
4085a2:	e9 07 01 00 00       	jmp    0x4086ae
4085a7:	8b 43 20             	mov    0x20(%ebx),%eax
4085aa:	6b cf 38             	imul   $0x38,%edi,%ecx
4085ad:	83 7c 01 2c 00       	cmpl   $0x0,0x2c(%ecx,%eax,1)
4085b2:	0f 8f cd 00 00 00    	jg     0x408685
4085b8:	8b 4b 20             	mov    0x20(%ebx),%ecx
4085bb:	8b 45 f0             	mov    -0x10(%ebp),%eax
4085be:	6b ff 38             	imul   $0x38,%edi,%edi
4085c1:	89 44 0f 20          	mov    %eax,0x20(%edi,%ecx,1)
4085c5:	8b 4b 20             	mov    0x20(%ebx),%ecx
4085c8:	8b 45 e0             	mov    -0x20(%ebp),%eax
4085cb:	89 44 0f 28          	mov    %eax,0x28(%edi,%ecx,1)
4085cf:	8d 45 c8             	lea    -0x38(%ebp),%eax
4085d2:	50                   	push   %eax
4085d3:	8b 43 20             	mov    0x20(%ebx),%eax
4085d6:	83 c0 08             	add    $0x8,%eax
4085d9:	03 c7                	add    %edi,%eax
4085db:	50                   	push   %eax
4085dc:	e8 7a 7d 01 00       	call   0x42035b
4085e1:	8b f0                	mov    %eax,%esi
4085e3:	85 f6                	test   %esi,%esi
4085e5:	0f 88 90 00 00 00    	js     0x40867b
4085eb:	8b 43 20             	mov    0x20(%ebx),%eax
4085ee:	ff 75 f0             	push   -0x10(%ebp)
4085f1:	83 c0 08             	add    $0x8,%eax
4085f4:	03 c7                	add    %edi,%eax
4085f6:	50                   	push   %eax
4085f7:	e8 4a 7c 01 00       	call   0x420246
4085fc:	8b f0                	mov    %eax,%esi
4085fe:	85 f6                	test   %esi,%esi
408600:	78 72                	js     0x408674
408602:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408605:	85 c9                	test   %ecx,%ecx
408607:	74 0a                	je     0x408613
408609:	8b 01                	mov    (%ecx),%eax
40860b:	51                   	push   %ecx
40860c:	ff 50 08             	call   *0x8(%eax)
40860f:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
408613:	8d 45 c8             	lea    -0x38(%ebp),%eax
408616:	50                   	push   %eax
408617:	e8 7d 7e 01 00       	call   0x420499
40861c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
408620:	74 0c                	je     0x40862e
408622:	ff 75 f8             	push   -0x8(%ebp)
408625:	e8 69 a1 ff ff       	call   0x402793
40862a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40862e:	8b 7d 08             	mov    0x8(%ebp),%edi
408631:	47                   	inc    %edi
408632:	89 7d 08             	mov    %edi,0x8(%ebp)
408635:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
408638:	0f 83 9c 00 00 00    	jae    0x4086da
40863e:	33 ff                	xor    %edi,%edi
408640:	e9 8b fd ff ff       	jmp    0x4083d0
408645:	ff 75 f8             	push   -0x8(%ebp)
408648:	bf 57 00 07 80       	mov    $0x80070057,%edi
40864d:	8b f7                	mov    %edi,%esi
40864f:	68 0c cc 44 00       	push   $0x44cc0c
408654:	57                   	push   %edi
408655:	e8 d5 7a 03 00       	call   0x44012f
40865a:	83 c4 0c             	add    $0xc,%esp
40865d:	eb 7b                	jmp    0x4086da
40865f:	68 28 cb 44 00       	push   $0x44cb28
408664:	eb 6c                	jmp    0x4086d2
408666:	68 fc ca 44 00       	push   $0x44cafc
40866b:	eb 65                	jmp    0x4086d2
40866d:	68 e4 ca 44 00       	push   $0x44cae4
408672:	eb 5e                	jmp    0x4086d2
408674:	68 20 cd 44 00       	push   $0x44cd20
408679:	eb 57                	jmp    0x4086d2
40867b:	ff 75 fc             	push   -0x4(%ebp)
40867e:	68 f8 cc 44 00       	push   $0x44ccf8
408683:	eb 29                	jmp    0x4086ae
408685:	bf 57 00 07 80       	mov    $0x80070057,%edi
40868a:	57                   	push   %edi
40868b:	68 8a 01 00 00       	push   $0x18a
408690:	68 bc cc 44 00       	push   $0x44ccbc
408695:	8b f7                	mov    %edi,%esi
408697:	e8 37 b1 ff ff       	call   0x4037d3
40869c:	ff 75 fc             	push   -0x4(%ebp)
40869f:	68 cc cc 44 00       	push   $0x44cccc
4086a4:	eb ae                	jmp    0x408654
4086a6:	ff 75 fc             	push   -0x4(%ebp)
4086a9:	68 70 cc 44 00       	push   $0x44cc70
4086ae:	56                   	push   %esi
4086af:	eb a4                	jmp    0x408655
4086b1:	68 50 cc 44 00       	push   $0x44cc50
4086b6:	eb 1a                	jmp    0x4086d2
4086b8:	68 bc ca 44 00       	push   $0x44cabc
4086bd:	eb 13                	jmp    0x4086d2
4086bf:	68 90 ca 44 00       	push   $0x44ca90
4086c4:	eb 0c                	jmp    0x4086d2
4086c6:	68 6c ca 44 00       	push   $0x44ca6c
4086cb:	eb 05                	jmp    0x4086d2
4086cd:	68 48 ca 44 00       	push   $0x44ca48
4086d2:	56                   	push   %esi
4086d3:	e8 57 7a 03 00       	call   0x44012f
4086d8:	59                   	pop    %ecx
4086d9:	59                   	pop    %ecx
4086da:	53                   	push   %ebx
4086db:	ff 15 b8 b1 44 00    	call   *0x44b1b8
4086e1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4086e4:	85 c9                	test   %ecx,%ecx
4086e6:	74 06                	je     0x4086ee
4086e8:	8b 01                	mov    (%ecx),%eax
4086ea:	51                   	push   %ecx
4086eb:	ff 50 08             	call   *0x8(%eax)
4086ee:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4086f1:	85 c9                	test   %ecx,%ecx
4086f3:	74 06                	je     0x4086fb
4086f5:	8b 01                	mov    (%ecx),%eax
4086f7:	51                   	push   %ecx
4086f8:	ff 50 08             	call   *0x8(%eax)
4086fb:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4086ff:	74 08                	je     0x408709
408701:	ff 75 f8             	push   -0x8(%ebp)
408704:	e8 e6 cd 03 00       	call   0x4454ef
408709:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40870d:	74 08                	je     0x408717
40870f:	ff 75 fc             	push   -0x4(%ebp)
408712:	e8 d8 cd 03 00       	call   0x4454ef
408717:	8d 45 c8             	lea    -0x38(%ebp),%eax
40871a:	50                   	push   %eax
40871b:	e8 79 7d 01 00       	call   0x420499
408720:	5f                   	pop    %edi
408721:	8b c6                	mov    %esi,%eax
408723:	5e                   	pop    %esi
408724:	5b                   	pop    %ebx
408725:	8b e5                	mov    %ebp,%esp
408727:	5d                   	pop    %ebp
408728:	c2 08 00             	ret    $0x8
40872b:	55                   	push   %ebp
40872c:	8b ec                	mov    %esp,%ebp
40872e:	56                   	push   %esi
40872f:	8b 75 08             	mov    0x8(%ebp),%esi
408732:	57                   	push   %edi
408733:	56                   	push   %esi
408734:	ff 15 8c b1 44 00    	call   *0x44b18c
40873a:	33 ff                	xor    %edi,%edi
40873c:	39 7e 20             	cmp    %edi,0x20(%esi)
40873f:	74 3f                	je     0x408780
408741:	39 7e 1c             	cmp    %edi,0x1c(%esi)
408744:	76 32                	jbe    0x408778
408746:	8b c7                	mov    %edi,%eax
408748:	89 45 08             	mov    %eax,0x8(%ebp)
40874b:	53                   	push   %ebx
40874c:	8b 5e 20             	mov    0x20(%esi),%ebx
40874f:	03 d8                	add    %eax,%ebx
408751:	74 18                	je     0x40876b
408753:	83 3b 00             	cmpl   $0x0,(%ebx)
408756:	74 07                	je     0x40875f
408758:	ff 33                	push   (%ebx)
40875a:	e8 90 cd 03 00       	call   0x4454ef
40875f:	8d 43 08             	lea    0x8(%ebx),%eax
408762:	50                   	push   %eax
408763:	e8 31 7d 01 00       	call   0x420499
408768:	8b 45 08             	mov    0x8(%ebp),%eax
40876b:	47                   	inc    %edi
40876c:	83 c0 38             	add    $0x38,%eax
40876f:	89 45 08             	mov    %eax,0x8(%ebp)
408772:	3b 7e 1c             	cmp    0x1c(%esi),%edi
408775:	72 d5                	jb     0x40874c
408777:	5b                   	pop    %ebx
408778:	ff 76 20             	push   0x20(%esi)
40877b:	e8 19 b2 ff ff       	call   0x403999
408780:	5f                   	pop    %edi
408781:	5e                   	pop    %esi
408782:	5d                   	pop    %ebp
408783:	c2 04 00             	ret    $0x4
408786:	55                   	push   %ebp
408787:	8b ec                	mov    %esp,%ebp
408789:	8b 45 08             	mov    0x8(%ebp),%eax
40878c:	b9 05 00 03 00       	mov    $0x30005,%ecx
408791:	33 d2                	xor    %edx,%edx
408793:	3b c1                	cmp    %ecx,%eax
408795:	7f 3d                	jg     0x4087d4
408797:	74 15                	je     0x4087ae
408799:	05 fb ff fe ff       	add    $0xfffefffb,%eax
40879e:	83 f8 08             	cmp    $0x8,%eax
4087a1:	0f 87 e8 00 00 00    	ja     0x40888f
4087a7:	ff 24 85 9a 88 40 00 	jmp    *0x40889a(,%eax,4)
4087ae:	8b 45 10             	mov    0x10(%ebp),%eax
4087b1:	3b 45 18             	cmp    0x18(%ebp),%eax
4087b4:	7f 12                	jg     0x4087c8
4087b6:	0f 8c cb 00 00 00    	jl     0x408887
4087bc:	8b 45 0c             	mov    0xc(%ebp),%eax
4087bf:	3b 45 14             	cmp    0x14(%ebp),%eax
4087c2:	0f 82 bf 00 00 00    	jb     0x408887
4087c8:	8b ca                	mov    %edx,%ecx
4087ca:	8b 45 1c             	mov    0x1c(%ebp),%eax
4087cd:	89 08                	mov    %ecx,(%eax)
4087cf:	e9 c0 00 00 00       	jmp    0x408894
4087d4:	05 fa ff fc ff       	add    $0xfffcfffa,%eax
4087d9:	83 f8 07             	cmp    $0x7,%eax
4087dc:	0f 87 ad 00 00 00    	ja     0x40888f
4087e2:	ff 24 85 be 88 40 00 	jmp    *0x4088be(,%eax,4)
4087e9:	8b 45 10             	mov    0x10(%ebp),%eax
4087ec:	3b 45 18             	cmp    0x18(%ebp),%eax
4087ef:	7c d7                	jl     0x4087c8
4087f1:	0f 8f 90 00 00 00    	jg     0x408887
4087f7:	8b 45 0c             	mov    0xc(%ebp),%eax
4087fa:	3b 45 14             	cmp    0x14(%ebp),%eax
4087fd:	76 c9                	jbe    0x4087c8
4087ff:	e9 83 00 00 00       	jmp    0x408887
408804:	8b 45 10             	mov    0x10(%ebp),%eax
408807:	3b 45 18             	cmp    0x18(%ebp),%eax
40880a:	7f bc                	jg     0x4087c8
40880c:	7c 79                	jl     0x408887
40880e:	8b 45 0c             	mov    0xc(%ebp),%eax
408811:	3b 45 14             	cmp    0x14(%ebp),%eax
408814:	77 b2                	ja     0x4087c8
408816:	eb 6f                	jmp    0x408887
408818:	8b 45 10             	mov    0x10(%ebp),%eax
40881b:	3b 45 18             	cmp    0x18(%ebp),%eax
40881e:	7c a8                	jl     0x4087c8
408820:	7f 65                	jg     0x408887
408822:	8b 45 0c             	mov    0xc(%ebp),%eax
408825:	3b 45 14             	cmp    0x14(%ebp),%eax
408828:	72 9e                	jb     0x4087c8
40882a:	eb 5b                	jmp    0x408887
40882c:	8b 45 0c             	mov    0xc(%ebp),%eax
40882f:	3b 45 14             	cmp    0x14(%ebp),%eax
408832:	75 94                	jne    0x4087c8
408834:	8b 45 10             	mov    0x10(%ebp),%eax
408837:	3b 45 18             	cmp    0x18(%ebp),%eax
40883a:	eb 45                	jmp    0x408881
40883c:	8b 45 0c             	mov    0xc(%ebp),%eax
40883f:	3b 45 14             	cmp    0x14(%ebp),%eax
408842:	75 43                	jne    0x408887
408844:	8b 45 10             	mov    0x10(%ebp),%eax
408847:	3b 45 18             	cmp    0x18(%ebp),%eax
40884a:	0f 84 78 ff ff ff    	je     0x4087c8
408850:	eb 35                	jmp    0x408887
408852:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408855:	8b 45 10             	mov    0x10(%ebp),%eax
408858:	23 4d 14             	and    0x14(%ebp),%ecx
40885b:	23 45 18             	and    0x18(%ebp),%eax
40885e:	0b c8                	or     %eax,%ecx
408860:	eb e8                	jmp    0x40884a
408862:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408865:	8b 45 10             	mov    0x10(%ebp),%eax
408868:	0f ac c1 10          	shrd   $0x10,%eax,%ecx
40886c:	0f b7 c1             	movzwl %cx,%eax
40886f:	eb 04                	jmp    0x408875
408871:	0f b7 45 0c          	movzwl 0xc(%ebp),%eax
408875:	3b 45 14             	cmp    0x14(%ebp),%eax
408878:	0f 85 4a ff ff ff    	jne    0x4087c8
40887e:	3b 55 18             	cmp    0x18(%ebp),%edx
408881:	0f 85 41 ff ff ff    	jne    0x4087c8
408887:	33 c9                	xor    %ecx,%ecx
408889:	41                   	inc    %ecx
40888a:	e9 3b ff ff ff       	jmp    0x4087ca
40888f:	ba 57 00 07 80       	mov    $0x80070057,%edx
408894:	8b c2                	mov    %edx,%eax
408896:	5d                   	pop    %ebp
408897:	c2 18 00             	ret    $0x18
40889a:	ae                   	scas   %es:(%edi),%al
40889b:	87 40 00             	xchg   %eax,0x0(%eax)
40889e:	e9 87 40 00 04       	jmp    0x440c92a
4088a3:	88 40 00             	mov    %al,0x0(%eax)
4088a6:	18 88 40 00 2c 88    	sbb    %cl,-0x77d3ffc0(%eax)
4088ac:	40                   	inc    %eax
4088ad:	00 3c 88             	add    %bh,(%eax,%ecx,4)
4088b0:	40                   	inc    %eax
4088b1:	00 52 88             	add    %dl,-0x78(%edx)
4088b4:	40                   	inc    %eax
4088b5:	00 62 88             	add    %ah,-0x78(%edx)
4088b8:	40                   	inc    %eax
4088b9:	00 71 88             	add    %dh,-0x78(%ecx)
4088bc:	40                   	inc    %eax
4088bd:	00 e9                	add    %ch,%cl
4088bf:	87 40 00             	xchg   %eax,0x0(%eax)
4088c2:	04 88                	add    $0x88,%al
4088c4:	40                   	inc    %eax
4088c5:	00 18                	add    %bl,(%eax)
4088c7:	88 40 00             	mov    %al,0x0(%eax)
4088ca:	2c 88                	sub    $0x88,%al
4088cc:	40                   	inc    %eax
4088cd:	00 3c 88             	add    %bh,(%eax,%ecx,4)
4088d0:	40                   	inc    %eax
4088d1:	00 52 88             	add    %dl,-0x78(%edx)
4088d4:	40                   	inc    %eax
4088d5:	00 62 88             	add    %ah,-0x78(%edx)
4088d8:	40                   	inc    %eax
4088d9:	00 71 88             	add    %dh,-0x78(%ecx)
4088dc:	40                   	inc    %eax
4088dd:	00 55 8b             	add    %dl,-0x75(%ebp)
4088e0:	ec                   	in     (%dx),%al
4088e1:	51                   	push   %ecx
4088e2:	53                   	push   %ebx
4088e3:	56                   	push   %esi
4088e4:	8b 35 f8 b0 44 00    	mov    0x44b0f8,%esi
4088ea:	33 db                	xor    %ebx,%ebx
4088ec:	57                   	push   %edi
4088ed:	8b 7d 08             	mov    0x8(%ebp),%edi
4088f0:	8b c7                	mov    %edi,%eax
4088f2:	ff 75 0c             	push   0xc(%ebp)
4088f5:	c1 e8 11             	shr    $0x11,%eax
4088f8:	83 e0 01             	and    $0x1,%eax
4088fb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4088fe:	ff d6                	call   *%esi
408900:	ff 75 10             	push   0x10(%ebp)
408903:	89 45 08             	mov    %eax,0x8(%ebp)