41c5e1:	ff 15 20 a5 43 00    	call   *0x43a520
41c5e7:	ff d6                	call   *%esi
41c5e9:	5f                   	pop    %edi
41c5ea:	5e                   	pop    %esi
41c5eb:	5d                   	pop    %ebp
41c5ec:	c2 10 00             	ret    $0x10
41c5ef:	8b ff                	mov    %edi,%edi
41c5f1:	55                   	push   %ebp
41c5f2:	8b ec                	mov    %esp,%ebp
41c5f4:	53                   	push   %ebx
41c5f5:	56                   	push   %esi
41c5f6:	8b 35 68 8a 43 00    	mov    0x438a68,%esi
41c5fc:	8b d9                	mov    %ecx,%ebx
41c5fe:	57                   	push   %edi
41c5ff:	8b fa                	mov    %edx,%edi
41c601:	85 f6                	test   %esi,%esi
41c603:	75 24                	jne    0x41c629
41c605:	68 80 51 40 00       	push   $0x405180
41c60a:	e8 04 24 01 00       	call   0x42ea13
41c60f:	50                   	push   %eax
41c610:	ff 15 54 a1 43 00    	call   *0x43a154
41c616:	8b f0                	mov    %eax,%esi
41c618:	89 35 68 8a 43 00    	mov    %esi,0x438a68
41c61e:	85 f6                	test   %esi,%esi
41c620:	75 07                	jne    0x41c629
41c622:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41c627:	eb 19                	jmp    0x41c642
41c629:	ff 75 18             	push   0x18(%ebp)
41c62c:	8b ce                	mov    %esi,%ecx
41c62e:	ff 75 14             	push   0x14(%ebp)
41c631:	6a 00                	push   $0x0
41c633:	6a 00                	push   $0x0
41c635:	ff 75 08             	push   0x8(%ebp)
41c638:	57                   	push   %edi
41c639:	53                   	push   %ebx
41c63a:	ff 15 20 a5 43 00    	call   *0x43a520
41c640:	ff d6                	call   *%esi
41c642:	5f                   	pop    %edi
41c643:	5e                   	pop    %esi
41c644:	5b                   	pop    %ebx
41c645:	5d                   	pop    %ebp
41c646:	c2 14 00             	ret    $0x14
41c649:	8b ff                	mov    %edi,%edi
41c64b:	55                   	push   %ebp
41c64c:	8b ec                	mov    %esp,%ebp
41c64e:	83 ec 48             	sub    $0x48,%esp
41c651:	a1 08 85 43 00       	mov    0x438508,%eax
41c656:	33 c5                	xor    %ebp,%eax
41c658:	89 45 fc             	mov    %eax,-0x4(%ebp)
41c65b:	53                   	push   %ebx
41c65c:	56                   	push   %esi
41c65d:	57                   	push   %edi
41c65e:	8b d9                	mov    %ecx,%ebx
41c660:	8b fa                	mov    %edx,%edi
41c662:	b9 1e 40 c0 ff       	mov    $0xffc0401e,%ecx
41c667:	8b 07                	mov    (%edi),%eax
41c669:	8b f0                	mov    %eax,%esi
41c66b:	23 f1                	and    %ecx,%esi
41c66d:	f0 0f b1 37          	lock cmpxchg %esi,(%edi)
41c671:	75 f6                	jne    0x41c669
41c673:	8b d0                	mov    %eax,%edx
41c675:	8b ca                	mov    %edx,%ecx
41c677:	d1 e9                	shr    $1,%ecx
41c679:	83 e1 0f             	and    $0xf,%ecx
41c67c:	74 13                	je     0x41c691
41c67e:	83 c7 04             	add    $0x4,%edi
41c681:	8b 07                	mov    (%edi),%eax
41c683:	8b f0                	mov    %eax,%esi
41c685:	0b f1                	or     %ecx,%esi
41c687:	f0 0f b1 37          	lock cmpxchg %esi,(%edi)
41c68b:	75 f6                	jne    0x41c683
41c68d:	f7 d0                	not    %eax
41c68f:	23 c8                	and    %eax,%ecx
41c691:	33 ff                	xor    %edi,%edi
41c693:	0f b6 c1             	movzbl %cl,%eax
41c696:	47                   	inc    %edi
41c697:	c7 45 b8 02 00 00 00 	movl   $0x2,-0x48(%ebp)
41c69e:	23 c7                	and    %edi,%eax
41c6a0:	c7 45 c0 06 00 00 00 	movl   $0x6,-0x40(%ebp)
41c6a7:	89 45 bc             	mov    %eax,-0x44(%ebp)
41c6aa:	8b f2                	mov    %edx,%esi
41c6ac:	0f b6 c1             	movzbl %cl,%eax
41c6af:	d1 e8                	shr    $1,%eax
41c6b1:	23 c7                	and    %edi,%eax
41c6b3:	c7 45 c8 03 00 00 00 	movl   $0x3,-0x38(%ebp)
41c6ba:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41c6bd:	0f b6 c1             	movzbl %cl,%eax
41c6c0:	c1 e8 02             	shr    $0x2,%eax
41c6c3:	23 c7                	and    %edi,%eax
41c6c5:	c7 45 d0 07 00 00 00 	movl   $0x7,-0x30(%ebp)
41c6cc:	83 f9 08             	cmp    $0x8,%ecx
41c6cf:	89 45 cc             	mov    %eax,-0x34(%ebp)
41c6d2:	8b ca                	mov    %edx,%ecx
41c6d4:	1b c0                	sbb    %eax,%eax
41c6d6:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
41c6da:	40                   	inc    %eax
41c6db:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41c6de:	81 e6 00 40 00 00    	and    $0x4000,%esi
41c6e4:	74 09                	je     0x41c6ef
41c6e6:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
41c6ea:	c1 e9 05             	shr    $0x5,%ecx
41c6ed:	eb 0d                	jmp    0x41c6fc
41c6ef:	c1 e9 05             	shr    $0x5,%ecx
41c6f2:	8b c1                	mov    %ecx,%eax
41c6f4:	25 ff 01 00 00       	and    $0x1ff,%eax
41c6f9:	89 45 dc             	mov    %eax,-0x24(%ebp)
41c6fc:	c7 45 e0 04 00 00 00 	movl   $0x4,-0x20(%ebp)
41c703:	85 f6                	test   %esi,%esi
41c705:	74 0b                	je     0x41c712
41c707:	81 e1 ff 01 00 00    	and    $0x1ff,%ecx
41c70d:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41c710:	eb 04                	jmp    0x41c716
41c712:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41c716:	8b ca                	mov    %edx,%ecx
41c718:	89 7d e8             	mov    %edi,-0x18(%ebp)
41c71b:	81 e1 00 00 40 00    	and    $0x400000,%ecx
41c721:	74 09                	je     0x41c72c
41c723:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
41c727:	c1 ea 0f             	shr    $0xf,%edx
41c72a:	eb 0b                	jmp    0x41c737
41c72c:	c1 ea 0f             	shr    $0xf,%edx
41c72f:	8b c2                	mov    %edx,%eax
41c731:	83 e0 7f             	and    $0x7f,%eax
41c734:	89 45 ec             	mov    %eax,-0x14(%ebp)
41c737:	c7 45 f0 05 00 00 00 	movl   $0x5,-0x10(%ebp)
41c73e:	85 c9                	test   %ecx,%ecx
41c740:	74 08                	je     0x41c74a
41c742:	83 e2 7f             	and    $0x7f,%edx
41c745:	89 55 f4             	mov    %edx,-0xc(%ebp)
41c748:	eb 04                	jmp    0x41c74e
41c74a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
41c74e:	33 f6                	xor    %esi,%esi
41c750:	8b 44 f5 bc          	mov    -0x44(%ebp,%esi,8),%eax
41c754:	85 c0                	test   %eax,%eax
41c756:	74 26                	je     0x41c77e
41c758:	8b 3d 58 90 43 00    	mov    0x439058,%edi
41c75e:	85 ff                	test   %edi,%edi
41c760:	75 0a                	jne    0x41c76c
41c762:	8b 3d fc 90 43 00    	mov    0x4390fc,%edi
41c768:	85 ff                	test   %edi,%edi
41c76a:	74 12                	je     0x41c77e
41c76c:	6a 00                	push   $0x0
41c76e:	50                   	push   %eax
41c76f:	ff 74 f5 b8          	push   -0x48(%ebp,%esi,8)
41c773:	8b cf                	mov    %edi,%ecx
41c775:	53                   	push   %ebx
41c776:	ff 15 20 a5 43 00    	call   *0x43a520
41c77c:	ff d7                	call   *%edi
41c77e:	46                   	inc    %esi
41c77f:	83 fe 08             	cmp    $0x8,%esi
41c782:	72 cc                	jb     0x41c750
41c784:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41c787:	5f                   	pop    %edi
41c788:	5e                   	pop    %esi
41c789:	33 cd                	xor    %ebp,%ecx
41c78b:	5b                   	pop    %ebx
41c78c:	e8 2f e0 ff ff       	call   0x41a7c0
41c791:	c9                   	leave
41c792:	c2 04 00             	ret    $0x4
41c795:	8b ff                	mov    %edi,%edi
41c797:	56                   	push   %esi
41c798:	8b 35 d8 89 43 00    	mov    0x4389d8,%esi
41c79e:	57                   	push   %edi
41c79f:	8b f9                	mov    %ecx,%edi
41c7a1:	85 f6                	test   %esi,%esi
41c7a3:	75 24                	jne    0x41c7c9
41c7a5:	68 54 51 40 00       	push   $0x405154
41c7aa:	e8 64 22 01 00       	call   0x42ea13
41c7af:	50                   	push   %eax
41c7b0:	ff 15 54 a1 43 00    	call   *0x43a154
41c7b6:	8b f0                	mov    %eax,%esi
41c7b8:	89 35 d8 89 43 00    	mov    %esi,0x4389d8
41c7be:	85 f6                	test   %esi,%esi
41c7c0:	75 07                	jne    0x41c7c9
41c7c2:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
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