40157e:	75 07                	jne    0x401587
401580:	33 db                	xor    %ebx,%ebx
401582:	53                   	push   %ebx
401583:	6a f6                	push   $0xfffffff6
401585:	ff d6                	call   *%esi
401587:	8b 45 fc             	mov    -0x4(%ebp),%eax
40158a:	3b f8                	cmp    %eax,%edi
40158c:	74 05                	je     0x401593
40158e:	39 45 f4             	cmp    %eax,-0xc(%ebp)
401591:	75 0a                	jne    0x40159d
401593:	6a 00                	push   $0x0
401595:	6a f5                	push   $0xfffffff5
401597:	ff d6                	call   *%esi
401599:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40159d:	8b 45 f8             	mov    -0x8(%ebp),%eax
4015a0:	3b f8                	cmp    %eax,%edi
4015a2:	74 05                	je     0x4015a9
4015a4:	39 45 f4             	cmp    %eax,-0xc(%ebp)
4015a7:	75 0a                	jne    0x4015b3
4015a9:	6a 00                	push   $0x0
4015ab:	6a f4                	push   $0xfffffff4
4015ad:	ff d6                	call   *%esi
4015af:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4015b3:	8b 45 f0             	mov    -0x10(%ebp),%eax
4015b6:	3b c3                	cmp    %ebx,%eax
4015b8:	75 02                	jne    0x4015bc
4015ba:	33 db                	xor    %ebx,%ebx
4015bc:	3b 45 fc             	cmp    -0x4(%ebp),%eax
4015bf:	75 04                	jne    0x4015c5
4015c1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4015c5:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4015c8:	75 04                	jne    0x4015ce
4015ca:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4015ce:	8b 3d 58 f0 40 00    	mov    0x40f058,%edi
4015d4:	85 db                	test   %ebx,%ebx
4015d6:	74 0e                	je     0x4015e6
4015d8:	83 fb ff             	cmp    $0xffffffff,%ebx
4015db:	74 09                	je     0x4015e6
4015dd:	53                   	push   %ebx
4015de:	ff d7                	call   *%edi
4015e0:	6a 00                	push   $0x0
4015e2:	6a f6                	push   $0xfffffff6
4015e4:	ff d6                	call   *%esi
4015e6:	33 db                	xor    %ebx,%ebx
4015e8:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
4015eb:	74 10                	je     0x4015fd
4015ed:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%ebp)
4015f1:	74 0a                	je     0x4015fd
4015f3:	ff 75 fc             	push   -0x4(%ebp)
4015f6:	ff d7                	call   *%edi
4015f8:	53                   	push   %ebx
4015f9:	6a f5                	push   $0xfffffff5
4015fb:	ff d6                	call   *%esi
4015fd:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
401600:	74 10                	je     0x401612
401602:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%ebp)
401606:	74 0a                	je     0x401612
401608:	ff 75 f8             	push   -0x8(%ebp)
40160b:	ff d7                	call   *%edi
40160d:	53                   	push   %ebx
40160e:	6a f4                	push   $0xfffffff4
401610:	ff d6                	call   *%esi
401612:	5b                   	pop    %ebx
401613:	5f                   	pop    %edi
401614:	5e                   	pop    %esi
401615:	c9                   	leave
401616:	c3                   	ret
401617:	55                   	push   %ebp
401618:	8b ec                	mov    %esp,%ebp
40161a:	81 ec 64 0a 00 00    	sub    $0xa64,%esp
401620:	a1 84 22 41 00       	mov    0x412284,%eax
401625:	33 c5                	xor    %ebp,%eax
401627:	89 45 fc             	mov    %eax,-0x4(%ebp)
40162a:	8b 45 08             	mov    0x8(%ebp),%eax
40162d:	53                   	push   %ebx
40162e:	56                   	push   %esi
40162f:	57                   	push   %edi
401630:	33 ff                	xor    %edi,%edi
401632:	57                   	push   %edi
401633:	57                   	push   %edi
401634:	89 85 e8 f5 ff ff    	mov    %eax,-0xa18(%ebp)
40163a:	ff 15 3c f0 40 00    	call   *0x40f03c
401640:	33 c9                	xor    %ecx,%ecx
401642:	3b c7                	cmp    %edi,%eax
401644:	0f 95 c1             	setne  %cl
401647:	68 18 0b 41 00       	push   $0x410b18
40164c:	a3 68 3b 41 00       	mov    %eax,0x413b68
401651:	51                   	push   %ecx
401652:	e8 13 fa ff ff       	call   0x40106a
401657:	59                   	pop    %ecx
401658:	59                   	pop    %ecx
401659:	8d 85 ec f5 ff ff    	lea    -0xa14(%ebp),%eax
40165f:	50                   	push   %eax
401660:	6a 70                	push   $0x70
401662:	be 70 3b 41 00       	mov    $0x413b70,%esi
401667:	56                   	push   %esi
401668:	6a 09                	push   $0x9
40166a:	ff 35 68 3b 41 00    	push   0x413b68
401670:	ff 15 2c f0 40 00    	call   *0x40f02c
401676:	85 c0                	test   %eax,%eax
401678:	74 0e                	je     0x401688
40167a:	83 bd ec f5 ff ff 70 	cmpl   $0x70,-0xa14(%ebp)
401681:	75 05                	jne    0x401688
401683:	33 c0                	xor    %eax,%eax
401685:	40                   	inc    %eax
401686:	eb 02                	jmp    0x40168a
401688:	33 c0                	xor    %eax,%eax
40168a:	68 2c 0b 41 00       	push   $0x410b2c
40168f:	50                   	push   %eax
401690:	e8 d5 f9 ff ff       	call   0x40106a
401695:	81 0d 80 3b 41 00 00 	orl    $0x3000,0x413b80
40169c:	30 00 00
40169f:	59                   	pop    %ecx
4016a0:	59                   	pop    %ecx
4016a1:	6a 70                	push   $0x70
4016a3:	56                   	push   %esi
4016a4:	6a 09                	push   $0x9
4016a6:	ff 35 68 3b 41 00    	push   0x413b68
4016ac:	ff 15 0c f0 40 00    	call   *0x40f00c
4016b2:	68 4c 0b 41 00       	push   $0x410b4c
4016b7:	50                   	push   %eax
4016b8:	e8 ad f9 ff ff       	call   0x40106a
4016bd:	6a 44                	push   $0x44
4016bf:	8d 85 9c f5 ff ff    	lea    -0xa64(%ebp),%eax
4016c5:	57                   	push   %edi
4016c6:	50                   	push   %eax
4016c7:	e8 14 63 00 00       	call   0x4079e0
4016cc:	83 c4 14             	add    $0x14,%esp
4016cf:	8d 85 9c f5 ff ff    	lea    -0xa64(%ebp),%eax
4016d5:	50                   	push   %eax
4016d6:	ff 15 34 f0 40 00    	call   *0x40f034
4016dc:	f7 85 c8 f5 ff ff 00 	testl  $0x600,-0xa38(%ebp)
4016e3:	06 00 00
4016e6:	0f 85 85 00 00 00    	jne    0x401771
4016ec:	8b 35 40 f0 40 00    	mov    0x40f040,%esi
4016f2:	6a f6                	push   $0xfffffff6
4016f4:	ff d6                	call   *%esi
4016f6:	6a f5                	push   $0xfffffff5
4016f8:	8b d8                	mov    %eax,%ebx
4016fa:	ff d6                	call   *%esi
4016fc:	6a f4                	push   $0xfffffff4
4016fe:	89 85 e0 f5 ff ff    	mov    %eax,-0xa20(%ebp)
401704:	ff d6                	call   *%esi
401706:	53                   	push   %ebx
401707:	89 85 e4 f5 ff ff    	mov    %eax,-0xa1c(%ebp)
40170d:	e8 c8 fc ff ff       	call   0x4013da
401712:	c7 04 24 6c 0b 41 00 	movl   $0x410b6c,(%esp)
401719:	50                   	push   %eax
40171a:	e8 4b f9 ff ff       	call   0x40106a
40171f:	8b b5 e0 f5 ff ff    	mov    -0xa20(%ebp),%esi
401725:	56                   	push   %esi
401726:	e8 af fc ff ff       	call   0x4013da
40172b:	68 8c 0b 41 00       	push   $0x410b8c
401730:	50                   	push   %eax
401731:	e8 34 f9 ff ff       	call   0x40106a
401736:	ff b5 e4 f5 ff ff    	push   -0xa1c(%ebp)
40173c:	e8 99 fc ff ff       	call   0x4013da
401741:	68 b0 0b 41 00       	push   $0x410bb0
401746:	50                   	push   %eax
401747:	e8 1e f9 ff ff       	call   0x40106a
40174c:	8b 85 e4 f5 ff ff    	mov    -0xa1c(%ebp),%eax
401752:	83 c4 20             	add    $0x20,%esp
401755:	81 8d c8 f5 ff ff 00 	orl    $0x100,-0xa38(%ebp)
40175c:	01 00 00
40175f:	89 9d d4 f5 ff ff    	mov    %ebx,-0xa2c(%ebp)
401765:	89 b5 d8 f5 ff ff    	mov    %esi,-0xa28(%ebp)
40176b:	89 85 dc f5 ff ff    	mov    %eax,-0xa24(%ebp)
401771:	68 e8 3d 41 00       	push   $0x413de8
401776:	8d 85 9c f5 ff ff    	lea    -0xa64(%ebp),%eax
40177c:	50                   	push   %eax
40177d:	57                   	push   %edi
40177e:	57                   	push   %edi
40177f:	57                   	push   %edi
401780:	6a 01                	push   $0x1
401782:	57                   	push   %edi
401783:	57                   	push   %edi
401784:	ff b5 e8 f5 ff ff    	push   -0xa18(%ebp)
40178a:	57                   	push   %edi
40178b:	ff 15 10 f0 40 00    	call   *0x40f010
401791:	3b c7                	cmp    %edi,%eax
401793:	75 3d                	jne    0x4017d2
401795:	ff 15 44 f0 40 00    	call   *0x40f044
40179b:	57                   	push   %edi
40179c:	b9 00 04 00 00       	mov    $0x400,%ecx
4017a1:	51                   	push   %ecx
4017a2:	8d 95 f0 f5 ff ff    	lea    -0xa10(%ebp),%edx
4017a8:	52                   	push   %edx
4017a9:	51                   	push   %ecx
4017aa:	50                   	push   %eax
4017ab:	57                   	push   %edi
4017ac:	68 00 10 00 00       	push   $0x1000
4017b1:	ff 15 20 f0 40 00    	call   *0x40f020
4017b7:	8d 85 f0 f5 ff ff    	lea    -0xa10(%ebp),%eax
4017bd:	50                   	push   %eax
4017be:	ff b5 e8 f5 ff ff    	push   -0xa18(%ebp)
4017c4:	68 d8 0b 41 00       	push   $0x410bd8
4017c9:	57                   	push   %edi
4017ca:	e8 31 f8 ff ff       	call   0x401000
4017cf:	83 c4 10             	add    $0x10,%esp
4017d2:	ff 35 e8 3d 41 00    	push   0x413de8
4017d8:	ff 35 68 3b 41 00    	push   0x413b68
4017de:	ff 15 1c f0 40 00    	call   *0x40f01c
4017e4:	ff b5 ce f5 ff ff    	push   -0xa32(%ebp)
4017ea:	8b 85 d0 f5 ff ff    	mov    -0xa30(%ebp),%eax
4017f0:	e8 15 fc ff ff       	call   0x40140a
4017f5:	59                   	pop    %ecx
4017f6:	e8 c5 fc ff ff       	call   0x4014c0
4017fb:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
401801:	50                   	push   %eax
401802:	68 05 01 00 00       	push   $0x105
401807:	ff 15 38 f0 40 00    	call   *0x40f038
40180d:	48                   	dec    %eax
40180e:	3d 03 01 00 00       	cmp    $0x103,%eax
401813:	77 0d                	ja     0x401822
401815:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40181b:	50                   	push   %eax
40181c:	ff 15 54 f0 40 00    	call   *0x40f054
401822:	6a 01                	push   $0x1
401824:	68 9d 13 40 00       	push   $0x40139d
401829:	ff 15 50 f0 40 00    	call   *0x40f050
40182f:	68 2c 0c 41 00       	push   $0x410c2c
401834:	50                   	push   %eax
401835:	e8 30 f8 ff ff       	call   0x40106a
40183a:	59                   	pop    %ecx
40183b:	59                   	pop    %ecx
40183c:	ff 35 ec 3d 41 00    	push   0x413dec
401842:	ff 15 58 f0 40 00    	call   *0x40f058
401848:	57                   	push   %edi
401849:	6a ff                	push   $0xffffffff
40184b:	ff 35 e8 3d 41 00    	push   0x413de8
401851:	ff 15 18 f0 40 00    	call   *0x40f018
401857:	8d 85 ec f5 ff ff    	lea    -0xa14(%ebp),%eax
40185d:	50                   	push   %eax
40185e:	ff 35 e8 3d 41 00    	push   0x413de8
401864:	ff 15 24 f0 40 00    	call   *0x40f024
40186a:	68 4c 0c 41 00       	push   $0x410c4c
40186f:	50                   	push   %eax
401870:	e8 f5 f7 ff ff       	call   0x40106a
401875:	59                   	pop    %ecx
401876:	59                   	pop    %ecx
401877:	ff b5 ec f5 ff ff    	push   -0xa14(%ebp)
40187d:	ff 15 00 f0 40 00    	call   *0x40f000
401883:	cc                   	int3
401884:	55                   	push   %ebp
401885:	8b ec                	mov    %esp,%ebp
401887:	51                   	push   %ecx
401888:	53                   	push   %ebx
401889:	56                   	push   %esi
40188a:	57                   	push   %edi
40188b:	8b 3d 4c f1 40 00    	mov    0x40f14c,%edi
401891:	bb 70 0c 41 00       	mov    $0x410c70,%ebx
401896:	53                   	push   %ebx
401897:	ff 75 08             	push   0x8(%ebp)
40189a:	ff d7                	call   *%edi
40189c:	8b f0                	mov    %eax,%esi
40189e:	85 f6                	test   %esi,%esi
4018a0:	74 3e                	je     0x4018e0
4018a2:	8d 46 08             	lea    0x8(%esi),%eax
4018a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4018a8:	0f b7 00             	movzwl (%eax),%eax
4018ab:	66 85 c0             	test   %ax,%ax
4018ae:	74 1f                	je     0x4018cf
4018b0:	83 f8 22             	cmp    $0x22,%eax
4018b3:	74 1a                	je     0x4018cf
4018b5:	6a 08                	push   $0x8
4018b7:	50                   	push   %eax
4018b8:	e8 9e 11 00 00       	call   0x402a5b
4018bd:	59                   	pop    %ecx
4018be:	59                   	pop    %ecx
4018bf:	85 c0                	test   %eax,%eax
4018c1:	75 0c                	jne    0x4018cf
4018c3:	53                   	push   %ebx
4018c4:	ff 75 fc             	push   -0x4(%ebp)
4018c7:	ff d7                	call   *%edi
4018c9:	8b f0                	mov    %eax,%esi
4018cb:	85 f6                	test   %esi,%esi
4018cd:	75 d3                	jne    0x4018a2
4018cf:	85 f6                	test   %esi,%esi
4018d1:	74 0d                	je     0x4018e0
4018d3:	8b 5d 08             	mov    0x8(%ebp),%ebx
4018d6:	83 c6 08             	add    $0x8,%esi
4018d9:	8b fb                	mov    %ebx,%edi
4018db:	e9 cd 00 00 00       	jmp    0x4019ad
4018e0:	8b 5d 08             	mov    0x8(%ebp),%ebx
4018e3:	6a 0c                	push   $0xc
4018e5:	68 7c 0c 41 00       	push   $0x410c7c
4018ea:	53                   	push   %ebx
4018eb:	e8 61 08 00 00       	call   0x402151
4018f0:	33 c9                	xor    %ecx,%ecx
4018f2:	85 c0                	test   %eax,%eax
4018f4:	0f 94 c1             	sete   %cl
4018f7:	53                   	push   %ebx
4018f8:	68 98 0c 41 00       	push   $0x410c98
4018fd:	51                   	push   %ecx
4018fe:	e8 67 f7 ff ff       	call   0x40106a
401903:	8d 7b 18             	lea    0x18(%ebx),%edi
401906:	0f b7 07             	movzwl (%edi),%eax
401909:	83 c4 18             	add    $0x18,%esp
40190c:	66 85 c0             	test   %ax,%ax
40190f:	74 13                	je     0x401924
401911:	6a 08                	push   $0x8
401913:	50                   	push   %eax
401914:	e8 42 11 00 00       	call   0x402a5b
401919:	59                   	pop    %ecx
40191a:	59                   	pop    %ecx
40191b:	85 c0                	test   %eax,%eax
40191d:	74 05                	je     0x401924
40191f:	33 c0                	xor    %eax,%eax
401921:	40                   	inc    %eax
401922:	eb 02                	jmp    0x401926
401924:	33 c0                	xor    %eax,%eax
401926:	53                   	push   %ebx
401927:	68 dc 0c 41 00       	push   $0x410cdc
40192c:	50                   	push   %eax
40192d:	e8 38 f7 ff ff       	call   0x40106a
401932:	83 c4 0c             	add    $0xc,%esp
401935:	83 c7 02             	add    $0x2,%edi
401938:	0f b7 07             	movzwl (%edi),%eax
40193b:	66 85 c0             	test   %ax,%ax
40193e:	74 0e                	je     0x40194e
401940:	6a 08                	push   $0x8
401942:	50                   	push   %eax
401943:	e8 13 11 00 00       	call   0x402a5b
401948:	59                   	pop    %ecx
401949:	59                   	pop    %ecx
40194a:	85 c0                	test   %eax,%eax
40194c:	75 e7                	jne    0x401935
40194e:	66 83 3f 00          	cmpw   $0x0,(%edi)
401952:	8b f7                	mov    %edi,%esi
401954:	74 19                	je     0x40196f
401956:	0f b7 06             	movzwl (%esi),%eax
401959:	6a 08                	push   $0x8
40195b:	50                   	push   %eax
40195c:	e8 fa 10 00 00       	call   0x402a5b
401961:	59                   	pop    %ecx
401962:	59                   	pop    %ecx
401963:	85 c0                	test   %eax,%eax
401965:	75 08                	jne    0x40196f
401967:	83 c6 02             	add    $0x2,%esi
40196a:	66 39 06             	cmp    %ax,(%esi)
40196d:	75 e7                	jne    0x401956
40196f:	0f b7 06             	movzwl (%esi),%eax
401972:	6a 08                	push   $0x8
401974:	50                   	push   %eax
401975:	e8 e1 10 00 00       	call   0x402a5b
40197a:	59                   	pop    %ecx
40197b:	59                   	pop    %ecx
40197c:	85 c0                	test   %eax,%eax
40197e:	74 08                	je     0x401988
401980:	33 c0                	xor    %eax,%eax