401604:	ff 75 08             	push   0x8(%ebp)
401607:	e8 90 43 00 00       	call   0x40599c
40160c:	3b c3                	cmp    %ebx,%eax
40160e:	74 17                	je     0x401627
401610:	3d b7 00 00 00       	cmp    $0xb7,%eax
401615:	75 0d                	jne    0x401624
401617:	ff 75 08             	push   0x8(%ebp)
40161a:	ff 15 94 80 40 00    	call   *0x408094
401620:	a8 10                	test   $0x10,%al
401622:	75 03                	jne    0x401627
401624:	ff 45 fc             	incl   -0x4(%ebp)
401627:	66 89 3e             	mov    %di,(%esi)
40162a:	46                   	inc    %esi
40162b:	46                   	inc    %esi
40162c:	66 3b fb             	cmp    %bx,%di
40162f:	75 a6                	jne    0x4015d7
401631:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
401634:	74 2d                	je     0x401663
401636:	6a e6                	push   $0xffffffe6
401638:	e8 e6 fd ff ff       	call   0x401423
40163d:	ff 75 08             	push   0x8(%ebp)
401640:	68 00 60 43 00       	push   $0x436000
401645:	e8 9e 4d 00 00       	call   0x4063e8
40164a:	ff 75 08             	push   0x8(%ebp)
40164d:	ff 15 90 80 40 00    	call   *0x408090
401653:	85 c0                	test   %eax,%eax
401655:	0f 85 6a 14 00 00    	jne    0x402ac5
40165b:	ff 45 fc             	incl   -0x4(%ebp)
40165e:	e9 62 14 00 00       	jmp    0x402ac5
401663:	6a f5                	push   $0xfffffff5
401665:	e9 e1 0b 00 00       	jmp    0x40224b
40166a:	53                   	push   %ebx
40166b:	e8 d1 15 00 00       	call   0x402c41
401670:	50                   	push   %eax
401671:	e8 b5 50 00 00       	call   0x40672b
401676:	e9 89 06 00 00       	jmp    0x401d04
40167b:	6a d0                	push   $0xffffffd0
40167d:	e8 bf 15 00 00       	call   0x402c41
401682:	6a df                	push   $0xffffffdf
401684:	8b f0                	mov    %eax,%esi
401686:	e8 b6 15 00 00       	call   0x402c41
40168b:	6a 13                	push   $0x13
40168d:	8b f8                	mov    %eax,%edi
40168f:	e8 ad 15 00 00       	call   0x402c41
401694:	57                   	push   %edi
401695:	56                   	push   %esi
401696:	ff 15 08 81 40 00    	call   *0x408108
40169c:	85 c0                	test   %eax,%eax
40169e:	74 07                	je     0x4016a7
4016a0:	6a e3                	push   $0xffffffe3
4016a2:	e9 a4 0b 00 00       	jmp    0x40224b
4016a7:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
4016aa:	0f 84 db 11 00 00    	je     0x40288b
4016b0:	56                   	push   %esi
4016b1:	e8 75 50 00 00       	call   0x40672b
4016b6:	85 c0                	test   %eax,%eax
4016b8:	0f 84 cd 11 00 00    	je     0x40288b
4016be:	57                   	push   %edi
4016bf:	56                   	push   %esi
4016c0:	e8 e9 4a 00 00       	call   0x4061ae
4016c5:	6a e4                	push   $0xffffffe4
4016c7:	e9 7f 0b 00 00       	jmp    0x40224b
4016cc:	53                   	push   %ebx
4016cd:	e8 6f 15 00 00       	call   0x402c41
4016d2:	8b 7d f4             	mov    -0xc(%ebp),%edi
4016d5:	8b f0                	mov    %eax,%esi
4016d7:	8d 45 08             	lea    0x8(%ebp),%eax
4016da:	50                   	push   %eax
4016db:	57                   	push   %edi
4016dc:	68 00 04 00 00       	push   $0x400
4016e1:	56                   	push   %esi
4016e2:	ff 15 0c 81 40 00    	call   *0x40810c
4016e8:	85 c0                	test   %eax,%eax
4016ea:	74 24                	je     0x401710
4016ec:	8b 45 08             	mov    0x8(%ebp),%eax
4016ef:	3b c6                	cmp    %esi,%eax
4016f1:	76 27                	jbe    0x40171a
4016f3:	66 39 18             	cmp    %bx,(%eax)
4016f6:	74 22                	je     0x40171a
4016f8:	56                   	push   %esi
4016f9:	e8 2d 50 00 00       	call   0x40672b
4016fe:	3b c3                	cmp    %ebx,%eax
401700:	74 0e                	je     0x401710
401702:	83 c0 2c             	add    $0x2c,%eax
401705:	50                   	push   %eax
401706:	ff 75 08             	push   0x8(%ebp)
401709:	e8 da 4c 00 00       	call   0x4063e8
40170e:	eb 0a                	jmp    0x40171a
401710:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401717:	66 89 1f             	mov    %bx,(%edi)
40171a:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40171d:	0f 85 a2 13 00 00    	jne    0x402ac5
401723:	68 00 04 00 00       	push   $0x400
401728:	57                   	push   %edi
401729:	57                   	push   %edi
40172a:	ff 15 bc 80 40 00    	call   *0x4080bc
401730:	e9 90 13 00 00       	jmp    0x402ac5
401735:	6a ff                	push   $0xffffffff
401737:	e8 05 15 00 00       	call   0x402c41
40173c:	8d 4d 08             	lea    0x8(%ebp),%ecx
40173f:	51                   	push   %ecx
401740:	56                   	push   %esi
401741:	68 00 04 00 00       	push   $0x400
401746:	53                   	push   %ebx
401747:	50                   	push   %eax
401748:	53                   	push   %ebx
401749:	ff 15 14 81 40 00    	call   *0x408114
40174f:	85 c0                	test   %eax,%eax
401751:	0f 85 6e 13 00 00    	jne    0x402ac5
401757:	e9 fd 10 00 00       	jmp    0x402859
40175c:	6a ef                	push   $0xffffffef
40175e:	e8 de 14 00 00       	call   0x402c41
401763:	50                   	push   %eax
401764:	56                   	push   %esi
401765:	e8 a3 47 00 00       	call   0x405f0d
40176a:	e9 45 fe ff ff       	jmp    0x4015b4
40176f:	6a 31                	push   $0x31
401771:	e8 cb 14 00 00       	call   0x402c41
401776:	89 45 f8             	mov    %eax,-0x8(%ebp)
401779:	8b 45 d8             	mov    -0x28(%ebp),%eax
40177c:	ff 75 f8             	push   -0x8(%ebp)
40177f:	83 e0 07             	and    $0x7,%eax
401782:	89 45 08             	mov    %eax,0x8(%ebp)
401785:	e8 aa 45 00 00       	call   0x405d34
40178a:	ff 75 f8             	push   -0x8(%ebp)
40178d:	be d8 a5 40 00       	mov    $0x40a5d8,%esi
401792:	85 c0                	test   %eax,%eax
401794:	74 08                	je     0x40179e
401796:	56                   	push   %esi
401797:	e8 4c 4c 00 00       	call   0x4063e8
40179c:	eb 17                	jmp    0x4017b5
40179e:	68 00 60 43 00       	push   $0x436000
4017a3:	56                   	push   %esi
4017a4:	e8 3f 4c 00 00       	call   0x4063e8
4017a9:	50                   	push   %eax
4017aa:	e8 0e 45 00 00       	call   0x405cbd
4017af:	50                   	push   %eax
4017b0:	e8 4f 4c 00 00       	call   0x406404
4017b5:	56                   	push   %esi
4017b6:	e8 c1 4e 00 00       	call   0x40667c
4017bb:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
4017bf:	7c 31                	jl     0x4017f2
4017c1:	56                   	push   %esi
4017c2:	e8 64 4f 00 00       	call   0x40672b
4017c7:	33 c9                	xor    %ecx,%ecx
4017c9:	3b c3                	cmp    %ebx,%eax
4017cb:	74 10                	je     0x4017dd
4017cd:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4017d0:	83 c0 14             	add    $0x14,%eax
4017d3:	51                   	push   %ecx
4017d4:	50                   	push   %eax
4017d5:	ff 15 18 81 40 00    	call   *0x408118
4017db:	8b c8                	mov    %eax,%ecx
4017dd:	8b 45 08             	mov    0x8(%ebp),%eax
4017e0:	83 c0 fd             	add    $0xfffffffd,%eax
4017e3:	0d 00 00 00 80       	or     $0x80000000,%eax
4017e8:	23 c1                	and    %ecx,%eax
4017ea:	f7 d8                	neg    %eax
4017ec:	1b c0                	sbb    %eax,%eax
4017ee:	40                   	inc    %eax
4017ef:	89 45 08             	mov    %eax,0x8(%ebp)
4017f2:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4017f5:	75 06                	jne    0x4017fd
4017f7:	56                   	push   %esi
4017f8:	e8 bc 46 00 00       	call   0x405eb9
4017fd:	33 c0                	xor    %eax,%eax
4017ff:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
401803:	0f 95 c0             	setne  %al
401806:	40                   	inc    %eax
401807:	50                   	push   %eax
401808:	68 00 00 00 40       	push   $0x40000000
40180d:	56                   	push   %esi
40180e:	e8 cb 46 00 00       	call   0x405ede
401813:	83 f8 ff             	cmp    $0xffffffff,%eax
401816:	89 45 d0             	mov    %eax,-0x30(%ebp)
401819:	75 72                	jne    0x40188d
40181b:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40181e:	75 4f                	jne    0x40186f
401820:	57                   	push   %edi
401821:	68 d8 b5 40 00       	push   $0x40b5d8
401826:	e8 bd 4b 00 00       	call   0x4063e8
40182b:	56                   	push   %esi
40182c:	57                   	push   %edi
40182d:	e8 b6 4b 00 00       	call   0x4063e8
401832:	ff 75 ec             	push   -0x14(%ebp)
401835:	68 d8 ad 40 00       	push   $0x40add8
40183a:	e8 cb 4b 00 00       	call   0x40640a
40183f:	68 d8 b5 40 00       	push   $0x40b5d8
401844:	57                   	push   %edi
401845:	e8 9e 4b 00 00       	call   0x4063e8
40184a:	8b 45 d8             	mov    -0x28(%ebp),%eax
40184d:	c1 f8 03             	sar    $0x3,%eax
401850:	50                   	push   %eax
401851:	68 d8 ad 40 00       	push   $0x40add8
401856:	e8 f3 41 00 00       	call   0x405a4e
40185b:	83 e8 04             	sub    $0x4,%eax
40185e:	0f 84 57 ff ff ff    	je     0x4017bb
401864:	48                   	dec    %eax
401865:	74 1b                	je     0x401882
401867:	56                   	push   %esi
401868:	6a fa                	push   $0xfffffffa
40186a:	e9 24 fc ff ff       	jmp    0x401493
40186f:	ff 75 f8             	push   -0x8(%ebp)
401872:	6a e2                	push   $0xffffffe2
401874:	e8 d7 3b 00 00       	call   0x405450
401879:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
40187d:	e9 34 fd ff ff       	jmp    0x4015b6
401882:	ff 05 e8 a2 42 00    	incl   0x42a2e8
401888:	e9 41 12 00 00       	jmp    0x402ace
40188d:	ff 75 f8             	push   -0x8(%ebp)
401890:	6a ea                	push   $0xffffffea
401892:	e8 b9 3b 00 00       	call   0x405450
401897:	ff 05 14 a3 42 00    	incl   0x42a314
40189d:	53                   	push   %ebx
40189e:	53                   	push   %ebx
40189f:	ff 75 d0             	push   -0x30(%ebp)
4018a2:	ff 75 e0             	push   -0x20(%ebp)
4018a5:	e8 2c 19 00 00       	call   0x4031d6
4018aa:	ff 0d 14 a3 42 00    	decl   0x42a314
4018b0:	83 7d e4 ff          	cmpl   $0xffffffff,-0x1c(%ebp)
4018b4:	8b f8                	mov    %eax,%edi
4018b6:	75 06                	jne    0x4018be
4018b8:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
4018bc:	74 12                	je     0x4018d0
4018be:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4018c1:	50                   	push   %eax
4018c2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4018c5:	53                   	push   %ebx
4018c6:	50                   	push   %eax
4018c7:	ff 75 d0             	push   -0x30(%ebp)
4018ca:	ff 15 10 81 40 00    	call   *0x408110
4018d0:	ff 75 d0             	push   -0x30(%ebp)
4018d3:	ff 15 20 81 40 00    	call   *0x408120
4018d9:	3b fb                	cmp    %ebx,%edi
4018db:	0f 8d e4 11 00 00    	jge    0x402ac5
4018e1:	83 ff fe             	cmp    $0xfffffffe,%edi
4018e4:	75 13                	jne    0x4018f9
4018e6:	6a e9                	push   $0xffffffe9
4018e8:	56                   	push   %esi
4018e9:	e8 1c 4b 00 00       	call   0x40640a
4018ee:	ff 75 f8             	push   -0x8(%ebp)
4018f1:	56                   	push   %esi
4018f2:	e8 0d 4b 00 00       	call   0x406404
4018f7:	eb 08                	jmp    0x401901
4018f9:	6a ee                	push   $0xffffffee
4018fb:	56                   	push   %esi
4018fc:	e8 09 4b 00 00       	call   0x40640a
401901:	68 10 00 20 00       	push   $0x200010
401906:	56                   	push   %esi
401907:	e9 e6 09 00 00       	jmp    0x4022f2
40190c:	53                   	push   %ebx
40190d:	eb 34                	jmp    0x401943
40190f:	6a 31                	push   $0x31
401911:	e8 2b 13 00 00       	call   0x402c41
401916:	ff 75 d8             	push   -0x28(%ebp)
401919:	50                   	push   %eax
40191a:	e8 2f 41 00 00       	call   0x405a4e
40191f:	3b c3                	cmp    %ebx,%eax
401921:	0f 84 64 0f 00 00    	je     0x40288b
401927:	3b 45 e0             	cmp    -0x20(%ebp),%eax
40192a:	0f 84 6c 01 00 00    	je     0x401a9c
401930:	3b 45 e8             	cmp    -0x18(%ebp),%eax
401933:	0f 85 8c 11 00 00    	jne    0x402ac5
401939:	8b 45 ec             	mov    -0x14(%ebp),%eax
40193c:	e9 8f 11 00 00       	jmp    0x402ad0
401941:	6a f0                	push   $0xfffffff0
401943:	e8 f9 12 00 00       	call   0x402c41
401948:	ff 75 dc             	push   -0x24(%ebp)
40194b:	50                   	push   %eax
40194c:	e8 a9 41 00 00       	call   0x405afa
401951:	e9 6f 11 00 00       	jmp    0x402ac5
401956:	6a 01                	push   $0x1
401958:	e8 e4 12 00 00       	call   0x402c41
40195d:	50                   	push   %eax
40195e:	e8 9b 4a 00 00       	call   0x4063fe
401963:	e9 2a 0c 00 00       	jmp    0x402592
401968:	6a 02                	push   $0x2
40196a:	e8 b0 12 00 00       	call   0x402c1f
40196f:	6a 03                	push   $0x3
401971:	89 45 b0             	mov    %eax,-0x50(%ebp)
401974:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401977:	e8 a3 12 00 00       	call   0x402c1f
40197c:	59                   	pop    %ecx
40197d:	8b f8                	mov    %eax,%edi
40197f:	8b 45 b0             	mov    -0x50(%ebp),%eax
401982:	59                   	pop    %ecx
401983:	6a 01                	push   $0x1
401985:	89 7d cc             	mov    %edi,-0x34(%ebp)
401988:	89 55 d0             	mov    %edx,-0x30(%ebp)
40198b:	89 45 08             	mov    %eax,0x8(%ebp)
40198e:	e8 ae 12 00 00       	call   0x402c41
401993:	50                   	push   %eax
401994:	89 45 c4             	mov    %eax,-0x3c(%ebp)
401997:	e8 62 4a 00 00       	call   0x4063fe
40199c:	39 5d b4             	cmp    %ebx,-0x4c(%ebp)
40199f:	66 89 1e             	mov    %bx,(%esi)
4019a2:	75 03                	jne    0x4019a7
4019a4:	89 45 08             	mov    %eax,0x8(%ebp)
4019a7:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4019aa:	0f 84 15 11 00 00    	je     0x402ac5
4019b0:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4019b3:	3b cb                	cmp    %ebx,%ecx
4019b5:	7d 0b                	jge    0x4019c2
4019b7:	8d 3c 08             	lea    (%eax,%ecx,1),%edi
4019ba:	3b fb                	cmp    %ebx,%edi
4019bc:	0f 8c 03 11 00 00    	jl     0x402ac5
4019c2:	3b f8                	cmp    %eax,%edi
4019c4:	7e 02                	jle    0x4019c8
4019c6:	8b f8                	mov    %eax,%edi
4019c8:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4019cb:	8d 04 78             	lea    (%eax,%edi,2),%eax
4019ce:	50                   	push   %eax
4019cf:	56                   	push   %esi
4019d0:	e8 13 4a 00 00       	call   0x4063e8
4019d5:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4019d8:	7d 0e                	jge    0x4019e8
4019da:	56                   	push   %esi
4019db:	e8 1e 4a 00 00       	call   0x4063fe
4019e0:	01 45 08             	add    %eax,0x8(%ebp)
4019e3:	79 03                	jns    0x4019e8
4019e5:	89 5d 08             	mov    %ebx,0x8(%ebp)
4019e8:	8b 45 08             	mov    0x8(%ebp),%eax
4019eb:	3d 00 04 00 00       	cmp    $0x400,%eax
4019f0:	0f 8d cf 10 00 00    	jge    0x402ac5
4019f6:	66 89 1c 46          	mov    %bx,(%esi,%eax,2)
4019fa:	e9 c6 10 00 00       	jmp    0x402ac5
4019ff:	6a 20                	push   $0x20
401a01:	e8 3b 12 00 00       	call   0x402c41
401a06:	6a 31                	push   $0x31
401a08:	8b f0                	mov    %eax,%esi
401a0a:	e8 32 12 00 00       	call   0x402c41
401a0f:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
401a12:	50                   	push   %eax
401a13:	56                   	push   %esi
401a14:	75 12                	jne    0x401a28
401a16:	ff 15 04 81 40 00    	call   *0x408104
401a1c:	85 c0                	test   %eax,%eax
401a1e:	75 7c                	jne    0x401a9c
401a20:	8b 45 e0             	mov    -0x20(%ebp),%eax
401a23:	e9 a8 10 00 00       	jmp    0x402ad0
401a28:	ff 15 1c 81 40 00    	call   *0x40811c
401a2e:	eb ec                	jmp    0x401a1c
401a30:	33 ff                	xor    %edi,%edi
401a32:	47                   	inc    %edi
401a33:	57                   	push   %edi
401a34:	e8 08 12 00 00       	call   0x402c41
401a39:	68 00 04 00 00       	push   $0x400
401a3e:	56                   	push   %esi
401a3f:	50                   	push   %eax
401a40:	89 45 08             	mov    %eax,0x8(%ebp)