406780:	c9                   	leave
406781:	c2 0c 00             	ret    $0xc
406784:	55                   	push   %ebp
406785:	8b ec                	mov    %esp,%ebp
406787:	56                   	push   %esi
406788:	8b 75 0c             	mov    0xc(%ebp),%esi
40678b:	56                   	push   %esi
40678c:	e8 a6 2a 00 00       	call   0x409237
406791:	84 c0                	test   %al,%al
406793:	74 4c                	je     0x4067e1
406795:	53                   	push   %ebx
406796:	6a 01                	push   $0x1
406798:	ff 75 08             	push   0x8(%ebp)
40679b:	e8 3c 2b 00 00       	call   0x4092dc
4067a0:	ff 75 10             	push   0x10(%ebp)
4067a3:	56                   	push   %esi
4067a4:	56                   	push   %esi
4067a5:	e8 00 3a 00 00       	call   0x40a1aa
4067aa:	6a 00                	push   $0x0
4067ac:	56                   	push   %esi
4067ad:	ff 75 08             	push   0x8(%ebp)
4067b0:	ff 15 14 a2 42 00    	call   *0x42a214
4067b6:	85 c0                	test   %eax,%eax
4067b8:	0f 95 c3             	setne  %bl
4067bb:	84 db                	test   %bl,%bl
4067bd:	75 1f                	jne    0x4067de
4067bf:	ff 75 08             	push   0x8(%ebp)
4067c2:	6a 15                	push   $0x15
4067c4:	e8 e7 fc ff ff       	call   0x4064b0
4067c9:	be 74 2a 43 00       	mov    $0x432a74,%esi
4067ce:	8b ce                	mov    %esi,%ecx
4067d0:	e8 2b a8 ff ff       	call   0x401000
4067d5:	6a 09                	push   $0x9
4067d7:	8b ce                	mov    %esi,%ecx
4067d9:	e8 2c fc ff ff       	call   0x40640a
4067de:	8a c3                	mov    %bl,%al
4067e0:	5b                   	pop    %ebx
4067e1:	5e                   	pop    %esi
4067e2:	5d                   	pop    %ebp
4067e3:	c2 0c 00             	ret    $0xc
4067e6:	8b c1                	mov    %ecx,%eax
4067e8:	33 c9                	xor    %ecx,%ecx
4067ea:	89 88 10 10 00 00    	mov    %ecx,0x1010(%eax)
4067f0:	89 88 14 10 00 00    	mov    %ecx,0x1014(%eax)
4067f6:	89 88 18 10 00 00    	mov    %ecx,0x1018(%eax)
4067fc:	89 88 1c 10 00 00    	mov    %ecx,0x101c(%eax)
406802:	89 88 20 10 00 00    	mov    %ecx,0x1020(%eax)
406808:	89 88 24 10 00 00    	mov    %ecx,0x1024(%eax)
40680e:	c3                   	ret
40680f:	b8 19 91 42 00       	mov    $0x429119,%eax
406814:	e8 9f 36 01 00       	call   0x419eb8
406819:	b8 10 10 00 00       	mov    $0x1010,%eax
40681e:	e8 ad 3c 01 00       	call   0x41a4d0
406823:	56                   	push   %esi
406824:	33 f6                	xor    %esi,%esi
406826:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406829:	89 75 e8             	mov    %esi,-0x18(%ebp)
40682c:	89 75 ec             	mov    %esi,-0x14(%ebp)
40682f:	89 75 f0             	mov    %esi,-0x10(%ebp)
406832:	8b 4d 08             	mov    0x8(%ebp),%ecx
406835:	56                   	push   %esi
406836:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406839:	50                   	push   %eax
40683a:	89 75 fc             	mov    %esi,-0x4(%ebp)
40683d:	e8 b2 c3 ff ff       	call   0x402bf4
406842:	84 c0                	test   %al,%al
406844:	75 08                	jne    0x40684e
406846:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
406849:	e9 a7 00 00 00       	jmp    0x4068f5
40684e:	80 3d 69 2a 43 00 00 	cmpb   $0x0,0x432a69
406855:	75 26                	jne    0x40687d
406857:	68 68 a5 42 00       	push   $0x42a568
40685c:	e8 2c fe ff ff       	call   0x40668d
406861:	84 c0                	test   %al,%al
406863:	74 07                	je     0x40686c
406865:	c6 05 68 2a 43 00 01 	movb   $0x1,0x432a68
40686c:	68 40 a5 42 00       	push   $0x42a540
406871:	e8 17 fe ff ff       	call   0x40668d
406876:	c6 05 69 2a 43 00 01 	movb   $0x1,0x432a69
40687d:	80 3d 68 2a 43 00 00 	cmpb   $0x0,0x432a68
406884:	53                   	push   %ebx
406885:	57                   	push   %edi
406886:	6a 07                	push   $0x7
406888:	5f                   	pop    %edi
406889:	74 03                	je     0x40688e
40688b:	6a 0f                	push   $0xf
40688d:	5f                   	pop    %edi
40688e:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
406891:	8b 35 14 a0 42 00    	mov    0x42a014,%esi
406897:	53                   	push   %ebx
406898:	57                   	push   %edi
406899:	ff 75 0c             	push   0xc(%ebp)
40689c:	ff d6                	call   *%esi
40689e:	85 c0                	test   %eax,%eax
4068a0:	75 4d                	jne    0x4068ef
4068a2:	68 00 08 00 00       	push   $0x800
4068a7:	8d 85 e4 ef ff ff    	lea    -0x101c(%ebp),%eax
4068ad:	50                   	push   %eax
4068ae:	ff 75 0c             	push   0xc(%ebp)
4068b1:	e8 a4 3e 00 00       	call   0x40a75a
4068b6:	84 c0                	test   %al,%al
4068b8:	74 0f                	je     0x4068c9
4068ba:	53                   	push   %ebx
4068bb:	57                   	push   %edi
4068bc:	8d 85 e4 ef ff ff    	lea    -0x101c(%ebp),%eax
4068c2:	50                   	push   %eax
4068c3:	ff d6                	call   *%esi
4068c5:	85 c0                	test   %eax,%eax
4068c7:	75 26                	jne    0x4068ef
4068c9:	ff 75 0c             	push   0xc(%ebp)
4068cc:	8b 45 08             	mov    0x8(%ebp),%eax
4068cf:	83 c0 1e             	add    $0x1e,%eax
4068d2:	50                   	push   %eax
4068d3:	6a 4f                	push   $0x4f
4068d5:	e8 ff fb ff ff       	call   0x4064d9
4068da:	be 74 2a 43 00       	mov    $0x432a74,%esi
4068df:	8b ce                	mov    %esi,%ecx
4068e1:	e8 1a a7 ff ff       	call   0x401000
4068e6:	6a 01                	push   $0x1
4068e8:	8b ce                	mov    %esi,%ecx
4068ea:	e8 1b fb ff ff       	call   0x40640a
4068ef:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4068f3:	5f                   	pop    %edi
4068f4:	5b                   	pop    %ebx
4068f5:	74 09                	je     0x406900
4068f7:	ff 75 e4             	push   -0x1c(%ebp)
4068fa:	e8 e3 35 01 00       	call   0x419ee2
4068ff:	59                   	pop    %ecx
406900:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406903:	5e                   	pop    %esi
406904:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40690b:	c9                   	leave
40690c:	c2 08 00             	ret    $0x8
40690f:	b8 83 92 42 00       	mov    $0x429283,%eax
406914:	e8 9f 35 01 00       	call   0x419eb8
406919:	b8 3c 30 00 00       	mov    $0x303c,%eax
40691e:	e8 ad 3b 01 00       	call   0x41a4d0
406923:	80 3d 6a 2a 43 00 00 	cmpb   $0x0,0x432a6a
40692a:	75 1b                	jne    0x406947
40692c:	68 40 a5 42 00       	push   $0x42a540
406931:	e8 57 fd ff ff       	call   0x40668d
406936:	68 a8 a5 42 00       	push   $0x42a5a8
40693b:	e8 4d fd ff ff       	call   0x40668d
406940:	c6 05 6a 2a 43 00 01 	movb   $0x1,0x432a6a
406947:	57                   	push   %edi
406948:	6a 01                	push   $0x1
40694a:	ff 75 0c             	push   0xc(%ebp)
40694d:	e8 8a 29 00 00       	call   0x4092dc
406952:	8b 7d 10             	mov    0x10(%ebp),%edi
406955:	80 bf e1 10 00 00 00 	cmpb   $0x0,0x10e1(%edi)
40695c:	0f 85 d0 00 00 00    	jne    0x406a32
406962:	80 bf f4 20 00 00 00 	cmpb   $0x0,0x20f4(%edi)
406969:	0f 85 c3 00 00 00    	jne    0x406a32
40696f:	33 c0                	xor    %eax,%eax
406971:	50                   	push   %eax
406972:	68 80 00 00 00       	push   $0x80
406977:	6a 01                	push   $0x1
406979:	50                   	push   %eax
40697a:	50                   	push   %eax
40697b:	68 00 00 00 40       	push   $0x40000000
406980:	ff 75 0c             	push   0xc(%ebp)
406983:	ff 15 00 a2 42 00    	call   *0x42a200
406989:	83 f8 ff             	cmp    $0xffffffff,%eax
40698c:	0f 84 b3 00 00 00    	je     0x406a45
406992:	50                   	push   %eax
406993:	ff 15 1c a2 42 00    	call   *0x42a21c
406999:	53                   	push   %ebx
40699a:	56                   	push   %esi
40699b:	68 18 14 00 00       	push   $0x1418
4069a0:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4069a3:	e8 28 a9 ff ff       	call   0x4012d0
4069a8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4069ac:	68 00 08 00 00       	push   $0x800
4069b1:	8d 87 f4 10 00 00    	lea    0x10f4(%edi),%eax
4069b7:	50                   	push   %eax
4069b8:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
4069be:	50                   	push   %eax
4069bf:	e8 5b 9f 00 00       	call   0x41091f
4069c4:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
4069ca:	50                   	push   %eax
4069cb:	e8 bb 37 01 00       	call   0x41a18b
4069d0:	89 45 10             	mov    %eax,0x10(%ebp)
4069d3:	8d 85 dc df ff ff    	lea    -0x2024(%ebp),%eax
4069d9:	6a 04                	push   $0x4
4069db:	8d b5 dc ef ff ff    	lea    -0x1024(%ebp),%esi
4069e1:	89 45 f0             	mov    %eax,-0x10(%ebp)
4069e4:	8b c6                	mov    %esi,%eax
4069e6:	68 9c a5 42 00       	push   $0x42a59c
4069eb:	50                   	push   %eax
4069ec:	e8 89 59 01 00       	call   0x41c37a
4069f1:	83 c4 10             	add    $0x10,%esp
4069f4:	8b d8                	mov    %eax,%ebx
4069f6:	f7 db                	neg    %ebx
4069f8:	1a db                	sbb    %bl,%bl
4069fa:	fe c3                	inc    %bl
4069fc:	74 4e                	je     0x406a4c
4069fe:	6a 04                	push   $0x4
406a00:	8d b5 e4 ef ff ff    	lea    -0x101c(%ebp),%esi
406a06:	8b c6                	mov    %esi,%eax
406a08:	68 90 a5 42 00       	push   $0x42a590
406a0d:	50                   	push   %eax
406a0e:	e8 67 59 01 00       	call   0x41c37a
406a13:	83 c4 0c             	add    $0xc,%esp
406a16:	85 c0                	test   %eax,%eax
406a18:	75 32                	jne    0x406a4c
406a1a:	6a 5c                	push   $0x5c
406a1c:	58                   	pop    %eax
406a1d:	66 89 85 dc df ff ff 	mov    %ax,-0x2024(%ebp)
406a24:	8d 85 de df ff ff    	lea    -0x2022(%ebp),%eax
406a2a:	8d b5 ea ef ff ff    	lea    -0x1016(%ebp),%esi
406a30:	eb 1d                	jmp    0x406a4f
406a32:	6a 00                	push   $0x0
406a34:	ff 75 0c             	push   0xc(%ebp)
406a37:	ff 15 04 a2 42 00    	call   *0x42a204
406a3d:	85 c0                	test   %eax,%eax
406a3f:	0f 85 54 ff ff ff    	jne    0x406999
406a45:	32 c0                	xor    %al,%al
406a47:	e9 3f 01 00 00       	jmp    0x406b8b
406a4c:	8b 45 f0             	mov    -0x10(%ebp),%eax
406a4f:	56                   	push   %esi
406a50:	50                   	push   %eax
406a51:	e8 7d 37 01 00       	call   0x41a1d3
406a56:	8d 85 dc df ff ff    	lea    -0x2024(%ebp),%eax
406a5c:	50                   	push   %eax
406a5d:	e8 29 37 01 00       	call   0x41a18b
406a62:	8b 8f f0 10 00 00    	mov    0x10f0(%edi),%ecx
406a68:	83 c4 0c             	add    $0xc,%esp
406a6b:	89 45 f0             	mov    %eax,-0x10(%ebp)
406a6e:	83 f9 03             	cmp    $0x3,%ecx
406a71:	75 63                	jne    0x406ad6
406a73:	8b 4d 10             	mov    0x10(%ebp),%ecx
406a76:	8b 75 e0             	mov    -0x20(%ebp),%esi
406a79:	03 c1                	add    %ecx,%eax
406a7b:	8d 44 00 0c          	lea    0xc(%eax,%eax,1),%eax
406a7f:	66 89 46 04          	mov    %ax,0x4(%esi)
406a83:	33 c0                	xor    %eax,%eax
406a85:	66 89 46 06          	mov    %ax,0x6(%esi)
406a89:	66 89 46 08          	mov    %ax,0x8(%esi)
406a8d:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
406a93:	50                   	push   %eax
406a94:	8d 46 10             	lea    0x10(%esi),%eax
406a97:	8d 1c 09             	lea    (%ecx,%ecx,1),%ebx
406a9a:	50                   	push   %eax
406a9b:	c7 06 03 00 00 a0    	movl   $0xa0000003,(%esi)
406aa1:	66 89 5e 0a          	mov    %bx,0xa(%esi)
406aa5:	e8 29 37 01 00       	call   0x41a1d3
406aaa:	8b 45 f0             	mov    -0x10(%ebp),%eax
406aad:	03 c0                	add    %eax,%eax
406aaf:	66 89 46 0e          	mov    %ax,0xe(%esi)
406ab3:	8d 85 dc df ff ff    	lea    -0x2024(%ebp),%eax
406ab9:	50                   	push   %eax
406aba:	8b 45 10             	mov    0x10(%ebp),%eax
406abd:	8d 44 46 12          	lea    0x12(%esi,%eax,2),%eax
406ac1:	83 c3 02             	add    $0x2,%ebx
406ac4:	50                   	push   %eax
406ac5:	66 89 5e 0c          	mov    %bx,0xc(%esi)
406ac9:	e8 05 37 01 00       	call   0x41a1d3
406ace:	83 c4 10             	add    $0x10,%esp
406ad1:	e9 89 00 00 00       	jmp    0x406b5f
406ad6:	83 f9 02             	cmp    $0x2,%ecx
406ad9:	74 17                	je     0x406af2
406adb:	83 f9 01             	cmp    $0x1,%ecx
406ade:	74 12                	je     0x406af2
406ae0:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
406ae4:	0f 84 9d 00 00 00    	je     0x406b87
406aea:	ff 75 e0             	push   -0x20(%ebp)
406aed:	e9 8f 00 00 00       	jmp    0x406b81
406af2:	8b 4d 10             	mov    0x10(%ebp),%ecx
406af5:	8b 75 e0             	mov    -0x20(%ebp),%esi
406af8:	03 c1                	add    %ecx,%eax
406afa:	8d 44 00 10          	lea    0x10(%eax,%eax,1),%eax
406afe:	66 89 46 04          	mov    %ax,0x4(%esi)
406b02:	33 c0                	xor    %eax,%eax
406b04:	66 89 46 06          	mov    %ax,0x6(%esi)
406b08:	66 89 46 08          	mov    %ax,0x8(%esi)
406b0c:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
406b0f:	66 89 46 0a          	mov    %ax,0xa(%esi)
406b13:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
406b19:	50                   	push   %eax
406b1a:	8d 46 14             	lea    0x14(%esi),%eax
406b1d:	50                   	push   %eax
406b1e:	c7 06 0c 00 00 a0    	movl   $0xa000000c,(%esi)
406b24:	e8 aa 36 01 00       	call   0x41a1d3
406b29:	8b 45 10             	mov    0x10(%ebp),%eax
406b2c:	03 c0                	add    %eax,%eax
406b2e:	83 c0 02             	add    $0x2,%eax
406b31:	66 89 46 0c          	mov    %ax,0xc(%esi)
406b35:	8b 45 f0             	mov    -0x10(%ebp),%eax
406b38:	03 c0                	add    %eax,%eax
406b3a:	66 89 46 0e          	mov    %ax,0xe(%esi)
406b3e:	8d 85 dc df ff ff    	lea    -0x2024(%ebp),%eax
406b44:	50                   	push   %eax
406b45:	8b 45 10             	mov    0x10(%ebp),%eax
406b48:	8d 44 46 16          	lea    0x16(%esi,%eax,2),%eax
406b4c:	50                   	push   %eax
406b4d:	e8 81 36 01 00       	call   0x41a1d3
406b52:	33 c0                	xor    %eax,%eax
406b54:	83 c4 10             	add    $0x10,%esp
406b57:	84 db                	test   %bl,%bl
406b59:	0f 94 c0             	sete   %al
406b5c:	89 46 10             	mov    %eax,0x10(%esi)
406b5f:	33 c0                	xor    %eax,%eax
406b61:	50                   	push   %eax
406b62:	68 00 00 20 02       	push   $0x2200000
406b67:	6a 03                	push   $0x3
406b69:	50                   	push   %eax
406b6a:	50                   	push   %eax
406b6b:	68 00 00 00 c0       	push   $0xc0000000
406b70:	ff 75 0c             	push   0xc(%ebp)
406b73:	ff 15 00 a2 42 00    	call   *0x42a200
406b79:	8b d8                	mov    %eax,%ebx
406b7b:	83 fb ff             	cmp    $0xffffffff,%ebx
406b7e:	75 1a                	jne    0x406b9a
406b80:	56                   	push   %esi
406b81:	e8 5c 33 01 00       	call   0x419ee2
406b86:	59                   	pop    %ecx
406b87:	32 c0                	xor    %al,%al
406b89:	5e                   	pop    %esi
406b8a:	5b                   	pop    %ebx
406b8b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406b8e:	5f                   	pop    %edi
406b8f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406b96:	c9                   	leave
406b97:	c2 0c 00             	ret    $0xc
406b9a:	33 c0                	xor    %eax,%eax
406b9c:	50                   	push   %eax
406b9d:	8d 4d dc             	lea    -0x24(%ebp),%ecx
406ba0:	51                   	push   %ecx
406ba1:	50                   	push   %eax
406ba2:	50                   	push   %eax
406ba3:	0f b7 46 04          	movzwl 0x4(%esi),%eax
406ba7:	83 c0 08             	add    $0x8,%eax
406baa:	50                   	push   %eax
406bab:	56                   	push   %esi
406bac:	68 a4 00 09 00       	push   $0x900a4
406bb1:	53                   	push   %ebx
406bb2:	ff 15 08 a2 42 00    	call   *0x42a208
406bb8:	85 c0                	test   %eax,%eax
406bba:	75 66                	jne    0x406c22
406bbc:	53                   	push   %ebx
406bbd:	ff 15 1c a2 42 00    	call   *0x42a21c
406bc3:	ff 75 0c             	push   0xc(%ebp)
406bc6:	6a 00                	push   $0x0
406bc8:	6a 14                	push   $0x14
406bca:	e8 0a f9 ff ff       	call   0x4064d9
406bcf:	ff 15 24 a2 42 00    	call   *0x42a224
406bd5:	3d 22 05 00 00       	cmp    $0x522,%eax
406bda:	75 07                	jne    0x406be3
406bdc:	6a 16                	push   $0x16
406bde:	e8 86 af ff ff       	call   0x401b69