4116ad:	03 c7                	add    %edi,%eax
4116af:	50                   	push   %eax
4116b0:	e8 ab 6d ff ff       	call   0x408460
4116b5:	8b 85 bc f8 ff ff    	mov    -0x744(%ebp),%eax
4116bb:	33 c9                	xor    %ecx,%ecx
4116bd:	41                   	inc    %ecx
4116be:	83 c4 18             	add    $0x18,%esp
4116c1:	3b c1                	cmp    %ecx,%eax
4116c3:	0f 87 94 00 00 00    	ja     0x41175d
4116c9:	8b bd c0 f8 ff ff    	mov    -0x740(%ebp),%edi
4116cf:	85 ff                	test   %edi,%edi
4116d1:	75 43                	jne    0x411716
4116d3:	33 c0                	xor    %eax,%eax
4116d5:	50                   	push   %eax
4116d6:	89 85 ec f6 ff ff    	mov    %eax,-0x914(%ebp)
4116dc:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
4116e2:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4116e8:	50                   	push   %eax
4116e9:	68 cc 01 00 00       	push   $0x1cc
4116ee:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
4116f4:	50                   	push   %eax
4116f5:	e8 18 27 00 00       	call   0x413e12
4116fa:	83 c4 10             	add    $0x10,%esp
4116fd:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
411703:	b0 01                	mov    $0x1,%al
411705:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
41170b:	8b 9d e8 f6 ff ff    	mov    -0x918(%ebp),%ebx
411711:	e9 c1 02 00 00       	jmp    0x4119d7
411716:	3b f9                	cmp    %ecx,%edi
411718:	75 04                	jne    0x41171e
41171a:	8a c1                	mov    %cl,%al
41171c:	eb ed                	jmp    0x41170b
41171e:	85 db                	test   %ebx,%ebx
411720:	74 f8                	je     0x41171a
411722:	33 c9                	xor    %ecx,%ecx
411724:	33 f6                	xor    %esi,%esi
411726:	8b c7                	mov    %edi,%eax
411728:	f7 a4 b5 30 fe ff ff 	mull   -0x1d0(%ebp,%esi,4)
41172f:	03 c1                	add    %ecx,%eax
411731:	89 84 b5 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%esi,4)
411738:	83 d2 00             	adc    $0x0,%edx
41173b:	46                   	inc    %esi
41173c:	8b ca                	mov    %edx,%ecx
41173e:	3b f3                	cmp    %ebx,%esi
411740:	75 e4                	jne    0x411726
411742:	e9 a7 00 00 00       	jmp    0x4117ee
411747:	89 8c 85 30 fe ff ff 	mov    %ecx,-0x1d0(%ebp,%eax,4)
41174e:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
411754:	43                   	inc    %ebx
411755:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
41175b:	eb a6                	jmp    0x411703
41175d:	3b d9                	cmp    %ecx,%ebx
41175f:	0f 87 d7 00 00 00    	ja     0x41183c
411765:	8b bd 30 fe ff ff    	mov    -0x1d0(%ebp),%edi
41176b:	bb cc 01 00 00       	mov    $0x1cc,%ebx
411770:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
411776:	c1 e0 02             	shl    $0x2,%eax
411779:	50                   	push   %eax
41177a:	8d 85 c0 f8 ff ff    	lea    -0x740(%ebp),%eax
411780:	50                   	push   %eax
411781:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
411787:	53                   	push   %ebx
411788:	50                   	push   %eax
411789:	e8 84 26 00 00       	call   0x413e12
41178e:	83 c4 10             	add    $0x10,%esp
411791:	33 c0                	xor    %eax,%eax
411793:	85 ff                	test   %edi,%edi
411795:	75 1a                	jne    0x4117b1
411797:	50                   	push   %eax
411798:	89 85 bc f8 ff ff    	mov    %eax,-0x744(%ebp)
41179e:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
4117a4:	8d 85 c0 f8 ff ff    	lea    -0x740(%ebp),%eax
4117aa:	50                   	push   %eax
4117ab:	53                   	push   %ebx
4117ac:	e9 3d ff ff ff       	jmp    0x4116ee
4117b1:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
4117b7:	40                   	inc    %eax
4117b8:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
4117be:	3b f8                	cmp    %eax,%edi
4117c0:	0f 84 45 ff ff ff    	je     0x41170b
4117c6:	85 db                	test   %ebx,%ebx
4117c8:	0f 84 3d ff ff ff    	je     0x41170b
4117ce:	33 c9                	xor    %ecx,%ecx
4117d0:	33 f6                	xor    %esi,%esi
4117d2:	8b c7                	mov    %edi,%eax
4117d4:	f7 a4 b5 30 fe ff ff 	mull   -0x1d0(%ebp,%esi,4)
4117db:	03 c1                	add    %ecx,%eax
4117dd:	89 84 b5 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%esi,4)
4117e4:	83 d2 00             	adc    $0x0,%edx
4117e7:	46                   	inc    %esi
4117e8:	8b ca                	mov    %edx,%ecx
4117ea:	3b f3                	cmp    %ebx,%esi
4117ec:	75 e4                	jne    0x4117d2
4117ee:	85 c9                	test   %ecx,%ecx
4117f0:	0f 84 07 ff ff ff    	je     0x4116fd
4117f6:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
4117fc:	83 f8 73             	cmp    $0x73,%eax
4117ff:	0f 82 42 ff ff ff    	jb     0x411747
411805:	33 db                	xor    %ebx,%ebx
411807:	8d 85 c0 f8 ff ff    	lea    -0x740(%ebp),%eax
41180d:	53                   	push   %ebx
41180e:	50                   	push   %eax
41180f:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
411815:	89 9d bc f8 ff ff    	mov    %ebx,-0x744(%ebp)
41181b:	68 cc 01 00 00       	push   $0x1cc
411820:	50                   	push   %eax
411821:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
411827:	e8 e6 25 00 00       	call   0x413e12
41182c:	8a c3                	mov    %bl,%al
41182e:	83 c4 10             	add    $0x10,%esp
411831:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
411837:	e9 c9 fe ff ff       	jmp    0x411705
41183c:	3b c3                	cmp    %ebx,%eax
41183e:	8d 95 c0 f8 ff ff    	lea    -0x740(%ebp),%edx
411844:	0f 92 c1             	setb   %cl
411847:	84 c9                	test   %cl,%cl
411849:	75 06                	jne    0x411851
41184b:	8d 95 30 fe ff ff    	lea    -0x1d0(%ebp),%edx
411851:	89 95 e4 f6 ff ff    	mov    %edx,-0x91c(%ebp)
411857:	8d 95 30 fe ff ff    	lea    -0x1d0(%ebp),%edx
41185d:	84 c9                	test   %cl,%cl
41185f:	75 06                	jne    0x411867
411861:	8d 95 c0 f8 ff ff    	lea    -0x740(%ebp),%edx
411867:	89 95 c8 f6 ff ff    	mov    %edx,-0x938(%ebp)
41186d:	84 c9                	test   %cl,%cl
41186f:	74 0a                	je     0x41187b
411871:	8b f8                	mov    %eax,%edi
411873:	89 bd dc f6 ff ff    	mov    %edi,-0x924(%ebp)
411879:	eb 08                	jmp    0x411883
41187b:	8b fb                	mov    %ebx,%edi
41187d:	89 9d dc f6 ff ff    	mov    %ebx,-0x924(%ebp)
411883:	84 c9                	test   %cl,%cl
411885:	75 02                	jne    0x411889
411887:	8b d8                	mov    %eax,%ebx
411889:	33 d2                	xor    %edx,%edx
41188b:	33 f6                	xor    %esi,%esi
41188d:	89 95 5c fc ff ff    	mov    %edx,-0x3a4(%ebp)
411893:	85 ff                	test   %edi,%edi
411895:	0f 84 07 01 00 00    	je     0x4119a2
41189b:	8b 85 e4 f6 ff ff    	mov    -0x91c(%ebp),%eax
4118a1:	8d 8d 60 fc ff ff    	lea    -0x3a0(%ebp),%ecx
4118a7:	2b c1                	sub    %ecx,%eax
4118a9:	89 85 e4 f6 ff ff    	mov    %eax,-0x91c(%ebp)
4118af:	8d 04 b0             	lea    (%eax,%esi,4),%eax
4118b2:	8b 84 05 60 fc ff ff 	mov    -0x3a0(%ebp,%eax,1),%eax
4118b9:	89 85 cc f6 ff ff    	mov    %eax,-0x934(%ebp)
4118bf:	85 c0                	test   %eax,%eax
4118c1:	75 1d                	jne    0x4118e0
4118c3:	3b f2                	cmp    %edx,%esi
4118c5:	0f 85 c8 00 00 00    	jne    0x411993
4118cb:	21 84 b5 60 fc ff ff 	and    %eax,-0x3a0(%ebp,%esi,4)
4118d2:	8d 56 01             	lea    0x1(%esi),%edx
4118d5:	89 95 5c fc ff ff    	mov    %edx,-0x3a4(%ebp)
4118db:	e9 b3 00 00 00       	jmp    0x411993
4118e0:	33 c0                	xor    %eax,%eax
4118e2:	33 ff                	xor    %edi,%edi
4118e4:	89 85 d0 f6 ff ff    	mov    %eax,-0x930(%ebp)
4118ea:	8b ce                	mov    %esi,%ecx
4118ec:	85 db                	test   %ebx,%ebx
4118ee:	0f 84 90 00 00 00    	je     0x411984
4118f4:	83 f9 73             	cmp    $0x73,%ecx
4118f7:	74 53                	je     0x41194c
4118f9:	3b ca                	cmp    %edx,%ecx
4118fb:	75 17                	jne    0x411914
4118fd:	83 a4 8d 60 fc ff ff 	andl   $0x0,-0x3a0(%ebp,%ecx,4)
411904:	00
411905:	40                   	inc    %eax
411906:	03 c6                	add    %esi,%eax
411908:	89 85 5c fc ff ff    	mov    %eax,-0x3a4(%ebp)
41190e:	8b 85 d0 f6 ff ff    	mov    -0x930(%ebp),%eax
411914:	8b 95 c8 f6 ff ff    	mov    -0x938(%ebp),%edx
41191a:	8b 04 82             	mov    (%edx,%eax,4),%eax
41191d:	f7 a5 cc f6 ff ff    	mull   -0x934(%ebp)
411923:	03 c7                	add    %edi,%eax
411925:	83 d2 00             	adc    $0x0,%edx
411928:	01 84 8d 60 fc ff ff 	add    %eax,-0x3a0(%ebp,%ecx,4)
41192f:	8b 85 d0 f6 ff ff    	mov    -0x930(%ebp),%eax
411935:	83 d2 00             	adc    $0x0,%edx
411938:	40                   	inc    %eax
411939:	41                   	inc    %ecx
41193a:	89 85 d0 f6 ff ff    	mov    %eax,-0x930(%ebp)
411940:	8b fa                	mov    %edx,%edi
411942:	8b 95 5c fc ff ff    	mov    -0x3a4(%ebp),%edx
411948:	3b c3                	cmp    %ebx,%eax
41194a:	75 a8                	jne    0x4118f4
41194c:	85 ff                	test   %edi,%edi
41194e:	74 34                	je     0x411984
411950:	83 f9 73             	cmp    $0x73,%ecx
411953:	0f 84 fc 00 00 00    	je     0x411a55
411959:	3b ca                	cmp    %edx,%ecx
41195b:	75 11                	jne    0x41196e
41195d:	83 a4 8d 60 fc ff ff 	andl   $0x0,-0x3a0(%ebp,%ecx,4)
411964:	00
411965:	8d 41 01             	lea    0x1(%ecx),%eax
411968:	89 85 5c fc ff ff    	mov    %eax,-0x3a4(%ebp)
41196e:	8b c7                	mov    %edi,%eax
411970:	33 ff                	xor    %edi,%edi
411972:	01 84 8d 60 fc ff ff 	add    %eax,-0x3a0(%ebp,%ecx,4)
411979:	8b 95 5c fc ff ff    	mov    -0x3a4(%ebp),%edx
41197f:	13 ff                	adc    %edi,%edi
411981:	41                   	inc    %ecx
411982:	eb c8                	jmp    0x41194c
411984:	83 f9 73             	cmp    $0x73,%ecx
411987:	0f 84 c8 00 00 00    	je     0x411a55
41198d:	8b bd dc f6 ff ff    	mov    -0x924(%ebp),%edi
411993:	8b 85 e4 f6 ff ff    	mov    -0x91c(%ebp),%eax
411999:	46                   	inc    %esi
41199a:	3b f7                	cmp    %edi,%esi
41199c:	0f 85 0d ff ff ff    	jne    0x4118af
4119a2:	8b c2                	mov    %edx,%eax
4119a4:	89 95 2c fe ff ff    	mov    %edx,-0x1d4(%ebp)
4119aa:	c1 e0 02             	shl    $0x2,%eax
4119ad:	50                   	push   %eax
4119ae:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
4119b4:	50                   	push   %eax
4119b5:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
4119bb:	68 cc 01 00 00       	push   $0x1cc
4119c0:	50                   	push   %eax
4119c1:	e8 4c 24 00 00       	call   0x413e12
4119c6:	83 c4 10             	add    $0x10,%esp
4119c9:	b0 01                	mov    $0x1,%al
4119cb:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
4119d1:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
4119d7:	84 c0                	test   %al,%al
4119d9:	0f 84 a7 00 00 00    	je     0x411a86
4119df:	8b 85 d8 f6 ff ff    	mov    -0x928(%ebp),%eax
4119e5:	2b 85 bc f6 ff ff    	sub    -0x944(%ebp),%eax
4119eb:	89 85 d8 f6 ff ff    	mov    %eax,-0x928(%ebp)
4119f1:	0f 85 59 fc ff ff    	jne    0x411650
4119f7:	8b 8d b8 f6 ff ff    	mov    -0x948(%ebp),%ecx
4119fd:	85 c9                	test   %ecx,%ecx
4119ff:	74 45                	je     0x411a46
411a01:	8b 3c 8d cc b8 42 00 	mov    0x42b8cc(,%ecx,4),%edi
411a08:	85 ff                	test   %edi,%edi
411a0a:	0f 85 88 00 00 00    	jne    0x411a98
411a10:	33 c0                	xor    %eax,%eax
411a12:	50                   	push   %eax
411a13:	89 85 bc f8 ff ff    	mov    %eax,-0x744(%ebp)
411a19:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
411a1f:	8d 85 c0 f8 ff ff    	lea    -0x740(%ebp),%eax
411a25:	50                   	push   %eax
411a26:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
411a2c:	68 cc 01 00 00       	push   $0x1cc
411a31:	50                   	push   %eax
411a32:	e8 db 23 00 00       	call   0x413e12
411a37:	83 c4 10             	add    $0x10,%esp
411a3a:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
411a40:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
411a46:	85 db                	test   %ebx,%ebx
411a48:	0f 85 ec 00 00 00    	jne    0x411b3a
411a4e:	33 c9                	xor    %ecx,%ecx
411a50:	e9 05 01 00 00       	jmp    0x411b5a
411a55:	33 c0                	xor    %eax,%eax
411a57:	50                   	push   %eax
411a58:	89 85 ec f6 ff ff    	mov    %eax,-0x914(%ebp)
411a5e:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
411a64:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
411a6a:	50                   	push   %eax
411a6b:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
411a71:	68 cc 01 00 00       	push   $0x1cc
411a76:	50                   	push   %eax
411a77:	e8 96 23 00 00       	call   0x413e12
411a7c:	83 c4 10             	add    $0x10,%esp
411a7f:	32 c0                	xor    %al,%al
411a81:	e9 45 ff ff ff       	jmp    0x4119cb
411a86:	83 a5 bc f8 ff ff 00 	andl   $0x0,-0x744(%ebp)
411a8d:	83 a5 2c fe ff ff 00 	andl   $0x0,-0x1d4(%ebp)
411a94:	6a 00                	push   $0x0
411a96:	eb 64                	jmp    0x411afc
411a98:	83 ff 01             	cmp    $0x1,%edi
411a9b:	74 a9                	je     0x411a46
411a9d:	85 db                	test   %ebx,%ebx
411a9f:	74 ad                	je     0x411a4e
411aa1:	33 c9                	xor    %ecx,%ecx
411aa3:	33 f6                	xor    %esi,%esi
411aa5:	8b c7                	mov    %edi,%eax
411aa7:	f7 a4 b5 30 fe ff ff 	mull   -0x1d0(%ebp,%esi,4)
411aae:	03 c1                	add    %ecx,%eax
411ab0:	89 84 b5 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%esi,4)
411ab7:	83 d2 00             	adc    $0x0,%edx
411aba:	46                   	inc    %esi
411abb:	8b ca                	mov    %edx,%ecx
411abd:	3b f3                	cmp    %ebx,%esi
411abf:	75 e4                	jne    0x411aa5
411ac1:	85 c9                	test   %ecx,%ecx
411ac3:	0f 84 71 ff ff ff    	je     0x411a3a
411ac9:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
411acf:	83 f8 73             	cmp    $0x73,%eax
411ad2:	73 19                	jae    0x411aed
411ad4:	89 8c 85 30 fe ff ff 	mov    %ecx,-0x1d0(%ebp,%eax,4)
411adb:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
411ae1:	43                   	inc    %ebx
411ae2:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
411ae8:	e9 53 ff ff ff       	jmp    0x411a40
411aed:	33 c0                	xor    %eax,%eax
411aef:	89 85 bc f8 ff ff    	mov    %eax,-0x744(%ebp)
411af5:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
411afb:	50                   	push   %eax
411afc:	8d 85 c0 f8 ff ff    	lea    -0x740(%ebp),%eax
411b02:	50                   	push   %eax
411b03:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
411b09:	68 cc 01 00 00       	push   $0x1cc
411b0e:	50                   	push   %eax
411b0f:	e8 fe 22 00 00       	call   0x413e12
411b14:	8b 85 b0 f6 ff ff    	mov    -0x950(%ebp),%eax
411b1a:	83 c4 10             	add    $0x10,%esp
411b1d:	ff b5 a8 f6 ff ff    	push   -0x958(%ebp)
411b23:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
411b2a:	50                   	push   %eax
411b2b:	e8 9e ee ff ff       	call   0x4109ce
411b30:	59                   	pop    %ecx
411b31:	59                   	pop    %ecx
411b32:	6a 03                	push   $0x3
411b34:	58                   	pop    %eax
411b35:	e9 8e 11 00 00       	jmp    0x412cc8
411b3a:	8b 84 9d 2c fe ff ff 	mov    -0x1d4(%ebp,%ebx,4),%eax
411b41:	83 a5 cc f6 ff ff 00 	andl   $0x0,-0x934(%ebp)
411b48:	0f bd c0             	bsr    %eax,%eax
411b4b:	74 03                	je     0x411b50
411b4d:	40                   	inc    %eax
411b4e:	eb 02                	jmp    0x411b52
411b50:	33 c0                	xor    %eax,%eax
411b52:	8d 4b ff             	lea    -0x1(%ebx),%ecx
411b55:	c1 e1 05             	shl    $0x5,%ecx
411b58:	03 c8                	add    %eax,%ecx
411b5a:	8b 85 e0 f6 ff ff    	mov    -0x920(%ebp),%eax
411b60:	89 8d bc f6 ff ff    	mov    %ecx,-0x944(%ebp)
411b66:	3b 8d ac f6 ff ff    	cmp    -0x954(%ebp),%ecx
411b6c:	0f 83 29 11 00 00    	jae    0x412c9b
411b72:	85 c0                	test   %eax,%eax
411b74:	0f 84 21 11 00 00    	je     0x412c9b
411b7a:	8b bd d4 f6 ff ff    	mov    -0x92c(%ebp),%edi
411b80:	33 db                	xor    %ebx,%ebx
411b82:	33 f6                	xor    %esi,%esi
411b84:	89 9d e4 f6 ff ff    	mov    %ebx,-0x91c(%ebp)
411b8a:	33 c9                	xor    %ecx,%ecx
411b8c:	89 9d 8c fa ff ff    	mov    %ebx,-0x574(%ebp)
411b92:	89 b5 dc f6 ff ff    	mov    %esi,-0x924(%ebp)
411b98:	3b bd c4 f6 ff ff    	cmp    -0x93c(%ebp),%edi
411b9e:	0f 84 3d 06 00 00    	je     0x4121e1
411ba4:	83 f9 09             	cmp    $0x9,%ecx
411ba7:	0f 85 04 01 00 00    	jne    0x411cb1
411bad:	85 db                	test   %ebx,%ebx
411baf:	0f 84 86 00 00 00    	je     0x411c3b
411bb5:	33 c9                	xor    %ecx,%ecx
411bb7:	be 00 ca 9a 3b       	mov    $0x3b9aca00,%esi
411bbc:	33 ff                	xor    %edi,%edi
411bbe:	8b 84 bd 90 fa ff ff 	mov    -0x570(%ebp,%edi,4),%eax
411bc5:	f7 e6                	mul    %esi
411bc7:	03 c1                	add    %ecx,%eax