4067f5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4067f8:	53                   	push   %ebx
4067f9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4067fc:	8d 85 e0 fe ff ff    	lea    -0x120(%ebp),%eax
406802:	56                   	push   %esi
406803:	57                   	push   %edi
406804:	33 f6                	xor    %esi,%esi
406806:	68 1c 01 00 00       	push   $0x11c
40680b:	56                   	push   %esi
40680c:	50                   	push   %eax
40680d:	89 b5 dc fe ff ff    	mov    %esi,-0x124(%ebp)
406813:	e8 58 8e 02 00       	call   0x42f670
406818:	83 c4 0c             	add    $0xc,%esp
40681b:	8d bd c0 fe ff ff    	lea    -0x140(%ebp),%edi
406821:	33 c0                	xor    %eax,%eax
406823:	6a 06                	push   $0x6
406825:	59                   	pop    %ecx
406826:	f3 ab                	rep stos %eax,%es:(%edi)
406828:	8d 85 dc fe ff ff    	lea    -0x124(%ebp),%eax
40682e:	50                   	push   %eax
40682f:	68 00 d7 44 00       	push   $0x44d700
406834:	56                   	push   %esi
406835:	ff 15 c4 b1 44 00    	call   *0x44b1c4
40683b:	85 c0                	test   %eax,%eax
40683d:	75 38                	jne    0x406877
40683f:	ff 15 e8 b0 44 00    	call   *0x44b0e8
406845:	0f b7 f0             	movzwl %ax,%esi
406848:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40684e:	85 c0                	test   %eax,%eax
406850:	0f 4e f0             	cmovle %eax,%esi
406853:	b8 05 40 00 80       	mov    $0x80004005,%eax
406858:	85 f6                	test   %esi,%esi
40685a:	0f 49 f0             	cmovns %eax,%esi
40685d:	56                   	push   %esi
40685e:	68 5c 06 00 00       	push   $0x65c
406863:	68 bc cc 44 00       	push   $0x44ccbc
406868:	e8 66 cf ff ff       	call   0x4037d3
40686d:	68 0c d7 44 00       	push   $0x44d70c
406872:	e9 0f 01 00 00       	jmp    0x406986
406877:	68 24 d7 44 00       	push   $0x44d724
40687c:	ff b5 dc fe ff ff    	push   -0x124(%ebp)
406882:	ff 15 dc b0 44 00    	call   *0x44b0dc
406888:	85 c0                	test   %eax,%eax
40688a:	75 38                	jne    0x4068c4
40688c:	ff 15 e8 b0 44 00    	call   *0x44b0e8
406892:	0f b7 f0             	movzwl %ax,%esi
406895:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40689b:	85 c0                	test   %eax,%eax
40689d:	0f 4e f0             	cmovle %eax,%esi
4068a0:	b8 05 40 00 80       	mov    $0x80004005,%eax
4068a5:	85 f6                	test   %esi,%esi
4068a7:	0f 49 f0             	cmovns %eax,%esi
4068aa:	56                   	push   %esi
4068ab:	68 62 06 00 00       	push   $0x662
4068b0:	68 bc cc 44 00       	push   $0x44ccbc
4068b5:	e8 19 cf ff ff       	call   0x4037d3
4068ba:	68 34 d7 44 00       	push   $0x44d734
4068bf:	e9 c2 00 00 00       	jmp    0x406986
4068c4:	8d 8d e0 fe ff ff    	lea    -0x120(%ebp),%ecx
4068ca:	c7 85 e0 fe ff ff 1c 	movl   $0x11c,-0x120(%ebp)
4068d1:	01 00 00
4068d4:	51                   	push   %ecx
4068d5:	ff d0                	call   *%eax
4068d7:	8b f0                	mov    %eax,%esi
4068d9:	85 f6                	test   %esi,%esi
4068db:	79 0a                	jns    0x4068e7
4068dd:	68 e0 b9 44 00       	push   $0x44b9e0
4068e2:	e9 9f 00 00 00       	jmp    0x406986
4068e7:	8b 45 08             	mov    0x8(%ebp),%eax
4068ea:	83 e8 01             	sub    $0x1,%eax
4068ed:	74 54                	je     0x406943
4068ef:	83 e8 01             	sub    $0x1,%eax
4068f2:	74 2c                	je     0x406920
4068f4:	83 e8 01             	sub    $0x1,%eax
4068f7:	75 75                	jne    0x40696e
4068f9:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
4068fd:	33 c9                	xor    %ecx,%ecx
4068ff:	66 3b c8             	cmp    %ax,%cx
406902:	74 6a                	je     0x40696e
406904:	0f b7 c0             	movzwl %ax,%eax
406907:	99                   	cltd
406908:	89 85 c0 fe ff ff    	mov    %eax,-0x140(%ebp)
40690e:	89 95 c4 fe ff ff    	mov    %edx,-0x13c(%ebp)
406914:	c7 85 d0 fe ff ff 01 	movl   $0x1,-0x130(%ebp)
40691b:	00 00 00
40691e:	eb 4e                	jmp    0x40696e
406920:	83 a5 d8 fe ff ff 00 	andl   $0x0,-0x128(%ebp)
406927:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
40692d:	50                   	push   %eax
40692e:	ff 15 80 b1 44 00    	call   *0x44b180
406934:	50                   	push   %eax
406935:	e8 81 a0 03 00       	call   0x4409bb
40693a:	83 bd d8 fe ff ff 00 	cmpl   $0x0,-0x128(%ebp)
406941:	74 2b                	je     0x40696e
406943:	0f b7 85 e4 fe ff ff 	movzwl -0x11c(%ebp),%eax
40694a:	0f b7 8d e8 fe ff ff 	movzwl -0x118(%ebp),%ecx
406951:	c1 e0 10             	shl    $0x10,%eax
406954:	0b c1                	or     %ecx,%eax
406956:	c7 85 d0 fe ff ff 03 	movl   $0x3,-0x130(%ebp)
40695d:	00 00 00
406960:	83 a5 c0 fe ff ff 00 	andl   $0x0,-0x140(%ebp)
406967:	99                   	cltd
406968:	89 85 c4 fe ff ff    	mov    %eax,-0x13c(%ebp)
40696e:	53                   	push   %ebx
40696f:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
406975:	50                   	push   %eax
406976:	e8 f8 95 01 00       	call   0x41ff73
40697b:	8b f0                	mov    %eax,%esi
40697d:	85 f6                	test   %esi,%esi
40697f:	79 0d                	jns    0x40698e
406981:	68 fc ca 44 00       	push   $0x44cafc
406986:	56                   	push   %esi
406987:	e8 a3 97 03 00       	call   0x44012f
40698c:	59                   	pop    %ecx
40698d:	59                   	pop    %ecx
40698e:	83 bd dc fe ff ff 00 	cmpl   $0x0,-0x124(%ebp)
406995:	74 0c                	je     0x4069a3
406997:	ff b5 dc fe ff ff    	push   -0x124(%ebp)
40699d:	ff 15 b0 b1 44 00    	call   *0x44b1b0
4069a3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4069a6:	8b c6                	mov    %esi,%eax
4069a8:	5f                   	pop    %edi
4069a9:	5e                   	pop    %esi
4069aa:	33 cd                	xor    %ebp,%ecx
4069ac:	5b                   	pop    %ebx
4069ad:	e8 84 74 02 00       	call   0x42de36
4069b2:	8b e5                	mov    %ebp,%esp
4069b4:	5d                   	pop    %ebp
4069b5:	c2 08 00             	ret    $0x8
4069b8:	55                   	push   %ebp
4069b9:	8b ec                	mov    %esp,%ebp
4069bb:	81 ec 14 04 00 00    	sub    $0x414,%esp
4069c1:	a1 08 a0 46 00       	mov    0x46a008,%eax
4069c6:	33 c5                	xor    %ebp,%eax
4069c8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4069cb:	56                   	push   %esi
4069cc:	8b 75 0c             	mov    0xc(%ebp),%esi
4069cf:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4069d5:	57                   	push   %edi
4069d6:	bf 08 02 00 00       	mov    $0x208,%edi
4069db:	57                   	push   %edi
4069dc:	6a 00                	push   $0x0
4069de:	50                   	push   %eax
4069df:	e8 8c 8c 02 00       	call   0x42f670
4069e4:	57                   	push   %edi
4069e5:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
4069eb:	6a 00                	push   $0x0
4069ed:	50                   	push   %eax
4069ee:	e8 7d 8c 02 00       	call   0x42f670
4069f3:	83 c4 18             	add    $0x18,%esp
4069f6:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4069fc:	bf 04 01 00 00       	mov    $0x104,%edi
406a01:	57                   	push   %edi
406a02:	50                   	push   %eax
406a03:	ff 15 c8 b1 44 00    	call   *0x44b1c8
406a09:	85 c0                	test   %eax,%eax
406a0b:	75 35                	jne    0x406a42
406a0d:	ff 15 e8 b0 44 00    	call   *0x44b0e8
406a13:	0f b7 f0             	movzwl %ax,%esi
406a16:	81 ce 00 00 07 80    	or     $0x80070000,%esi
406a1c:	85 c0                	test   %eax,%eax
406a1e:	0f 4e f0             	cmovle %eax,%esi
406a21:	b8 05 40 00 80       	mov    $0x80004005,%eax
406a26:	85 f6                	test   %esi,%esi
406a28:	0f 49 f0             	cmovns %eax,%esi
406a2b:	56                   	push   %esi
406a2c:	68 ae 07 00 00       	push   $0x7ae
406a31:	68 bc cc 44 00       	push   $0x44ccbc
406a36:	e8 98 cd ff ff       	call   0x4037d3
406a3b:	68 c4 d8 44 00       	push   $0x44d8c4
406a40:	eb 68                	jmp    0x406aaa
406a42:	57                   	push   %edi
406a43:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
406a49:	50                   	push   %eax
406a4a:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
406a50:	50                   	push   %eax
406a51:	ff 15 d8 b1 44 00    	call   *0x44b1d8
406a57:	85 c0                	test   %eax,%eax
406a59:	75 35                	jne    0x406a90
406a5b:	ff 15 e8 b0 44 00    	call   *0x44b0e8
406a61:	0f b7 f0             	movzwl %ax,%esi
406a64:	81 ce 00 00 07 80    	or     $0x80070000,%esi
406a6a:	85 c0                	test   %eax,%eax
406a6c:	0f 4e f0             	cmovle %eax,%esi
406a6f:	b8 05 40 00 80       	mov    $0x80004005,%eax
406a74:	85 f6                	test   %esi,%esi
406a76:	0f 49 f0             	cmovns %eax,%esi
406a79:	56                   	push   %esi
406a7a:	68 b4 07 00 00       	push   $0x7b4
406a7f:	68 bc cc 44 00       	push   $0x44ccbc
406a84:	e8 4a cd ff ff       	call   0x4037d3
406a89:	68 e8 d8 44 00       	push   $0x44d8e8
406a8e:	eb 1a                	jmp    0x406aaa
406a90:	6a 00                	push   $0x0
406a92:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
406a98:	50                   	push   %eax
406a99:	56                   	push   %esi
406a9a:	e8 55 98 01 00       	call   0x4202f4
406a9f:	8b f0                	mov    %eax,%esi
406aa1:	85 f6                	test   %esi,%esi
406aa3:	79 0d                	jns    0x406ab2
406aa5:	68 fc ca 44 00       	push   $0x44cafc
406aaa:	56                   	push   %esi
406aab:	e8 7f 96 03 00       	call   0x44012f
406ab0:	59                   	pop    %ecx
406ab1:	59                   	pop    %ecx
406ab2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406ab5:	8b c6                	mov    %esi,%eax
406ab7:	5f                   	pop    %edi
406ab8:	33 cd                	xor    %ebp,%ecx
406aba:	5e                   	pop    %esi
406abb:	e8 76 73 02 00       	call   0x42de36
406ac0:	8b e5                	mov    %ebp,%esp
406ac2:	5d                   	pop    %ebp
406ac3:	c2 08 00             	ret    $0x8
406ac6:	55                   	push   %ebp
406ac7:	8b ec                	mov    %esp,%ebp
406ac9:	51                   	push   %ecx
406aca:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406ace:	53                   	push   %ebx
406acf:	56                   	push   %esi
406ad0:	57                   	push   %edi
406ad1:	8b 7d 08             	mov    0x8(%ebp),%edi
406ad4:	8b 57 18             	mov    0x18(%edi),%edx
406ad7:	39 57 1c             	cmp    %edx,0x1c(%edi)
406ada:	0f 85 e4 00 00 00    	jne    0x406bc4
406ae0:	8d 4a 03             	lea    0x3(%edx),%ecx
406ae3:	83 c8 ff             	or     $0xffffffff,%eax
406ae6:	3b ca                	cmp    %edx,%ecx
406ae8:	bb 16 02 07 80       	mov    $0x80070216,%ebx
406aed:	0f 43 c1             	cmovae %ecx,%eax
406af0:	1b f6                	sbb    %esi,%esi
406af2:	23 f3                	and    %ebx,%esi
406af4:	89 47 18             	mov    %eax,0x18(%edi)
406af7:	3b ca                	cmp    %edx,%ecx
406af9:	73 1a                	jae    0x406b15
406afb:	56                   	push   %esi
406afc:	68 b7 05 00 00       	push   $0x5b7
406b01:	68 bc cc 44 00       	push   $0x44ccbc
406b06:	e8 c8 cc ff ff       	call   0x4037d3
406b0b:	68 dc d4 44 00       	push   $0x44d4dc
406b10:	e9 02 01 00 00       	jmp    0x406c17
406b15:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
406b19:	0f 84 0b 01 00 00    	je     0x406c2a
406b1f:	8d 45 fc             	lea    -0x4(%ebp),%eax
406b22:	50                   	push   %eax
406b23:	8b 47 18             	mov    0x18(%edi),%eax
406b26:	6a 38                	push   $0x38
406b28:	59                   	pop    %ecx
406b29:	f7 e1                	mul    %ecx
406b2b:	52                   	push   %edx
406b2c:	50                   	push   %eax
406b2d:	e8 fc 02 00 00       	call   0x406e2e
406b32:	8b f0                	mov    %eax,%esi
406b34:	85 f6                	test   %esi,%esi
406b36:	79 1a                	jns    0x406b52
406b38:	56                   	push   %esi
406b39:	68 bc 05 00 00       	push   $0x5bc
406b3e:	68 bc cc 44 00       	push   $0x44ccbc
406b43:	e8 8b cc ff ff       	call   0x4037d3
406b48:	68 08 d5 44 00       	push   $0x44d508
406b4d:	e9 c5 00 00 00       	jmp    0x406c17
406b52:	6a 00                	push   $0x0
406b54:	ff 75 fc             	push   -0x4(%ebp)
406b57:	ff 77 20             	push   0x20(%edi)
406b5a:	e8 13 cf ff ff       	call   0x403a72
406b5f:	8b d0                	mov    %eax,%edx
406b61:	85 d2                	test   %edx,%edx
406b63:	75 22                	jne    0x406b87
406b65:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
406b6a:	57                   	push   %edi
406b6b:	68 bf 05 00 00       	push   $0x5bf
406b70:	68 bc cc 44 00       	push   $0x44ccbc
406b75:	8b f7                	mov    %edi,%esi
406b77:	e8 57 cc ff ff       	call   0x4037d3
406b7c:	68 44 d5 44 00       	push   $0x44d544
406b81:	57                   	push   %edi
406b82:	e9 91 00 00 00       	jmp    0x406c18
406b87:	8b 47 18             	mov    0x18(%edi),%eax
406b8a:	8b 4f 1c             	mov    0x1c(%edi),%ecx
406b8d:	3b c1                	cmp    %ecx,%eax
406b8f:	73 1a                	jae    0x406bab
406b91:	53                   	push   %ebx
406b92:	68 c5 05 00 00       	push   $0x5c5
406b97:	68 bc cc 44 00       	push   $0x44ccbc
406b9c:	8b f3                	mov    %ebx,%esi
406b9e:	e8 30 cc ff ff       	call   0x4037d3
406ba3:	68 70 d5 44 00       	push   $0x44d570
406ba8:	53                   	push   %ebx
406ba9:	eb 6d                	jmp    0x406c18
406bab:	2b c1                	sub    %ecx,%eax
406bad:	89 57 20             	mov    %edx,0x20(%edi)
406bb0:	6b c0 38             	imul   $0x38,%eax,%eax
406bb3:	50                   	push   %eax
406bb4:	6b c1 38             	imul   $0x38,%ecx,%eax
406bb7:	6a 00                	push   $0x0
406bb9:	03 c2                	add    %edx,%eax
406bbb:	50                   	push   %eax
406bbc:	e8 af 8a 02 00       	call   0x42f670
406bc1:	83 c4 0c             	add    $0xc,%esp
406bc4:	8b 57 1c             	mov    0x1c(%edi),%edx
406bc7:	8b 5d 10             	mov    0x10(%ebp),%ebx
406bca:	2b d3                	sub    %ebx,%edx
406bcc:	74 2a                	je     0x406bf8
406bce:	8b 4f 20             	mov    0x20(%edi),%ecx
406bd1:	6b f3 38             	imul   $0x38,%ebx,%esi
406bd4:	6b c2 38             	imul   $0x38,%edx,%eax
406bd7:	03 ce                	add    %esi,%ecx
406bd9:	50                   	push   %eax
406bda:	51                   	push   %ecx
406bdb:	8d 41 38             	lea    0x38(%ecx),%eax
406bde:	50                   	push   %eax
406bdf:	e8 8c 7f 02 00       	call   0x42eb70
406be4:	6a 38                	push   $0x38
406be6:	58                   	pop    %eax
406be7:	50                   	push   %eax
406be8:	8b 47 20             	mov    0x20(%edi),%eax
406beb:	03 c6                	add    %esi,%eax
406bed:	6a 00                	push   $0x0
406bef:	50                   	push   %eax
406bf0:	e8 7b 8a 02 00       	call   0x42f670
406bf5:	83 c4 18             	add    $0x18,%esp
406bf8:	ff 47 1c             	incl   0x1c(%edi)
406bfb:	6b c3 38             	imul   $0x38,%ebx,%eax
406bfe:	6a 00                	push   $0x0
406c00:	ff 75 0c             	push   0xc(%ebp)
406c03:	03 47 20             	add    0x20(%edi),%eax
406c06:	50                   	push   %eax
406c07:	e8 99 b5 ff ff       	call   0x4021a5
406c0c:	8b f0                	mov    %eax,%esi
406c0e:	85 f6                	test   %esi,%esi
406c10:	79 0d                	jns    0x406c1f
406c12:	68 d8 d5 44 00       	push   $0x44d5d8
406c17:	56                   	push   %esi
406c18:	e8 12 95 03 00       	call   0x44012f
406c1d:	59                   	pop    %ecx
406c1e:	59                   	pop    %ecx
406c1f:	5f                   	pop    %edi
406c20:	8b c6                	mov    %esi,%eax
406c22:	5e                   	pop    %esi
406c23:	5b                   	pop    %ebx
406c24:	8b e5                	mov    %ebp,%esp
406c26:	5d                   	pop    %ebp
406c27:	c2 0c 00             	ret    $0xc
406c2a:	6b c0 38             	imul   $0x38,%eax,%eax
406c2d:	6a 01                	push   $0x1
406c2f:	50                   	push   %eax
406c30:	e8 9f cc ff ff       	call   0x4038d4
406c35:	89 47 20             	mov    %eax,0x20(%edi)
406c38:	85 c0                	test   %eax,%eax