41c7c7:	eb 0b                	jmp    0x41c7d4
41c7c9:	57                   	push   %edi
41c7ca:	8b ce                	mov    %esi,%ecx
41c7cc:	ff 15 20 a5 43 00    	call   *0x43a520
41c7d2:	ff d6                	call   *%esi
41c7d4:	5f                   	pop    %edi
41c7d5:	5e                   	pop    %esi
41c7d6:	c3                   	ret
41c7d7:	8b ff                	mov    %edi,%edi
41c7d9:	55                   	push   %ebp
41c7da:	8b ec                	mov    %esp,%ebp
41c7dc:	53                   	push   %ebx
41c7dd:	56                   	push   %esi
41c7de:	8b 35 dc 89 43 00    	mov    0x4389dc,%esi
41c7e4:	8b d9                	mov    %ecx,%ebx
41c7e6:	57                   	push   %edi
41c7e7:	8b fa                	mov    %edx,%edi
41c7e9:	85 f6                	test   %esi,%esi
41c7eb:	75 24                	jne    0x41c811
41c7ed:	68 cc 50 40 00       	push   $0x4050cc
41c7f2:	e8 1c 22 01 00       	call   0x42ea13
41c7f7:	50                   	push   %eax
41c7f8:	ff 15 54 a1 43 00    	call   *0x43a154
41c7fe:	8b f0                	mov    %eax,%esi
41c800:	89 35 dc 89 43 00    	mov    %esi,0x4389dc
41c806:	85 f6                	test   %esi,%esi
41c808:	75 07                	jne    0x41c811
41c80a:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41c80f:	eb 12                	jmp    0x41c823
41c811:	ff 75 0c             	push   0xc(%ebp)
41c814:	8b ce                	mov    %esi,%ecx
41c816:	ff 75 08             	push   0x8(%ebp)
41c819:	57                   	push   %edi
41c81a:	53                   	push   %ebx
41c81b:	ff 15 20 a5 43 00    	call   *0x43a520
41c821:	ff d6                	call   *%esi
41c823:	5f                   	pop    %edi
41c824:	5e                   	pop    %esi
41c825:	5b                   	pop    %ebx
41c826:	5d                   	pop    %ebp
41c827:	c2 08 00             	ret    $0x8
41c82a:	8b ff                	mov    %edi,%edi
41c82c:	55                   	push   %ebp
41c82d:	8b ec                	mov    %esp,%ebp
41c82f:	53                   	push   %ebx
41c830:	56                   	push   %esi
41c831:	8b 35 e0 89 43 00    	mov    0x4389e0,%esi
41c837:	8b d9                	mov    %ecx,%ebx
41c839:	57                   	push   %edi
41c83a:	8b fa                	mov    %edx,%edi
41c83c:	85 f6                	test   %esi,%esi
41c83e:	75 24                	jne    0x41c864
41c840:	68 ec 50 40 00       	push   $0x4050ec
41c845:	e8 c9 21 01 00       	call   0x42ea13
41c84a:	50                   	push   %eax
41c84b:	ff 15 54 a1 43 00    	call   *0x43a154
41c851:	8b f0                	mov    %eax,%esi
41c853:	89 35 e0 89 43 00    	mov    %esi,0x4389e0
41c859:	85 f6                	test   %esi,%esi
41c85b:	75 07                	jne    0x41c864
41c85d:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41c862:	eb 11                	jmp    0x41c875
41c864:	ff 75 0c             	push   0xc(%ebp)
41c867:	8b ce                	mov    %esi,%ecx
41c869:	6a 00                	push   $0x0
41c86b:	57                   	push   %edi
41c86c:	53                   	push   %ebx
41c86d:	ff 15 20 a5 43 00    	call   *0x43a520
41c873:	ff d6                	call   *%esi
41c875:	5f                   	pop    %edi
41c876:	5e                   	pop    %esi
41c877:	5b                   	pop    %ebx
41c878:	5d                   	pop    %ebp
41c879:	c2 08 00             	ret    $0x8
41c87c:	8b ff                	mov    %edi,%edi
41c87e:	55                   	push   %ebp
41c87f:	8b ec                	mov    %esp,%ebp
41c881:	53                   	push   %ebx
41c882:	56                   	push   %esi
41c883:	8b 35 4c 8a 43 00    	mov    0x438a4c,%esi
41c889:	8b d9                	mov    %ecx,%ebx
41c88b:	57                   	push   %edi
41c88c:	8b fa                	mov    %edx,%edi
41c88e:	85 f6                	test   %esi,%esi
41c890:	75 24                	jne    0x41c8b6
41c892:	68 98 51 40 00       	push   $0x405198
41c897:	e8 77 21 01 00       	call   0x42ea13
41c89c:	50                   	push   %eax
41c89d:	ff 15 54 a1 43 00    	call   *0x43a154
41c8a3:	8b f0                	mov    %eax,%esi
41c8a5:	89 35 4c 8a 43 00    	mov    %esi,0x438a4c
41c8ab:	85 f6                	test   %esi,%esi
41c8ad:	75 07                	jne    0x41c8b6
41c8af:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41c8b4:	eb 1d                	jmp    0x41c8d3
41c8b6:	33 c0                	xor    %eax,%eax
41c8b8:	8b ce                	mov    %esi,%ecx
41c8ba:	50                   	push   %eax
41c8bb:	50                   	push   %eax
41c8bc:	50                   	push   %eax
41c8bd:	ff 75 0c             	push   0xc(%ebp)
41c8c0:	ff 75 08             	push   0x8(%ebp)
41c8c3:	57                   	push   %edi
41c8c4:	ff 75 20             	push   0x20(%ebp)
41c8c7:	ff 75 1c             	push   0x1c(%ebp)
41c8ca:	53                   	push   %ebx
41c8cb:	ff 15 20 a5 43 00    	call   *0x43a520
41c8d1:	ff d6                	call   *%esi
41c8d3:	5f                   	pop    %edi
41c8d4:	5e                   	pop    %esi
41c8d5:	5b                   	pop    %ebx
41c8d6:	5d                   	pop    %ebp
41c8d7:	c2 1c 00             	ret    $0x1c
41c8da:	8b ff                	mov    %edi,%edi
41c8dc:	56                   	push   %esi
41c8dd:	8b 35 64 8a 43 00    	mov    0x438a64,%esi
41c8e3:	57                   	push   %edi
41c8e4:	8b f9                	mov    %ecx,%edi
41c8e6:	85 f6                	test   %esi,%esi
41c8e8:	75 24                	jne    0x41c90e
41c8ea:	68 c0 51 40 00       	push   $0x4051c0
41c8ef:	e8 1f 21 01 00       	call   0x42ea13
41c8f4:	50                   	push   %eax
41c8f5:	ff 15 54 a1 43 00    	call   *0x43a154
41c8fb:	8b f0                	mov    %eax,%esi
41c8fd:	89 35 64 8a 43 00    	mov    %esi,0x438a64
41c903:	85 f6                	test   %esi,%esi
41c905:	75 07                	jne    0x41c90e
41c907:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41c90c:	eb 0b                	jmp    0x41c919
41c90e:	57                   	push   %edi
41c90f:	8b ce                	mov    %esi,%ecx
41c911:	ff 15 20 a5 43 00    	call   *0x43a520
41c917:	ff d6                	call   *%esi
41c919:	5f                   	pop    %edi
41c91a:	5e                   	pop    %esi
41c91b:	c3                   	ret
41c91c:	83 39 00             	cmpl   $0x0,(%ecx)
41c91f:	74 13                	je     0x41c934
41c921:	f7 41 04 00 3f 00 3f 	testl  $0x3f003f00,0x4(%ecx)
41c928:	75 06                	jne    0x41c930
41c92a:	f6 41 04 02          	testb  $0x2,0x4(%ecx)
41c92e:	74 04                	je     0x41c934
41c930:	33 c0                	xor    %eax,%eax
41c932:	40                   	inc    %eax
41c933:	c3                   	ret
41c934:	33 c0                	xor    %eax,%eax
41c936:	c3                   	ret
41c937:	8b ff                	mov    %edi,%edi
41c939:	55                   	push   %ebp
41c93a:	8b ec                	mov    %esp,%ebp
41c93c:	51                   	push   %ecx
41c93d:	8b 41 14             	mov    0x14(%ecx),%eax
41c940:	33 d2                	xor    %edx,%edx
41c942:	53                   	push   %ebx
41c943:	8b 59 18             	mov    0x18(%ecx),%ebx
41c946:	57                   	push   %edi
41c947:	0f b7 78 04          	movzwl 0x4(%eax),%edi
41c94b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41c94e:	85 ff                	test   %edi,%edi
41c950:	74 30                	je     0x41c982
41c952:	8b cb                	mov    %ebx,%ecx
41c954:	56                   	push   %esi
41c955:	e8 c2 ff ff ff       	call   0x41c91c
41c95a:	85 c0                	test   %eax,%eax
41c95c:	74 2d                	je     0x41c98b
41c95e:	f6 41 04 01          	testb  $0x1,0x4(%ecx)
41c962:	75 14                	jne    0x41c978
41c964:	33 f6                	xor    %esi,%esi
41c966:	3b f2                	cmp    %edx,%esi
41c968:	74 06                	je     0x41c970
41c96a:	8b 01                	mov    (%ecx),%eax
41c96c:	3b 03                	cmp    (%ebx),%eax
41c96e:	74 18                	je     0x41c988
41c970:	46                   	inc    %esi
41c971:	83 c3 0c             	add    $0xc,%ebx
41c974:	3b f7                	cmp    %edi,%esi
41c976:	72 ee                	jb     0x41c966
41c978:	8b 45 08             	mov    0x8(%ebp),%eax
41c97b:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
41c981:	5e                   	pop    %esi
41c982:	5f                   	pop    %edi
41c983:	5b                   	pop    %ebx
41c984:	c9                   	leave
41c985:	c2 04 00             	ret    $0x4
41c988:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41c98b:	42                   	inc    %edx
41c98c:	83 c1 0c             	add    $0xc,%ecx
41c98f:	3b d7                	cmp    %edi,%edx
41c991:	72 c2                	jb     0x41c955
41c993:	eb ec                	jmp    0x41c981
41c995:	8b ff                	mov    %edi,%edi
41c997:	55                   	push   %ebp
41c998:	8b ec                	mov    %esp,%ebp
41c99a:	b8 24 10 00 00       	mov    $0x1024,%eax
41c99f:	e8 8c 16 00 00       	call   0x41e030
41c9a4:	a1 08 85 43 00       	mov    0x438508,%eax
41c9a9:	33 c5                	xor    %ebp,%eax
41c9ab:	89 45 fc             	mov    %eax,-0x4(%ebp)
41c9ae:	8b 41 14             	mov    0x14(%ecx),%eax
41c9b1:	53                   	push   %ebx
41c9b2:	56                   	push   %esi
41c9b3:	33 f6                	xor    %esi,%esi
41c9b5:	89 95 e8 ef ff ff    	mov    %edx,-0x1018(%ebp)
41c9bb:	21 b5 e4 ef ff ff    	and    %esi,-0x101c(%ebp)
41c9c1:	33 db                	xor    %ebx,%ebx
41c9c3:	57                   	push   %edi
41c9c4:	8b 79 1c             	mov    0x1c(%ecx),%edi
41c9c7:	89 8d dc ef ff ff    	mov    %ecx,-0x1024(%ebp)
41c9cd:	66 3b 58 06          	cmp    0x6(%eax),%bx
41c9d1:	0f 83 2c 01 00 00    	jae    0x41cb03
41c9d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
41c9da:	83 c7 04             	add    $0x4,%edi
41c9dd:	39 57 fc             	cmp    %edx,-0x4(%edi)
41c9e0:	0f 85 01 01 00 00    	jne    0x41cae7
41c9e6:	66 39 5f 08          	cmp    %bx,0x8(%edi)
41c9ea:	0f 85 f7 00 00 00    	jne    0x41cae7
41c9f0:	f7 47 08 00 00 01 00 	testl  $0x10000,0x8(%edi)
41c9f7:	74 0a                	je     0x41ca03
41c9f9:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
41c9fd:	0f 84 e4 00 00 00    	je     0x41cae7
41ca03:	8b 07                	mov    (%edi),%eax
41ca05:	89 85 f0 ef ff ff    	mov    %eax,-0x1010(%ebp)
41ca0b:	8b 47 04             	mov    0x4(%edi),%eax
41ca0e:	89 85 f4 ef ff ff    	mov    %eax,-0x100c(%ebp)
41ca14:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
41ca1a:	c7 85 ec ef ff ff 00 	movl   $0x1000,-0x1014(%ebp)
41ca21:	10 00 00
41ca24:	50                   	push   %eax
41ca25:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
41ca2b:	50                   	push   %eax
41ca2c:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
41ca32:	50                   	push   %eax
41ca33:	51                   	push   %ecx
41ca34:	8d 8d f0 ef ff ff    	lea    -0x1010(%ebp),%ecx
41ca3a:	e8 5b fb ff ff       	call   0x41c59a
41ca3f:	8b f0                	mov    %eax,%esi
41ca41:	85 f6                	test   %esi,%esi
41ca43:	0f 85 86 00 00 00    	jne    0x41cacf
41ca49:	8a 85 ec ef ff ff    	mov    -0x1014(%ebp),%al
41ca4f:	8b b5 e8 ef ff ff    	mov    -0x1018(%ebp),%esi
41ca55:	24 07                	and    $0x7,%al
41ca57:	0f b6 c0             	movzbl %al,%eax
41ca5a:	f7 d8                	neg    %eax
41ca5c:	1b c0                	sbb    %eax,%eax
41ca5e:	33 c9                	xor    %ecx,%ecx
41ca60:	f7 d0                	not    %eax
41ca62:	23 85 ec ef ff ff    	and    -0x1014(%ebp),%eax
41ca68:	8b d0                	mov    %eax,%edx
41ca6a:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
41ca70:	c1 ea 03             	shr    $0x3,%edx
41ca73:	85 d2                	test   %edx,%edx
41ca75:	74 18                	je     0x41ca8f
41ca77:	39 b4 cd f8 ef ff ff 	cmp    %esi,-0x1008(%ebp,%ecx,8)
41ca7e:	75 0a                	jne    0x41ca8a
41ca80:	66 39 9c cd fc ef ff 	cmp    %bx,-0x1004(%ebp,%ecx,8)
41ca87:	ff
41ca88:	74 27                	je     0x41cab1
41ca8a:	41                   	inc    %ecx
41ca8b:	3b ca                	cmp    %edx,%ecx
41ca8d:	72 e8                	jb     0x41ca77
41ca8f:	8d 48 08             	lea    0x8(%eax),%ecx
41ca92:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
41ca98:	77 17                	ja     0x41cab1
41ca9a:	8b c1                	mov    %ecx,%eax
41ca9c:	89 b4 d5 f8 ef ff ff 	mov    %esi,-0x1008(%ebp,%edx,8)
41caa3:	66 89 9c d5 fc ef ff 	mov    %bx,-0x1004(%ebp,%edx,8)
41caaa:	ff
41caab:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
41cab1:	6a 01                	push   $0x1
41cab3:	ff b5 e0 ef ff ff    	push   -0x1020(%ebp)
41cab9:	8d 95 f8 ef ff ff    	lea    -0x1008(%ebp),%edx
41cabf:	51                   	push   %ecx
41cac0:	51                   	push   %ecx
41cac1:	50                   	push   %eax
41cac2:	8d 8d f0 ef ff ff    	lea    -0x1010(%ebp),%ecx
41cac8:	e8 22 fb ff ff       	call   0x41c5ef
41cacd:	8b f0                	mov    %eax,%esi
41cacf:	81 fe 01 00 00 c0    	cmp    $0xc0000001,%esi
41cad5:	0f 84 39 ff ff ff    	je     0x41ca14
41cadb:	8b 95 e8 ef ff ff    	mov    -0x1018(%ebp),%edx
41cae1:	8b 8d dc ef ff ff    	mov    -0x1024(%ebp),%ecx
41cae7:	8b 41 14             	mov    0x14(%ecx),%eax
41caea:	83 c7 10             	add    $0x10,%edi
41caed:	ff 85 e4 ef ff ff    	incl   -0x101c(%ebp)
41caf3:	0f b7 40 06          	movzwl 0x6(%eax),%eax
41caf7:	39 85 e4 ef ff ff    	cmp    %eax,-0x101c(%ebp)
41cafd:	0f 82 da fe ff ff    	jb     0x41c9dd
41cb03:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41cb06:	8b c6                	mov    %esi,%eax
41cb08:	5f                   	pop    %edi
41cb09:	5e                   	pop    %esi
41cb0a:	33 cd                	xor    %ebp,%ecx
41cb0c:	5b                   	pop    %ebx
41cb0d:	e8 ae dc ff ff       	call   0x41a7c0
41cb12:	c9                   	leave
41cb13:	c2 08 00             	ret    $0x8
41cb16:	8b ff                	mov    %edi,%edi
41cb18:	56                   	push   %esi
41cb19:	8b f1                	mov    %ecx,%esi
41cb1b:	57                   	push   %edi
41cb1c:	33 ff                	xor    %edi,%edi
41cb1e:	39 7e 30             	cmp    %edi,0x30(%esi)
41cb21:	74 17                	je     0x41cb3a
41cb23:	ff 76 24             	push   0x24(%esi)
41cb26:	57                   	push   %edi
41cb27:	ff 15 24 a1 43 00    	call   *0x43a124
41cb2d:	50                   	push   %eax
41cb2e:	ff 15 20 a1 43 00    	call   *0x43a120
41cb34:	89 7e 24             	mov    %edi,0x24(%esi)
41cb37:	89 7e 14             	mov    %edi,0x14(%esi)
41cb3a:	5f                   	pop    %edi
41cb3b:	5e                   	pop    %esi
41cb3c:	c3                   	ret
41cb3d:	8b ff                	mov    %edi,%edi
41cb3f:	55                   	push   %ebp
41cb40:	8b ec                	mov    %esp,%ebp
41cb42:	83 ec 30             	sub    $0x30,%esp
41cb45:	a1 08 85 43 00       	mov    0x438508,%eax
41cb4a:	33 c5                	xor    %ebp,%eax
41cb4c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41cb4f:	53                   	push   %ebx
41cb50:	56                   	push   %esi
41cb51:	8b 75 0c             	mov    0xc(%ebp),%esi
41cb54:	33 db                	xor    %ebx,%ebx
41cb56:	57                   	push   %edi
41cb57:	6a 34                	push   $0x34
41cb59:	8b f9                	mov    %ecx,%edi
41cb5b:	89 55 d4             	mov    %edx,-0x2c(%ebp)
41cb5e:	53                   	push   %ebx
41cb5f:	57                   	push   %edi
41cb60:	89 7d f4             	mov    %edi,-0xc(%ebp)
41cb63:	89 75 e0             	mov    %esi,-0x20(%ebp)
41cb66:	89 5d d0             	mov    %ebx,-0x30(%ebp)
41cb69:	e8 f3 14 00 00       	call   0x41e061
41cb6e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
41cb71:	83 c4 0c             	add    $0xc,%esp
41cb74:	f7 de                	neg    %esi
41cb76:	89 07                	mov    %eax,(%edi)
41cb78:	89 5d dc             	mov    %ebx,-0x24(%ebp)
41cb7b:	1b f6                	sbb    %esi,%esi
41cb7d:	81 e6 c8 00 00 00    	and    $0xc8,%esi
41cb83:	85 c0                	test   %eax,%eax
41cb85:	75 0d                	jne    0x41cb94
41cb87:	a1 e0 55 40 00       	mov    0x4055e0,%eax
41cb8c:	8b 0d e4 55 40 00    	mov    0x4055e4,%ecx
41cb92:	eb 0b                	jmp    0x41cb9f
41cb94:	a1 48 55 40 00       	mov    0x405548,%eax
41cb99:	8b 0d 4c 55 40 00    	mov    0x40554c,%ecx
41cb9f:	89 4d ec             	mov    %ecx,-0x14(%ebp)