4155a1:	c3                   	ret
4155a2:	8b ff                	mov    %edi,%edi
4155a4:	55                   	push   %ebp
4155a5:	8b ec                	mov    %esp,%ebp
4155a7:	81 ec 2c 0b 00 00    	sub    $0xb2c,%esp
4155ad:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
4155b2:	33 c5                	xor    %ebp,%eax
4155b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4155b7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4155ba:	33 c0                	xor    %eax,%eax
4155bc:	8b 55 08             	mov    0x8(%ebp),%edx
4155bf:	53                   	push   %ebx
4155c0:	56                   	push   %esi
4155c1:	38 41 04             	cmp    %al,0x4(%ecx)
4155c4:	8b 1a                	mov    (%edx),%ebx
4155c6:	0f 94 c0             	sete   %al
4155c9:	89 95 b4 f6 ff ff    	mov    %edx,-0x94c(%ebp)
4155cf:	48                   	dec    %eax
4155d0:	89 8d ac f6 ff ff    	mov    %ecx,-0x954(%ebp)
4155d6:	83 e0 1d             	and    $0x1d,%eax
4155d9:	83 c0 19             	add    $0x19,%eax
4155dc:	89 85 b0 f6 ff ff    	mov    %eax,-0x950(%ebp)
4155e2:	57                   	push   %edi
4155e3:	85 db                	test   %ebx,%ebx
4155e5:	79 02                	jns    0x4155e9
4155e7:	33 db                	xor    %ebx,%ebx
4155e9:	8b 42 04             	mov    0x4(%edx),%eax
4155ec:	8b cb                	mov    %ebx,%ecx
4155ee:	3b d8                	cmp    %eax,%ebx
4155f0:	72 02                	jb     0x4155f4
4155f2:	8b c8                	mov    %eax,%ecx
4155f4:	2b d9                	sub    %ecx,%ebx
4155f6:	8d 7a 08             	lea    0x8(%edx),%edi
4155f9:	83 c0 08             	add    $0x8,%eax
4155fc:	89 9d d0 f6 ff ff    	mov    %ebx,-0x930(%ebp)
415602:	83 c1 08             	add    $0x8,%ecx
415605:	89 bd c4 f6 ff ff    	mov    %edi,-0x93c(%ebp)
41560b:	03 ca                	add    %edx,%ecx
41560d:	03 c2                	add    %edx,%eax
41560f:	89 8d a8 f6 ff ff    	mov    %ecx,-0x958(%ebp)
415615:	33 db                	xor    %ebx,%ebx
415617:	89 85 a4 f6 ff ff    	mov    %eax,-0x95c(%ebp)
41561d:	33 f6                	xor    %esi,%esi
41561f:	2b c1                	sub    %ecx,%eax
415621:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
415627:	33 c9                	xor    %ecx,%ecx
415629:	89 85 c0 f6 ff ff    	mov    %eax,-0x940(%ebp)
41562f:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
415635:	89 b5 e0 f6 ff ff    	mov    %esi,-0x920(%ebp)
41563b:	3b bd a8 f6 ff ff    	cmp    -0x958(%ebp),%edi
415641:	0f 84 ae 06 00 00    	je     0x415cf5
415647:	83 f9 09             	cmp    $0x9,%ecx
41564a:	0f 85 04 01 00 00    	jne    0x415754
415650:	85 db                	test   %ebx,%ebx
415652:	0f 84 86 00 00 00    	je     0x4156de
415658:	33 c9                	xor    %ecx,%ecx
41565a:	bf 00 ca 9a 3b       	mov    $0x3b9aca00,%edi
41565f:	33 f6                	xor    %esi,%esi
415661:	8b 84 b5 30 fe ff ff 	mov    -0x1d0(%ebp,%esi,4),%eax
415668:	f7 e7                	mul    %edi
41566a:	03 c1                	add    %ecx,%eax
41566c:	89 84 b5 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%esi,4)
415673:	83 d2 00             	adc    $0x0,%edx
415676:	46                   	inc    %esi
415677:	8b ca                	mov    %edx,%ecx
415679:	3b f3                	cmp    %ebx,%esi
41567b:	75 e4                	jne    0x415661
41567d:	8b bd c4 f6 ff ff    	mov    -0x93c(%ebp),%edi
415683:	85 c9                	test   %ecx,%ecx
415685:	74 4b                	je     0x4156d2
415687:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
41568d:	83 f8 73             	cmp    $0x73,%eax
415690:	73 16                	jae    0x4156a8
415692:	89 8c 85 30 fe ff ff 	mov    %ecx,-0x1d0(%ebp,%eax,4)
415699:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
41569f:	43                   	inc    %ebx
4156a0:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
4156a6:	eb 30                	jmp    0x4156d8
4156a8:	33 c0                	xor    %eax,%eax
4156aa:	50                   	push   %eax
4156ab:	89 85 ec f6 ff ff    	mov    %eax,-0x914(%ebp)
4156b1:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
4156b7:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4156bd:	50                   	push   %eax
4156be:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
4156c4:	68 cc 01 00 00       	push   $0x1cc
4156c9:	50                   	push   %eax
4156ca:	e8 a9 2d 00 00       	call   0x418478
4156cf:	83 c4 10             	add    $0x10,%esp
4156d2:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
4156d8:	8b b5 e0 f6 ff ff    	mov    -0x920(%ebp),%esi
4156de:	85 f6                	test   %esi,%esi
4156e0:	74 6e                	je     0x415750
4156e2:	33 d2                	xor    %edx,%edx
4156e4:	85 db                	test   %ebx,%ebx
4156e6:	74 1c                	je     0x415704
4156e8:	33 c0                	xor    %eax,%eax
4156ea:	01 b4 95 30 fe ff ff 	add    %esi,-0x1d0(%ebp,%edx,4)
4156f1:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
4156f7:	13 c0                	adc    %eax,%eax
4156f9:	42                   	inc    %edx
4156fa:	8b f0                	mov    %eax,%esi
4156fc:	3b d3                	cmp    %ebx,%edx
4156fe:	75 e8                	jne    0x4156e8
415700:	85 c0                	test   %eax,%eax
415702:	74 4c                	je     0x415750
415704:	83 fb 73             	cmp    $0x73,%ebx
415707:	73 16                	jae    0x41571f
415709:	89 b4 9d 30 fe ff ff 	mov    %esi,-0x1d0(%ebp,%ebx,4)
415710:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
415716:	43                   	inc    %ebx
415717:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
41571d:	eb 31                	jmp    0x415750
41571f:	83 a5 ec f6 ff ff 00 	andl   $0x0,-0x914(%ebp)
415726:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
41572c:	83 a5 2c fe ff ff 00 	andl   $0x0,-0x1d4(%ebp)
415733:	6a 00                	push   $0x0
415735:	50                   	push   %eax
415736:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
41573c:	68 cc 01 00 00       	push   $0x1cc
415741:	50                   	push   %eax
415742:	e8 31 2d 00 00       	call   0x418478
415747:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
41574d:	83 c4 10             	add    $0x10,%esp
415750:	33 f6                	xor    %esi,%esi
415752:	33 c9                	xor    %ecx,%ecx
415754:	0f b6 07             	movzbl (%edi),%eax
415757:	6b f6 0a             	imul   $0xa,%esi,%esi
41575a:	03 f0                	add    %eax,%esi
41575c:	41                   	inc    %ecx
41575d:	47                   	inc    %edi
41575e:	89 b5 e0 f6 ff ff    	mov    %esi,-0x920(%ebp)
415764:	89 bd c4 f6 ff ff    	mov    %edi,-0x93c(%ebp)
41576a:	3b bd a8 f6 ff ff    	cmp    -0x958(%ebp),%edi
415770:	0f 85 d1 fe ff ff    	jne    0x415647
415776:	89 8d bc f6 ff ff    	mov    %ecx,-0x944(%ebp)
41577c:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
415782:	85 c9                	test   %ecx,%ecx
415784:	0f 84 6f 05 00 00    	je     0x415cf9
41578a:	6a 0a                	push   $0xa
41578c:	33 d2                	xor    %edx,%edx
41578e:	8b c1                	mov    %ecx,%eax
415790:	5e                   	pop    %esi
415791:	f7 f6                	div    %esi
415793:	89 85 d4 f6 ff ff    	mov    %eax,-0x92c(%ebp)
415799:	85 c0                	test   %eax,%eax
41579b:	0f 84 de 03 00 00    	je     0x415b7f
4157a1:	83 f8 26             	cmp    $0x26,%eax
4157a4:	76 03                	jbe    0x4157a9
4157a6:	6a 26                	push   $0x26
4157a8:	58                   	pop    %eax
4157a9:	0f b6 0c 85 1e 2e 43 	movzbl 0x432e1e(,%eax,4),%ecx
4157b0:	00
4157b1:	0f b6 34 85 1f 2e 43 	movzbl 0x432e1f(,%eax,4),%esi
4157b8:	00
4157b9:	8b f9                	mov    %ecx,%edi
4157bb:	89 85 dc f6 ff ff    	mov    %eax,-0x924(%ebp)
4157c1:	c1 e7 02             	shl    $0x2,%edi
4157c4:	57                   	push   %edi
4157c5:	8d 04 31             	lea    (%ecx,%esi,1),%eax
4157c8:	89 85 ec f6 ff ff    	mov    %eax,-0x914(%ebp)
4157ce:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4157d4:	6a 00                	push   $0x0
4157d6:	50                   	push   %eax
4157d7:	e8 e4 5b ff ff       	call   0x40b3c0
4157dc:	8b c6                	mov    %esi,%eax
4157de:	c1 e0 02             	shl    $0x2,%eax
4157e1:	50                   	push   %eax
4157e2:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
4157e8:	0f b7 04 85 1c 2e 43 	movzwl 0x432e1c(,%eax,4),%eax
4157ef:	00
4157f0:	8d 04 85 18 25 43 00 	lea    0x432518(,%eax,4),%eax
4157f7:	50                   	push   %eax
4157f8:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4157fe:	03 c7                	add    %edi,%eax
415800:	50                   	push   %eax
415801:	e8 3a 56 ff ff       	call   0x40ae40
415806:	8b 85 ec f6 ff ff    	mov    -0x914(%ebp),%eax
41580c:	33 c9                	xor    %ecx,%ecx
41580e:	41                   	inc    %ecx
41580f:	83 c4 18             	add    $0x18,%esp
415812:	3b c1                	cmp    %ecx,%eax
415814:	0f 87 e1 00 00 00    	ja     0x4158fb
41581a:	8b bd f0 f6 ff ff    	mov    -0x910(%ebp),%edi
415820:	85 ff                	test   %edi,%edi
415822:	75 43                	jne    0x415867
415824:	33 c0                	xor    %eax,%eax
415826:	50                   	push   %eax
415827:	89 85 bc f8 ff ff    	mov    %eax,-0x744(%ebp)
41582d:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
415833:	8d 85 c0 f8 ff ff    	lea    -0x740(%ebp),%eax
415839:	50                   	push   %eax
41583a:	68 cc 01 00 00       	push   $0x1cc
41583f:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
415845:	50                   	push   %eax
415846:	e8 2d 2c 00 00       	call   0x418478
41584b:	83 c4 10             	add    $0x10,%esp
41584e:	8b 8d 2c fe ff ff    	mov    -0x1d4(%ebp),%ecx
415854:	89 8d e8 f6 ff ff    	mov    %ecx,-0x918(%ebp)
41585a:	b0 01                	mov    $0x1,%al
41585c:	8b 9d e8 f6 ff ff    	mov    -0x918(%ebp),%ebx
415862:	e9 f6 02 00 00       	jmp    0x415b5d
415867:	3b f9                	cmp    %ecx,%edi
415869:	75 04                	jne    0x41586f
41586b:	8a c1                	mov    %cl,%al
41586d:	eb ed                	jmp    0x41585c
41586f:	85 db                	test   %ebx,%ebx
415871:	74 f8                	je     0x41586b
415873:	33 c9                	xor    %ecx,%ecx
415875:	33 f6                	xor    %esi,%esi
415877:	8b c7                	mov    %edi,%eax
415879:	f7 a4 b5 30 fe ff ff 	mull   -0x1d0(%ebp,%esi,4)
415880:	03 c1                	add    %ecx,%eax
415882:	89 84 b5 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%esi,4)
415889:	83 d2 00             	adc    $0x0,%edx
41588c:	46                   	inc    %esi
41588d:	8b ca                	mov    %edx,%ecx
41588f:	3b f3                	cmp    %ebx,%esi
415891:	75 e4                	jne    0x415877
415893:	85 c9                	test   %ecx,%ecx
415895:	74 b7                	je     0x41584e
415897:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
41589d:	83 f8 73             	cmp    $0x73,%eax
4158a0:	73 1c                	jae    0x4158be
4158a2:	89 8c 85 30 fe ff ff 	mov    %ecx,-0x1d0(%ebp,%eax,4)
4158a9:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
4158af:	40                   	inc    %eax
4158b0:	89 85 e8 f6 ff ff    	mov    %eax,-0x918(%ebp)
4158b6:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
4158bc:	eb 9c                	jmp    0x41585a
4158be:	33 db                	xor    %ebx,%ebx
4158c0:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4158c6:	53                   	push   %ebx
4158c7:	50                   	push   %eax
4158c8:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
4158ce:	89 9d ec f6 ff ff    	mov    %ebx,-0x914(%ebp)
4158d4:	68 cc 01 00 00       	push   $0x1cc
4158d9:	50                   	push   %eax
4158da:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
4158e0:	e8 93 2b 00 00       	call   0x418478
4158e5:	8b 8d 2c fe ff ff    	mov    -0x1d4(%ebp),%ecx
4158eb:	83 c4 10             	add    $0x10,%esp
4158ee:	8a c3                	mov    %bl,%al
4158f0:	89 8d e8 f6 ff ff    	mov    %ecx,-0x918(%ebp)
4158f6:	e9 61 ff ff ff       	jmp    0x41585c
4158fb:	3b d9                	cmp    %ecx,%ebx
4158fd:	0f 87 ac 00 00 00    	ja     0x4159af
415903:	8b 9d 30 fe ff ff    	mov    -0x1d0(%ebp),%ebx
415909:	be cc 01 00 00       	mov    $0x1cc,%esi
41590e:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
415914:	c1 e0 02             	shl    $0x2,%eax
415917:	50                   	push   %eax
415918:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
41591e:	50                   	push   %eax
41591f:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
415925:	56                   	push   %esi
415926:	50                   	push   %eax
415927:	e8 4c 2b 00 00       	call   0x418478
41592c:	83 c4 10             	add    $0x10,%esp
41592f:	33 c0                	xor    %eax,%eax
415931:	85 db                	test   %ebx,%ebx
415933:	75 1a                	jne    0x41594f
415935:	50                   	push   %eax
415936:	89 85 ec f6 ff ff    	mov    %eax,-0x914(%ebp)
41593c:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
415942:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
415948:	50                   	push   %eax
415949:	56                   	push   %esi
41594a:	e9 f0 fe ff ff       	jmp    0x41583f
41594f:	8b 8d 2c fe ff ff    	mov    -0x1d4(%ebp),%ecx
415955:	40                   	inc    %eax
415956:	89 8d e8 f6 ff ff    	mov    %ecx,-0x918(%ebp)
41595c:	3b d8                	cmp    %eax,%ebx
41595e:	0f 84 f8 fe ff ff    	je     0x41585c
415964:	85 c9                	test   %ecx,%ecx
415966:	0f 84 f0 fe ff ff    	je     0x41585c
41596c:	33 f6                	xor    %esi,%esi
41596e:	33 ff                	xor    %edi,%edi
415970:	8b c3                	mov    %ebx,%eax
415972:	f7 a4 bd 30 fe ff ff 	mull   -0x1d0(%ebp,%edi,4)
415979:	03 c6                	add    %esi,%eax
41597b:	89 84 bd 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%edi,4)
415982:	83 d2 00             	adc    $0x0,%edx
415985:	47                   	inc    %edi
415986:	8b f2                	mov    %edx,%esi
415988:	3b f9                	cmp    %ecx,%edi
41598a:	75 e4                	jne    0x415970
41598c:	85 f6                	test   %esi,%esi
41598e:	0f 84 ba fe ff ff    	je     0x41584e
415994:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
41599a:	83 f8 73             	cmp    $0x73,%eax
41599d:	0f 83 1b ff ff ff    	jae    0x4158be
4159a3:	89 b4 85 30 fe ff ff 	mov    %esi,-0x1d0(%ebp,%eax,4)
4159aa:	e9 fa fe ff ff       	jmp    0x4158a9
4159af:	3b c3                	cmp    %ebx,%eax
4159b1:	8d 95 f0 f6 ff ff    	lea    -0x910(%ebp),%edx
4159b7:	0f 92 c1             	setb   %cl
4159ba:	72 06                	jb     0x4159c2
4159bc:	8d 95 30 fe ff ff    	lea    -0x1d0(%ebp),%edx
4159c2:	89 95 c8 f6 ff ff    	mov    %edx,-0x938(%ebp)
4159c8:	84 c9                	test   %cl,%cl
4159ca:	74 10                	je     0x4159dc
4159cc:	8d b5 30 fe ff ff    	lea    -0x1d0(%ebp),%esi
4159d2:	8b c8                	mov    %eax,%ecx
4159d4:	89 b5 c4 f6 ff ff    	mov    %esi,-0x93c(%ebp)
4159da:	eb 10                	jmp    0x4159ec
4159dc:	8d 8d f0 f6 ff ff    	lea    -0x910(%ebp),%ecx
4159e2:	89 8d c4 f6 ff ff    	mov    %ecx,-0x93c(%ebp)
4159e8:	8b cb                	mov    %ebx,%ecx
4159ea:	8b d8                	mov    %eax,%ebx
4159ec:	33 c0                	xor    %eax,%eax
4159ee:	89 8d cc f6 ff ff    	mov    %ecx,-0x934(%ebp)
4159f4:	33 ff                	xor    %edi,%edi
4159f6:	89 85 bc f8 ff ff    	mov    %eax,-0x744(%ebp)
4159fc:	85 c9                	test   %ecx,%ecx
4159fe:	0f 84 26 01 00 00    	je     0x415b2a
415a04:	83 3c ba 00          	cmpl   $0x0,(%edx,%edi,4)
415a08:	75 1e                	jne    0x415a28
415a0a:	3b f8                	cmp    %eax,%edi
415a0c:	0f 85 0f 01 00 00    	jne    0x415b21
415a12:	83 a4 bd c0 f8 ff ff 	andl   $0x0,-0x740(%ebp,%edi,4)
415a19:	00
415a1a:	8d 47 01             	lea    0x1(%edi),%eax
415a1d:	89 85 bc f8 ff ff    	mov    %eax,-0x744(%ebp)
415a23:	e9 f9 00 00 00       	jmp    0x415b21
415a28:	83 a5 e4 f6 ff ff 00 	andl   $0x0,-0x91c(%ebp)
415a2f:	33 d2                	xor    %edx,%edx
415a31:	89 95 d8 f6 ff ff    	mov    %edx,-0x928(%ebp)
415a37:	8b f7                	mov    %edi,%esi
415a39:	85 db                	test   %ebx,%ebx
415a3b:	0f 84 cb 00 00 00    	je     0x415b0c
415a41:	83 fe 73             	cmp    $0x73,%esi
415a44:	74 66                	je     0x415aac
415a46:	8b ce                	mov    %esi,%ecx
415a48:	c1 e1 02             	shl    $0x2,%ecx
415a4b:	3b f0                	cmp    %eax,%esi
415a4d:	75 13                	jne    0x415a62
415a4f:	83 a4 0d c0 f8 ff ff 	andl   $0x0,-0x740(%ebp,%ecx,1)
415a56:	00
415a57:	8d 47 01             	lea    0x1(%edi),%eax
415a5a:	03 c2                	add    %edx,%eax
415a5c:	89 85 bc f8 ff ff    	mov    %eax,-0x744(%ebp)
415a62:	8b 85 c4 f6 ff ff    	mov    -0x93c(%ebp),%eax
415a68:	8b 04 90             	mov    (%eax,%edx,4),%eax
415a6b:	8b 95 c8 f6 ff ff    	mov    -0x938(%ebp),%edx
415a71:	f7 24 ba             	mull   (%edx,%edi,4)
415a74:	03 84 0d c0 f8 ff ff 	add    -0x740(%ebp,%ecx,1),%eax
415a7b:	83 d2 00             	adc    $0x0,%edx
415a7e:	03 85 e4 f6 ff ff    	add    -0x91c(%ebp),%eax
415a84:	89 84 0d c0 f8 ff ff 	mov    %eax,-0x740(%ebp,%ecx,1)