4135d3:	3b c2                	cmp    %edx,%eax
4135d5:	89 45 08             	mov    %eax,0x8(%ebp)
4135d8:	7c 07                	jl     0x4135e1
4135da:	32 c0                	xor    %al,%al
4135dc:	e9 9c 00 00 00       	jmp    0x41367d
4135e1:	39 4d 08             	cmp    %ecx,0x8(%ebp)
4135e4:	8b bd f8 fb ff ff    	mov    -0x408(%ebp),%edi
4135ea:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4135f0:	7d 3d                	jge    0x41362f
4135f2:	8b cf                	mov    %edi,%ecx
4135f4:	0f b6 51 01          	movzbl 0x1(%ecx),%edx
4135f8:	eb 0b                	jmp    0x413605
4135fa:	83 c0 04             	add    $0x4,%eax
4135fd:	8b 38                	mov    (%eax),%edi
4135ff:	0f b6 4f 01          	movzbl 0x1(%edi),%ecx
413603:	03 d1                	add    %ecx,%edx
413605:	3b 55 08             	cmp    0x8(%ebp),%edx
413608:	7e f0                	jle    0x4135fa
41360a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41360d:	89 96 80 4a 00 00    	mov    %edx,0x4a80(%esi)
413613:	0f b6 47 01          	movzbl 0x1(%edi),%eax
413617:	2b d0                	sub    %eax,%edx
413619:	89 96 7c 4a 00 00    	mov    %edx,0x4a7c(%esi)
41361f:	e8 46 f1 ff ff       	call   0x41276a
413624:	57                   	push   %edi
413625:	56                   	push   %esi
413626:	8b cb                	mov    %ebx,%ecx
413628:	e8 4c fe ff ff       	call   0x413479
41362d:	eb 4c                	jmp    0x41367b
41362f:	89 8e 7c 4a 00 00    	mov    %ecx,0x4a7c(%esi)
413635:	89 96 80 4a 00 00    	mov    %edx,0x4a80(%esi)
41363b:	0f b7 3b             	movzwl (%ebx),%edi
41363e:	2b be 54 06 00 00    	sub    0x654(%esi),%edi
413644:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
41364a:	83 e8 04             	sub    $0x4,%eax
41364d:	8a 96 6c 0a 00 00    	mov    0xa6c(%esi),%dl
413653:	83 c0 04             	add    $0x4,%eax
413656:	4f                   	dec    %edi
413657:	8b 08                	mov    (%eax),%ecx
413659:	0f b6 09             	movzbl (%ecx),%ecx
41365c:	88 94 31 6c 06 00 00 	mov    %dl,0x66c(%ecx,%esi,1)
413663:	75 e8                	jne    0x41364d
413665:	8b 45 fc             	mov    -0x4(%ebp),%eax
413668:	66 8b 8e 84 4a 00 00 	mov    0x4a84(%esi),%cx
41366f:	66 01 08             	add    %cx,(%eax)
413672:	0f b7 03             	movzwl (%ebx),%eax
413675:	89 86 54 06 00 00    	mov    %eax,0x654(%esi)
41367b:	b0 01                	mov    $0x1,%al
41367d:	5f                   	pop    %edi
41367e:	5e                   	pop    %esi
41367f:	5b                   	pop    %ebx
413680:	c9                   	leave
413681:	c2 04 00             	ret    $0x4
413684:	56                   	push   %esi
413685:	8b f1                	mov    %ecx,%esi
413687:	57                   	push   %edi
413688:	8d be 8c 4a 00 00    	lea    0x4a8c(%esi),%edi
41368e:	8b cf                	mov    %edi,%ecx
413690:	e8 8a e5 ff ff       	call   0x411c1f
413695:	6a 01                	push   $0x1
413697:	8b cf                	mov    %edi,%ecx
413699:	e8 96 e5 ff ff       	call   0x411c34
41369e:	6a 02                	push   $0x2
4136a0:	8b ce                	mov    %esi,%ecx
4136a2:	e8 14 f6 ff ff       	call   0x412cbb
4136a7:	5f                   	pop    %edi
4136a8:	5e                   	pop    %esi
4136a9:	c3                   	ret
4136aa:	55                   	push   %ebp
4136ab:	8b ec                	mov    %esp,%ebp
4136ad:	51                   	push   %ecx
4136ae:	53                   	push   %ebx
4136af:	56                   	push   %esi
4136b0:	57                   	push   %edi
4136b1:	8b 7d 08             	mov    0x8(%ebp),%edi
4136b4:	8b f1                	mov    %ecx,%esi
4136b6:	8b cf                	mov    %edi,%ecx
4136b8:	e8 01 f1 ff ff       	call   0x4127be
4136bd:	8b d8                	mov    %eax,%ebx
4136bf:	89 5d 08             	mov    %ebx,0x8(%ebp)
4136c2:	c1 eb 05             	shr    $0x5,%ebx
4136c5:	80 e3 01             	and    $0x1,%bl
4136c8:	74 52                	je     0x41371c
4136ca:	8b cf                	mov    %edi,%ecx
4136cc:	e8 ed f0 ff ff       	call   0x4127be
4136d1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4136d4:	f6 45 08 40          	testb  $0x40,0x8(%ebp)
4136d8:	74 0c                	je     0x4136e6
4136da:	8b cf                	mov    %edi,%ecx
4136dc:	e8 dd f0 ff ff       	call   0x4127be
4136e1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4136e4:	89 01                	mov    %eax,(%ecx)
4136e6:	57                   	push   %edi
4136e7:	8d 8e 70 4a 00 00    	lea    0x4a70(%esi),%ecx
4136ed:	e8 ed f0 ff ff       	call   0x4127df
4136f2:	84 db                	test   %bl,%bl
4136f4:	74 45                	je     0x41373b
4136f6:	8b 45 08             	mov    0x8(%ebp),%eax
4136f9:	83 e0 1f             	and    $0x1f,%eax
4136fc:	40                   	inc    %eax
4136fd:	8b d8                	mov    %eax,%ebx
4136ff:	83 fb 10             	cmp    $0x10,%ebx
413702:	7e 06                	jle    0x41370a
413704:	6b db 03             	imul   $0x3,%ebx,%ebx
413707:	83 eb 20             	sub    $0x20,%ebx
41370a:	8d 8e 8c 4a 00 00    	lea    0x4a8c(%esi),%ecx
413710:	83 fb 01             	cmp    $0x1,%ebx
413713:	75 14                	jne    0x413729
413715:	e8 05 e5 ff ff       	call   0x411c1f
41371a:	eb 09                	jmp    0x413725
41371c:	83 be 8c 4a 00 00 00 	cmpl   $0x0,0x4a8c(%esi)
413723:	75 af                	jne    0x4136d4
413725:	32 c0                	xor    %al,%al
413727:	eb 1d                	jmp    0x413746
413729:	8b 45 fc             	mov    -0x4(%ebp),%eax
41372c:	40                   	inc    %eax
41372d:	50                   	push   %eax
41372e:	e8 01 e5 ff ff       	call   0x411c34
413733:	53                   	push   %ebx
413734:	8b ce                	mov    %esi,%ecx
413736:	e8 80 f5 ff ff       	call   0x412cbb
41373b:	33 c0                	xor    %eax,%eax
41373d:	39 86 44 06 00 00    	cmp    %eax,0x644(%esi)
413743:	0f 95 c0             	setne  %al
413746:	5f                   	pop    %edi
413747:	5e                   	pop    %esi
413748:	5b                   	pop    %ebx
413749:	c9                   	leave
41374a:	c2 08 00             	ret    $0x8
41374d:	56                   	push   %esi
41374e:	8b f1                	mov    %ecx,%esi
413750:	8b 8e 44 06 00 00    	mov    0x644(%esi),%ecx
413756:	8b 96 dc 4b 00 00    	mov    0x4bdc(%esi),%edx
41375c:	57                   	push   %edi
41375d:	3b ca                	cmp    %edx,%ecx
41375f:	76 25                	jbe    0x413786
413761:	8b be e4 4b 00 00    	mov    0x4be4(%esi),%edi
413767:	3b cf                	cmp    %edi,%ecx
413769:	77 1b                	ja     0x413786
41376b:	66 83 39 01          	cmpw   $0x1,(%ecx)
41376f:	74 1b                	je     0x41378c
413771:	8b 41 04             	mov    0x4(%ecx),%eax
413774:	3b c2                	cmp    %edx,%eax
413776:	76 0e                	jbe    0x413786
413778:	3b c7                	cmp    %edi,%eax
41377a:	77 0a                	ja     0x413786
41377c:	56                   	push   %esi
41377d:	e8 b9 fb ff ff       	call   0x41333b
413782:	84 c0                	test   %al,%al
413784:	75 0c                	jne    0x413792
413786:	83 c8 ff             	or     $0xffffffff,%eax
413789:	5f                   	pop    %edi
41378a:	5e                   	pop    %esi
41378b:	c3                   	ret
41378c:	56                   	push   %esi
41378d:	e8 b2 e6 ff ff       	call   0x411e44
413792:	8b 8e 7c 4a 00 00    	mov    0x4a7c(%esi),%ecx
413798:	8d 86 78 4a 00 00    	lea    0x4a78(%esi),%eax
41379e:	8b 10                	mov    (%eax),%edx
4137a0:	8b fa                	mov    %edx,%edi
4137a2:	0f af f9             	imul   %ecx,%edi
4137a5:	01 be 70 4a 00 00    	add    %edi,0x4a70(%esi)
4137ab:	8b be 80 4a 00 00    	mov    0x4a80(%esi),%edi
4137b1:	2b f9                	sub    %ecx,%edi
4137b3:	0f af fa             	imul   %edx,%edi
4137b6:	89 38                	mov    %edi,(%eax)
4137b8:	83 be 50 06 00 00 00 	cmpl   $0x0,0x650(%esi)
4137bf:	74 37                	je     0x4137f8
4137c1:	83 be 5c 06 00 00 00 	cmpl   $0x0,0x65c(%esi)
4137c8:	8b 86 50 06 00 00    	mov    0x650(%esi),%eax
4137ce:	53                   	push   %ebx
4137cf:	0f b6 18             	movzbl (%eax),%ebx
4137d2:	0f 85 bd 00 00 00    	jne    0x413895
4137d8:	8b 40 02             	mov    0x2(%eax),%eax
4137db:	3b 86 dc 4b 00 00    	cmp    0x4bdc(%esi),%eax
4137e1:	0f 86 ae 00 00 00    	jbe    0x413895
4137e7:	89 86 4c 06 00 00    	mov    %eax,0x64c(%esi)
4137ed:	89 86 44 06 00 00    	mov    %eax,0x644(%esi)
4137f3:	e9 b4 00 00 00       	jmp    0x4138ac
4137f8:	8b 86 70 4a 00 00    	mov    0x4a70(%esi),%eax
4137fe:	8b 8e 78 4a 00 00    	mov    0x4a78(%esi),%ecx
413804:	8d 14 08             	lea    (%eax,%ecx,1),%edx
413807:	33 d0                	xor    %eax,%edx
413809:	81 fa 00 00 00 01    	cmp    $0x1000000,%edx
41380f:	72 15                	jb     0x413826
413811:	81 f9 00 80 00 00    	cmp    $0x8000,%ecx
413817:	73 37                	jae    0x413850
413819:	f7 d8                	neg    %eax
41381b:	25 ff 7f 00 00       	and    $0x7fff,%eax
413820:	89 86 78 4a 00 00    	mov    %eax,0x4a78(%esi)
413826:	8b 8e 88 4a 00 00    	mov    0x4a88(%esi),%ecx
41382c:	8d be 74 4a 00 00    	lea    0x4a74(%esi),%edi
413832:	e8 87 ef ff ff       	call   0x4127be
413837:	8b 0f                	mov    (%edi),%ecx
413839:	c1 a6 78 4a 00 00 08 	shll   $0x8,0x4a78(%esi)
413840:	c1 e1 08             	shl    $0x8,%ecx
413843:	0b c1                	or     %ecx,%eax
413845:	c1 a6 70 4a 00 00 08 	shll   $0x8,0x4a70(%esi)
41384c:	89 07                	mov    %eax,(%edi)
41384e:	eb a8                	jmp    0x4137f8
413850:	8b 86 dc 4b 00 00    	mov    0x4bdc(%esi),%eax
413856:	8b 8e 44 06 00 00    	mov    0x644(%esi),%ecx
41385c:	ff 86 5c 06 00 00    	incl   0x65c(%esi)
413862:	8b 49 08             	mov    0x8(%ecx),%ecx
413865:	89 8e 44 06 00 00    	mov    %ecx,0x644(%esi)
41386b:	3b c8                	cmp    %eax,%ecx
41386d:	0f 86 13 ff ff ff    	jbe    0x413786
413873:	3b 8e e4 4b 00 00    	cmp    0x4be4(%esi),%ecx
413879:	0f 87 07 ff ff ff    	ja     0x413786
41387f:	0f b7 11             	movzwl (%ecx),%edx
413882:	3b 96 54 06 00 00    	cmp    0x654(%esi),%edx
413888:	74 cc                	je     0x413856
41388a:	56                   	push   %esi
41388b:	e8 b5 fc ff ff       	call   0x413545
413890:	e9 ed fe ff ff       	jmp    0x413782
413895:	8b ce                	mov    %esi,%ecx
413897:	e8 79 f7 ff ff       	call   0x413015
41389c:	80 be 6c 0a 00 00 00 	cmpb   $0x0,0xa6c(%esi)
4138a3:	75 07                	jne    0x4138ac
4138a5:	8b ce                	mov    %esi,%ecx
4138a7:	e8 c7 e6 ff ff       	call   0x411f73
4138ac:	8b 86 70 4a 00 00    	mov    0x4a70(%esi),%eax
4138b2:	8b 8e 78 4a 00 00    	mov    0x4a78(%esi),%ecx
4138b8:	8d 14 08             	lea    (%eax,%ecx,1),%edx
4138bb:	33 d0                	xor    %eax,%edx
4138bd:	81 fa 00 00 00 01    	cmp    $0x1000000,%edx
4138c3:	72 15                	jb     0x4138da
4138c5:	81 f9 00 80 00 00    	cmp    $0x8000,%ecx
4138cb:	73 37                	jae    0x413904
4138cd:	f7 d8                	neg    %eax
4138cf:	25 ff 7f 00 00       	and    $0x7fff,%eax
4138d4:	89 86 78 4a 00 00    	mov    %eax,0x4a78(%esi)
4138da:	8b 8e 88 4a 00 00    	mov    0x4a88(%esi),%ecx
4138e0:	8d be 74 4a 00 00    	lea    0x4a74(%esi),%edi
4138e6:	e8 d3 ee ff ff       	call   0x4127be
4138eb:	8b 0f                	mov    (%edi),%ecx
4138ed:	c1 a6 78 4a 00 00 08 	shll   $0x8,0x4a78(%esi)
4138f4:	c1 e1 08             	shl    $0x8,%ecx
4138f7:	0b c1                	or     %ecx,%eax
4138f9:	c1 a6 70 4a 00 00 08 	shll   $0x8,0x4a70(%esi)
413900:	89 07                	mov    %eax,(%edi)
413902:	eb a8                	jmp    0x4138ac
413904:	8b c3                	mov    %ebx,%eax
413906:	5b                   	pop    %ebx
413907:	e9 7d fe ff ff       	jmp    0x413789
41390c:	b8 2e 94 42 00       	mov    $0x42942e,%eax
413911:	e8 a2 65 00 00       	call   0x419eb8
413916:	51                   	push   %ecx
413917:	51                   	push   %ecx
413918:	53                   	push   %ebx
413919:	56                   	push   %esi
41391a:	57                   	push   %edi
41391b:	8b f9                	mov    %ecx,%edi
41391d:	33 db                	xor    %ebx,%ebx
41391f:	39 5f 20             	cmp    %ebx,0x20(%edi)
413922:	75 19                	jne    0x41393d
413924:	be 00 04 40 00       	mov    $0x400400,%esi
413929:	56                   	push   %esi
41392a:	e8 96 61 00 00       	call   0x419ac5
41392f:	56                   	push   %esi
413930:	53                   	push   %ebx
413931:	50                   	push   %eax
413932:	89 47 20             	mov    %eax,0x20(%edi)
413935:	e8 c6 68 00 00       	call   0x41a200
41393a:	83 c4 10             	add    $0x10,%esp
41393d:	39 5f 18             	cmp    %ebx,0x18(%edi)
413940:	0f 85 bc 00 00 00    	jne    0x413a02
413946:	8b 77 1c             	mov    0x1c(%edi),%esi
413949:	03 f6                	add    %esi,%esi
41394b:	33 c9                	xor    %ecx,%ecx
41394d:	bb e4 4a 00 00       	mov    $0x4ae4,%ebx
413952:	8b c6                	mov    %esi,%eax
413954:	8b d3                	mov    %ebx,%edx
413956:	f7 e2                	mul    %edx
413958:	0f 90 c1             	seto   %cl
41395b:	f7 d9                	neg    %ecx
41395d:	0b c8                	or     %eax,%ecx
41395f:	33 c0                	xor    %eax,%eax
413961:	83 c1 04             	add    $0x4,%ecx
413964:	0f 92 c0             	setb   %al
413967:	f7 d8                	neg    %eax
413969:	0b c1                	or     %ecx,%eax
41396b:	50                   	push   %eax
41396c:	e8 54 61 00 00       	call   0x419ac5
413971:	59                   	pop    %ecx
413972:	89 45 f0             	mov    %eax,-0x10(%ebp)
413975:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
413979:	85 c0                	test   %eax,%eax
41397b:	74 1f                	je     0x41399c
41397d:	68 a1 27 41 00       	push   $0x4127a1
413982:	68 89 27 41 00       	push   $0x412789
413987:	56                   	push   %esi
413988:	89 30                	mov    %esi,(%eax)
41398a:	83 c0 04             	add    $0x4,%eax
41398d:	53                   	push   %ebx
41398e:	50                   	push   %eax
41398f:	89 45 ec             	mov    %eax,-0x14(%ebp)
413992:	e8 ff 86 00 00       	call   0x41c096
413997:	8b 45 ec             	mov    -0x14(%ebp),%eax
41399a:	eb 02                	jmp    0x41399e
41399c:	33 c0                	xor    %eax,%eax
41399e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4139a2:	8b ce                	mov    %esi,%ecx
4139a4:	69 c9 e4 4a 00 00    	imul   $0x4ae4,%ecx,%ecx
4139aa:	51                   	push   %ecx
4139ab:	6a 00                	push   $0x0
4139ad:	50                   	push   %eax
4139ae:	89 47 18             	mov    %eax,0x18(%edi)
4139b1:	e8 4a 68 00 00       	call   0x41a200
4139b6:	83 c4 0c             	add    $0xc,%esp
4139b9:	85 f6                	test   %esi,%esi
4139bb:	76 45                	jbe    0x413a02
4139bd:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4139c1:	89 75 ec             	mov    %esi,-0x14(%ebp)
4139c4:	8b 47 18             	mov    0x18(%edi),%eax
4139c7:	03 45 f0             	add    -0x10(%ebp),%eax
4139ca:	8d b0 d4 4a 00 00    	lea    0x4ad4(%eax),%esi
4139d0:	83 3e 00             	cmpl   $0x0,(%esi)
4139d3:	75 25                	jne    0x4139fa
4139d5:	68 00 0c 03 00       	push   $0x30c00
4139da:	c7 80 dc 4a 00 00 00 	movl   $0x4100,0x4adc(%eax)
4139e1:	41 00 00
4139e4:	e8 75 8f 00 00       	call   0x41c95e
4139e9:	59                   	pop    %ecx
4139ea:	89 06                	mov    %eax,(%esi)
4139ec:	85 c0                	test   %eax,%eax
4139ee:	75 0a                	jne    0x4139fa
4139f0:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
4139f5:	e8 0e 2b ff ff       	call   0x406508
4139fa:	01 5d f0             	add    %ebx,-0x10(%ebp)
4139fd:	ff 4d ec             	decl   -0x14(%ebp)
413a00:	75 c2                	jne    0x4139c4
413a02:	8b 4d f4             	mov    -0xc(%ebp),%ecx
413a05:	5f                   	pop    %edi
413a06:	5e                   	pop    %esi
413a07:	5b                   	pop    %ebx
413a08:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
413a0f:	c9                   	leave
413a10:	c3                   	ret
413a11:	53                   	push   %ebx
413a12:	8a 5c 24 08          	mov    0x8(%esp),%bl
413a16:	56                   	push   %esi
413a17:	8b f1                	mov    %ecx,%esi
413a19:	f6 c3 02             	test   $0x2,%bl
413a1c:	74 27                	je     0x413a45
413a1e:	57                   	push   %edi
413a1f:	68 a1 27 41 00       	push   $0x4127a1
413a24:	8d 7e fc             	lea    -0x4(%esi),%edi
413a27:	ff 37                	push   (%edi)
413a29:	68 e4 4a 00 00       	push   $0x4ae4