43a67c:	cc                   	int3
43a67d:	cc                   	int3
43a67e:	cc                   	int3
43a67f:	cc                   	int3
43a680:	55                   	push   %ebp
43a681:	8b ec                	mov    %esp,%ebp
43a683:	6a ff                	push   $0xffffffff
43a685:	68 2c a3 49 00       	push   $0x49a32c
43a68a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
43a690:	50                   	push   %eax
43a691:	83 ec 50             	sub    $0x50,%esp
43a694:	a1 14 40 4c 00       	mov    0x4c4014,%eax
43a699:	33 c5                	xor    %ebp,%eax
43a69b:	89 45 f0             	mov    %eax,-0x10(%ebp)
43a69e:	53                   	push   %ebx
43a69f:	56                   	push   %esi
43a6a0:	57                   	push   %edi
43a6a1:	50                   	push   %eax
43a6a2:	8d 45 f4             	lea    -0xc(%ebp),%eax
43a6a5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
43a6ab:	8b f9                	mov    %ecx,%edi
43a6ad:	89 7d a4             	mov    %edi,-0x5c(%ebp)
43a6b0:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a6b3:	6a 18                	push   $0x18
43a6b5:	89 5d b8             	mov    %ebx,-0x48(%ebp)
43a6b8:	c7 45 c0 30 70 4b 00 	movl   $0x4b7030,-0x40(%ebp)
43a6bf:	c7 45 c4 20 70 4b 00 	movl   $0x4b7020,-0x3c(%ebp)
43a6c6:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
43a6cd:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
43a6d4:	c6 45 cc 01          	movb   $0x1,-0x34(%ebp)
43a6d8:	c7 45 d0 00 01 00 00 	movl   $0x100,-0x30(%ebp)
43a6df:	e8 f4 f2 02 00       	call   0x4699d8
43a6e4:	8b f0                	mov    %eax,%esi
43a6e6:	83 c4 04             	add    $0x4,%esp
43a6e9:	89 75 ec             	mov    %esi,-0x14(%ebp)
43a6ec:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43a6f3:	8b 4d d0             	mov    -0x30(%ebp),%ecx
43a6f6:	89 4e 08             	mov    %ecx,0x8(%esi)
43a6f9:	85 c9                	test   %ecx,%ecx
43a6fb:	75 04                	jne    0x43a701
43a6fd:	33 c0                	xor    %eax,%eax
43a6ff:	eb 05                	jmp    0x43a706
43a701:	e8 5a 19 02 00       	call   0x45c060
43a706:	89 46 0c             	mov    %eax,0xc(%esi)
43a709:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
43a710:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
43a717:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
43a71d:	89 75 d8             	mov    %esi,-0x28(%ebp)
43a720:	89 75 d4             	mov    %esi,-0x2c(%ebp)
43a723:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
43a72a:	8b 17                	mov    (%edi),%edx
43a72c:	6a 01                	push   $0x1
43a72e:	6a 00                	push   $0x0
43a730:	6a 01                	push   $0x1
43a732:	8a 02                	mov    (%edx),%al
43a734:	8a c8                	mov    %al,%cl
43a736:	c0 e0 02             	shl    $0x2,%al
43a739:	02 c8                	add    %al,%cl
43a73b:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a73e:	c0 e1 03             	shl    $0x3,%cl
43a741:	02 4a 04             	add    0x4(%edx),%cl
43a744:	88 4d bc             	mov    %cl,-0x44(%ebp)
43a747:	8b 70 14             	mov    0x14(%eax),%esi
43a74a:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a74d:	50                   	push   %eax
43a74e:	81 fe 70 cd 45 00    	cmp    $0x45cd70,%esi
43a754:	75 0a                	jne    0x43a760
43a756:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a759:	e8 12 26 02 00       	call   0x45cd70
43a75e:	eb 0d                	jmp    0x43a76d
43a760:	8b ce                	mov    %esi,%ecx
43a762:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a768:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a76b:	ff d6                	call   *%esi
43a76d:	8b 47 04             	mov    0x4(%edi),%eax
43a770:	ba 02 00 00 00       	mov    $0x2,%edx
43a775:	8b 0f                	mov    (%edi),%ecx
43a777:	2b c1                	sub    %ecx,%eax
43a779:	c1 f8 02             	sar    $0x2,%eax
43a77c:	89 55 b0             	mov    %edx,-0x50(%ebp)
43a77f:	3b c2                	cmp    %edx,%eax
43a781:	0f 86 c9 00 00 00    	jbe    0x43a850
43a787:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
43a78e:	c7 45 a8 07 00 00 00 	movl   $0x7,-0x58(%ebp)
43a795:	8b 1c 91             	mov    (%ecx,%edx,4),%ebx
43a798:	85 db                	test   %ebx,%ebx
43a79a:	75 04                	jne    0x43a7a0
43a79c:	33 d2                	xor    %edx,%edx
43a79e:	eb 23                	jmp    0x43a7c3
43a7a0:	33 f6                	xor    %esi,%esi
43a7a2:	ba 20 00 00 00       	mov    $0x20,%edx
43a7a7:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
43a7aa:	8b c3                	mov    %ebx,%eax
43a7ac:	d1 e9                	shr    $1,%ecx
43a7ae:	d3 e8                	shr    %cl,%eax
43a7b0:	85 c0                	test   %eax,%eax
43a7b2:	0f 44 d1             	cmove  %ecx,%edx
43a7b5:	0f 44 ce             	cmove  %esi,%ecx
43a7b8:	8b f1                	mov    %ecx,%esi
43a7ba:	8b c2                	mov    %edx,%eax
43a7bc:	2b c6                	sub    %esi,%eax
43a7be:	83 f8 01             	cmp    $0x1,%eax
43a7c1:	77 e4                	ja     0x43a7a7
43a7c3:	83 fa 07             	cmp    $0x7,%edx
43a7c6:	89 55 ac             	mov    %edx,-0x54(%ebp)
43a7c9:	8d 45 a8             	lea    -0x58(%ebp),%eax
43a7cc:	8d 4d ac             	lea    -0x54(%ebp),%ecx
43a7cf:	0f 46 c8             	cmovbe %eax,%ecx
43a7d2:	8d 55 ec             	lea    -0x14(%ebp),%edx
43a7d5:	e8 96 12 00 00       	call   0x43ba70
43a7da:	8b f0                	mov    %eax,%esi
43a7dc:	83 ee 07             	sub    $0x7,%esi
43a7df:	74 30                	je     0x43a811
43a7e1:	8b ce                	mov    %esi,%ecx
43a7e3:	8b c3                	mov    %ebx,%eax
43a7e5:	d3 e8                	shr    %cl,%eax
43a7e7:	6a 01                	push   $0x1
43a7e9:	0c 80                	or     $0x80,%al
43a7eb:	6a 00                	push   $0x0
43a7ed:	88 45 bc             	mov    %al,-0x44(%ebp)
43a7f0:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a7f3:	6a 01                	push   $0x1
43a7f5:	50                   	push   %eax
43a7f6:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a7f9:	8b 78 14             	mov    0x14(%eax),%edi
43a7fc:	8b cf                	mov    %edi,%ecx
43a7fe:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a804:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a807:	ff d7                	call   *%edi
43a809:	83 ee 07             	sub    $0x7,%esi
43a80c:	75 d3                	jne    0x43a7e1
43a80e:	8b 7d a4             	mov    -0x5c(%ebp),%edi
43a811:	6a 01                	push   $0x1
43a813:	6a 00                	push   $0x0
43a815:	6a 01                	push   $0x1
43a817:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a81a:	80 e3 7f             	and    $0x7f,%bl
43a81d:	50                   	push   %eax
43a81e:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a821:	88 5d bc             	mov    %bl,-0x44(%ebp)
43a824:	8b 70 14             	mov    0x14(%eax),%esi
43a827:	8b ce                	mov    %esi,%ecx
43a829:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a82f:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a832:	ff d6                	call   *%esi
43a834:	8b 47 04             	mov    0x4(%edi),%eax
43a837:	8b 55 b0             	mov    -0x50(%ebp),%edx
43a83a:	8b 0f                	mov    (%edi),%ecx
43a83c:	42                   	inc    %edx
43a83d:	2b c1                	sub    %ecx,%eax
43a83f:	89 55 b0             	mov    %edx,-0x50(%ebp)
43a842:	c1 f8 02             	sar    $0x2,%eax
43a845:	3b d0                	cmp    %eax,%edx
43a847:	0f 82 48 ff ff ff    	jb     0x43a795
43a84d:	8b 5d b8             	mov    -0x48(%ebp),%ebx
43a850:	8b 33                	mov    (%ebx),%esi
43a852:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a855:	6a 01                	push   $0x1
43a857:	6a 00                	push   $0x0
43a859:	6a 01                	push   $0x1
43a85b:	8b 76 14             	mov    0x14(%esi),%esi
43a85e:	8b ce                	mov    %esi,%ecx
43a860:	50                   	push   %eax
43a861:	c6 45 bc 06          	movb   $0x6,-0x44(%ebp)
43a865:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a86b:	8b cb                	mov    %ebx,%ecx
43a86d:	ff d6                	call   *%esi
43a86f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
43a872:	0f 57 c0             	xorps  %xmm0,%xmm0
43a875:	66 0f 13 45 b4       	movlpd %xmm0,-0x4c(%ebp)
43a87a:	8b 55 b8             	mov    -0x48(%ebp),%edx
43a87d:	8b 75 b4             	mov    -0x4c(%ebp),%esi
43a880:	85 c9                	test   %ecx,%ecx
43a882:	74 11                	je     0x43a895
43a884:	8b 41 14             	mov    0x14(%ecx),%eax
43a887:	2b 41 10             	sub    0x10(%ecx),%eax
43a88a:	8b 09                	mov    (%ecx),%ecx
43a88c:	03 f0                	add    %eax,%esi
43a88e:	83 d2 00             	adc    $0x0,%edx
43a891:	85 c9                	test   %ecx,%ecx
43a893:	75 ef                	jne    0x43a884
43a895:	8b 4d e0             	mov    -0x20(%ebp),%ecx
43a898:	33 c0                	xor    %eax,%eax
43a89a:	03 ce                	add    %esi,%ecx
43a89c:	13 c2                	adc    %edx,%eax
43a89e:	50                   	push   %eax
43a89f:	51                   	push   %ecx
43a8a0:	8b cb                	mov    %ebx,%ecx
43a8a2:	e8 a9 f9 ff ff       	call   0x43a250
43a8a7:	83 c4 08             	add    $0x8,%esp
43a8aa:	c7 45 e8 ff ff ff ff 	movl   $0xffffffff,-0x18(%ebp)
43a8b1:	8d 45 e8             	lea    -0x18(%ebp),%eax
43a8b4:	c7 45 ec ff ff ff ff 	movl   $0xffffffff,-0x14(%ebp)
43a8bb:	6a 01                	push   $0x1
43a8bd:	68 40 4e 4c 00       	push   $0x4c4e40
43a8c2:	50                   	push   %eax
43a8c3:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a8c6:	53                   	push   %ebx
43a8c7:	8b 70 7c             	mov    0x7c(%eax),%esi
43a8ca:	8b ce                	mov    %esi,%ecx
43a8cc:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a8d2:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a8d5:	ff d6                	call   *%esi
43a8d7:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a8da:	c7 45 c0 30 70 4b 00 	movl   $0x4b7030,-0x40(%ebp)
43a8e1:	c7 45 c4 20 70 4b 00 	movl   $0x4b7020,-0x3c(%ebp)
43a8e8:	e8 a3 23 02 00       	call   0x45cc90
43a8ed:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a8f0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
43a8f7:	59                   	pop    %ecx
43a8f8:	5f                   	pop    %edi
43a8f9:	5e                   	pop    %esi
43a8fa:	5b                   	pop    %ebx
43a8fb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43a8fe:	33 cd                	xor    %ebp,%ecx
43a900:	e8 c5 f0 02 00       	call   0x4699ca
43a905:	8b e5                	mov    %ebp,%esp
43a907:	5d                   	pop    %ebp
43a908:	c2 04 00             	ret    $0x4
43a90b:	cc                   	int3
43a90c:	cc                   	int3
43a90d:	cc                   	int3
43a90e:	cc                   	int3
43a90f:	cc                   	int3
43a910:	55                   	push   %ebp
43a911:	8b ec                	mov    %esp,%ebp
43a913:	83 e4 f8             	and    $0xfffffff8,%esp
43a916:	83 ec 1c             	sub    $0x1c,%esp
43a919:	53                   	push   %ebx
43a91a:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a91d:	56                   	push   %esi
43a91e:	57                   	push   %edi
43a91f:	8b f9                	mov    %ecx,%edi
43a921:	8d 4c 24 12          	lea    0x12(%esp),%ecx
43a925:	8b 03                	mov    (%ebx),%eax
43a927:	51                   	push   %ecx
43a928:	89 7c 24 20          	mov    %edi,0x20(%esp)
43a92c:	8b 70 48             	mov    0x48(%eax),%esi
43a92f:	8b ce                	mov    %esi,%ecx
43a931:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a937:	8b cb                	mov    %ebx,%ecx
43a939:	ff d6                	call   *%esi
43a93b:	85 c0                	test   %eax,%eax
43a93d:	0f 84 99 01 00 00    	je     0x43aadc
43a943:	80 7c 24 12 06       	cmpb   $0x6,0x12(%esp)
43a948:	0f 85 8e 01 00 00    	jne    0x43aadc
43a94e:	8d 44 24 13          	lea    0x13(%esp),%eax
43a952:	8b cb                	mov    %ebx,%ecx
43a954:	50                   	push   %eax
43a955:	8d 54 24 24          	lea    0x24(%esp),%edx
43a959:	e8 d2 f9 ff ff       	call   0x43a330
43a95e:	83 c4 04             	add    $0x4,%esp
43a961:	84 c0                	test   %al,%al
43a963:	0f 84 73 01 00 00    	je     0x43aadc
43a969:	8b 44 24 24          	mov    0x24(%esp),%eax
43a96d:	8b 4c 24 20          	mov    0x20(%esp),%ecx
43a971:	85 c0                	test   %eax,%eax
43a973:	0f 85 63 01 00 00    	jne    0x43aadc
43a979:	85 c9                	test   %ecx,%ecx
43a97b:	75 04                	jne    0x43a981
43a97d:	33 d2                	xor    %edx,%edx
43a97f:	eb 05                	jmp    0x43a986
43a981:	ba 01 00 00 00       	mov    $0x1,%edx
43a986:	33 c0                	xor    %eax,%eax
43a988:	3b c1                	cmp    %ecx,%eax
43a98a:	1b c0                	sbb    %eax,%eax
43a98c:	f7 d8                	neg    %eax
43a98e:	3b d0                	cmp    %eax,%edx
43a990:	0f 85 46 01 00 00    	jne    0x43aadc
43a996:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
43a99b:	0f 84 3b 01 00 00    	je     0x43aadc
43a9a1:	83 f9 01             	cmp    $0x1,%ecx
43a9a4:	0f 82 32 01 00 00    	jb     0x43aadc
43a9aa:	8b 03                	mov    (%ebx),%eax
43a9ac:	8d 4c 24 12          	lea    0x12(%esp),%ecx
43a9b0:	51                   	push   %ecx
43a9b1:	8b 70 48             	mov    0x48(%eax),%esi
43a9b4:	8b ce                	mov    %esi,%ecx
43a9b6:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a9bc:	8b cb                	mov    %ebx,%ecx
43a9be:	ff d6                	call   *%esi
43a9c0:	85 c0                	test   %eax,%eax
43a9c2:	0f 84 14 01 00 00    	je     0x43aadc
43a9c8:	8b 47 04             	mov    0x4(%edi),%eax
43a9cb:	8b c8                	mov    %eax,%ecx
43a9cd:	8b 17                	mov    (%edi),%edx
43a9cf:	2b ca                	sub    %edx,%ecx
43a9d1:	8b 5c 24 20          	mov    0x20(%esp),%ebx
43a9d5:	4b                   	dec    %ebx
43a9d6:	c1 f9 02             	sar    $0x2,%ecx
43a9d9:	89 5c 24 14          	mov    %ebx,0x14(%esp)
43a9dd:	89 44 24 18          	mov    %eax,0x18(%esp)
43a9e1:	83 f9 02             	cmp    $0x2,%ecx
43a9e4:	76 05                	jbe    0x43a9eb
43a9e6:	8d 42 08             	lea    0x8(%edx),%eax
43a9e9:	eb 3a                	jmp    0x43aa25
43a9eb:	73 3b                	jae    0x43aa28
43a9ed:	8b 47 08             	mov    0x8(%edi),%eax
43a9f0:	2b c2                	sub    %edx,%eax
43a9f2:	c1 f8 02             	sar    $0x2,%eax
43a9f5:	83 f8 02             	cmp    $0x2,%eax
43a9f8:	73 0c                	jae    0x43aa06
43a9fa:	83 ec 08             	sub    $0x8,%esp
43a9fd:	8b cf                	mov    %edi,%ecx
43a9ff:	e8 ec 12 00 00       	call   0x43bcf0
43aa04:	eb 22                	jmp    0x43aa28
43aa06:	be 02 00 00 00       	mov    $0x2,%esi
43aa0b:	2b f1                	sub    %ecx,%esi
43aa0d:	c1 e6 02             	shl    $0x2,%esi
43aa10:	56                   	push   %esi
43aa11:	6a 00                	push   $0x0
43aa13:	ff 74 24 20          	push   0x20(%esp)
43aa17:	e8 94 11 03 00       	call   0x46bbb0
43aa1c:	8b 44 24 24          	mov    0x24(%esp),%eax
43aa20:	83 c4 0c             	add    $0xc,%esp
43aa23:	03 c6                	add    %esi,%eax
43aa25:	89 47 04             	mov    %eax,0x4(%edi)
43aa28:	0f b6 4c 24 12       	movzbl 0x12(%esp),%ecx
43aa2d:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
43aa32:	f7 e1                	mul    %ecx
43aa34:	8b 07                	mov    (%edi),%eax
43aa36:	b9 28 00 00 00       	mov    $0x28,%ecx
43aa3b:	c1 ea 05             	shr    $0x5,%edx
43aa3e:	89 10                	mov    %edx,(%eax)
43aa40:	33 d2                	xor    %edx,%edx
43aa42:	0f b6 44 24 12       	movzbl 0x12(%esp),%eax
43aa47:	f7 f1                	div    %ecx
43aa49:	8b 07                	mov    (%edi),%eax
43aa4b:	89 50 04             	mov    %edx,0x4(%eax)
43aa4e:	85 db                	test   %ebx,%ebx
43aa50:	0f 84 7d 00 00 00    	je     0x43aad3
43aa56:	33 f6                	xor    %esi,%esi
43aa58:	33 db                	xor    %ebx,%ebx
43aa5a:	33 c0                	xor    %eax,%eax
43aa5c:	89 44 24 18          	mov    %eax,0x18(%esp)
43aa60:	8b 45 08             	mov    0x8(%ebp),%eax
43aa63:	8d 4c 24 13          	lea    0x13(%esp),%ecx
43aa67:	51                   	push   %ecx
43aa68:	8b 00                	mov    (%eax),%eax
43aa6a:	8b 78 48             	mov    0x48(%eax),%edi
43aa6d:	8b cf                	mov    %edi,%ecx
43aa6f:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43aa75:	8b 4d 08             	mov    0x8(%ebp),%ecx
43aa78:	ff d7                	call   *%edi
43aa7a:	85 c0                	test   %eax,%eax
43aa7c:	74 5e                	je     0x43aadc
43aa7e:	46                   	inc    %esi
43aa7f:	81 fb 00 00 00 02    	cmp    $0x2000000,%ebx
43aa85:	73 55                	jae    0x43aadc
43aa87:	8a 4c 24 13          	mov    0x13(%esp),%cl