4196de:	b8 bf fe ff ff       	mov    $0xfffffebf,%eax
4196e3:	f0 21 07             	lock and %eax,(%edi)
4196e6:	33 c0                	xor    %eax,%eax
4196e8:	89 46 04             	mov    %eax,0x4(%esi)
4196eb:	89 06                	mov    %eax,(%esi)
4196ed:	89 46 08             	mov    %eax,0x8(%esi)
4196f0:	5f                   	pop    %edi
4196f1:	5e                   	pop    %esi
4196f2:	5d                   	pop    %ebp
4196f3:	c3                   	ret
4196f4:	8b ff                	mov    %edi,%edi
4196f6:	55                   	push   %ebp
4196f7:	8b ec                	mov    %esp,%ebp
4196f9:	83 ec 48             	sub    $0x48,%esp
4196fc:	8d 45 b8             	lea    -0x48(%ebp),%eax
4196ff:	50                   	push   %eax
419700:	ff 15 a0 71 42 00    	call   *0x4271a0
419706:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
41970b:	0f 84 95 00 00 00    	je     0x4197a6
419711:	8b 45 ec             	mov    -0x14(%ebp),%eax
419714:	85 c0                	test   %eax,%eax
419716:	0f 84 8a 00 00 00    	je     0x4197a6
41971c:	53                   	push   %ebx
41971d:	56                   	push   %esi
41971e:	8b 30                	mov    (%eax),%esi
419720:	8d 58 04             	lea    0x4(%eax),%ebx
419723:	8d 04 33             	lea    (%ebx,%esi,1),%eax
419726:	89 45 fc             	mov    %eax,-0x4(%ebp)
419729:	b8 00 20 00 00       	mov    $0x2000,%eax
41972e:	3b f0                	cmp    %eax,%esi
419730:	7c 02                	jl     0x419734
419732:	8b f0                	mov    %eax,%esi
419734:	56                   	push   %esi
419735:	e8 9d 62 00 00       	call   0x41f9d7
41973a:	a1 c0 9f 83 02       	mov    0x2839fc0,%eax
41973f:	59                   	pop    %ecx
419740:	3b f0                	cmp    %eax,%esi
419742:	7e 02                	jle    0x419746
419744:	8b f0                	mov    %eax,%esi
419746:	57                   	push   %edi
419747:	33 ff                	xor    %edi,%edi
419749:	85 f6                	test   %esi,%esi
41974b:	74 56                	je     0x4197a3
41974d:	8b 45 fc             	mov    -0x4(%ebp),%eax
419750:	8b 08                	mov    (%eax),%ecx
419752:	83 f9 ff             	cmp    $0xffffffff,%ecx
419755:	74 40                	je     0x419797
419757:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41975a:	74 3b                	je     0x419797
41975c:	8a 13                	mov    (%ebx),%dl
41975e:	f6 c2 01             	test   $0x1,%dl
419761:	74 34                	je     0x419797
419763:	f6 c2 08             	test   $0x8,%dl
419766:	75 0b                	jne    0x419773
419768:	51                   	push   %ecx
419769:	ff 15 fc 71 42 00    	call   *0x4271fc
41976f:	85 c0                	test   %eax,%eax
419771:	74 21                	je     0x419794
419773:	8b c7                	mov    %edi,%eax
419775:	8b cf                	mov    %edi,%ecx
419777:	83 e0 3f             	and    $0x3f,%eax
41977a:	c1 f9 06             	sar    $0x6,%ecx
41977d:	6b d0 30             	imul   $0x30,%eax,%edx
419780:	8b 45 fc             	mov    -0x4(%ebp),%eax
419783:	03 14 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%edx
41978a:	8b 00                	mov    (%eax),%eax
41978c:	89 42 18             	mov    %eax,0x18(%edx)
41978f:	8a 03                	mov    (%ebx),%al
419791:	88 42 28             	mov    %al,0x28(%edx)
419794:	8b 45 fc             	mov    -0x4(%ebp),%eax
419797:	47                   	inc    %edi
419798:	83 c0 04             	add    $0x4,%eax
41979b:	43                   	inc    %ebx
41979c:	89 45 fc             	mov    %eax,-0x4(%ebp)
41979f:	3b fe                	cmp    %esi,%edi
4197a1:	75 ad                	jne    0x419750
4197a3:	5f                   	pop    %edi
4197a4:	5e                   	pop    %esi
4197a5:	5b                   	pop    %ebx
4197a6:	8b e5                	mov    %ebp,%esp
4197a8:	5d                   	pop    %ebp
4197a9:	c3                   	ret
4197aa:	8b ff                	mov    %edi,%edi
4197ac:	53                   	push   %ebx
4197ad:	56                   	push   %esi
4197ae:	57                   	push   %edi
4197af:	33 ff                	xor    %edi,%edi
4197b1:	8b c7                	mov    %edi,%eax
4197b3:	8b cf                	mov    %edi,%ecx
4197b5:	83 e0 3f             	and    $0x3f,%eax
4197b8:	c1 f9 06             	sar    $0x6,%ecx
4197bb:	6b f0 30             	imul   $0x30,%eax,%esi
4197be:	03 34 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%esi
4197c5:	83 7e 18 ff          	cmpl   $0xffffffff,0x18(%esi)
4197c9:	74 0c                	je     0x4197d7
4197cb:	83 7e 18 fe          	cmpl   $0xfffffffe,0x18(%esi)
4197cf:	74 06                	je     0x4197d7
4197d1:	80 4e 28 80          	orb    $0x80,0x28(%esi)
4197d5:	eb 7b                	jmp    0x419852
4197d7:	8b c7                	mov    %edi,%eax
4197d9:	c6 46 28 81          	movb   $0x81,0x28(%esi)
4197dd:	83 e8 00             	sub    $0x0,%eax
4197e0:	74 10                	je     0x4197f2
4197e2:	83 e8 01             	sub    $0x1,%eax
4197e5:	74 07                	je     0x4197ee
4197e7:	6a f4                	push   $0xfffffff4
4197e9:	83 e8 01             	sub    $0x1,%eax
4197ec:	eb 06                	jmp    0x4197f4
4197ee:	6a f5                	push   $0xfffffff5
4197f0:	eb 02                	jmp    0x4197f4
4197f2:	6a f6                	push   $0xfffffff6
4197f4:	58                   	pop    %eax
4197f5:	50                   	push   %eax
4197f6:	ff 15 e4 71 42 00    	call   *0x4271e4
4197fc:	8b d8                	mov    %eax,%ebx
4197fe:	83 fb ff             	cmp    $0xffffffff,%ebx
419801:	74 0d                	je     0x419810
419803:	85 db                	test   %ebx,%ebx
419805:	74 09                	je     0x419810
419807:	53                   	push   %ebx
419808:	ff 15 fc 71 42 00    	call   *0x4271fc
41980e:	eb 02                	jmp    0x419812
419810:	33 c0                	xor    %eax,%eax
419812:	85 c0                	test   %eax,%eax
419814:	74 1e                	je     0x419834
419816:	25 ff 00 00 00       	and    $0xff,%eax
41981b:	89 5e 18             	mov    %ebx,0x18(%esi)
41981e:	83 f8 02             	cmp    $0x2,%eax
419821:	75 06                	jne    0x419829
419823:	80 4e 28 40          	orb    $0x40,0x28(%esi)
419827:	eb 29                	jmp    0x419852
419829:	83 f8 03             	cmp    $0x3,%eax
41982c:	75 24                	jne    0x419852
41982e:	80 4e 28 08          	orb    $0x8,0x28(%esi)
419832:	eb 1e                	jmp    0x419852
419834:	80 4e 28 40          	orb    $0x40,0x28(%esi)
419838:	c7 46 18 fe ff ff ff 	movl   $0xfffffffe,0x18(%esi)
41983f:	a1 40 9a 83 02       	mov    0x2839a40,%eax
419844:	85 c0                	test   %eax,%eax
419846:	74 0a                	je     0x419852
419848:	8b 04 b8             	mov    (%eax,%edi,4),%eax
41984b:	c7 40 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%eax)
419852:	47                   	inc    %edi
419853:	83 ff 03             	cmp    $0x3,%edi
419856:	0f 85 55 ff ff ff    	jne    0x4197b1
41985c:	5f                   	pop    %edi
41985d:	5e                   	pop    %esi
41985e:	5b                   	pop    %ebx
41985f:	c3                   	ret
419860:	6a 0c                	push   $0xc
419862:	68 10 82 43 00       	push   $0x438210
419867:	e8 b4 dd fe ff       	call   0x407620
41986c:	6a 07                	push   $0x7
41986e:	e8 4b ab ff ff       	call   0x4143be
419873:	59                   	pop    %ecx
419874:	33 db                	xor    %ebx,%ebx
419876:	88 5d e7             	mov    %bl,-0x19(%ebp)
419879:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41987c:	53                   	push   %ebx
41987d:	e8 55 61 00 00       	call   0x41f9d7
419882:	59                   	pop    %ecx
419883:	85 c0                	test   %eax,%eax
419885:	75 0f                	jne    0x419896
419887:	e8 68 fe ff ff       	call   0x4196f4
41988c:	e8 19 ff ff ff       	call   0x4197aa
419891:	b3 01                	mov    $0x1,%bl
419893:	88 5d e7             	mov    %bl,-0x19(%ebp)
419896:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41989d:	e8 0b 00 00 00       	call   0x4198ad
4198a2:	8a c3                	mov    %bl,%al
4198a4:	e8 bd dd fe ff       	call   0x407666
4198a9:	c3                   	ret
4198aa:	8a 5d e7             	mov    -0x19(%ebp),%bl
4198ad:	6a 07                	push   $0x7
4198af:	e8 52 ab ff ff       	call   0x414406
4198b4:	59                   	pop    %ecx
4198b5:	c3                   	ret
4198b6:	8b ff                	mov    %edi,%edi
4198b8:	56                   	push   %esi
4198b9:	33 f6                	xor    %esi,%esi
4198bb:	8b 86 c0 9d 83 02    	mov    0x2839dc0(%esi),%eax
4198c1:	85 c0                	test   %eax,%eax
4198c3:	74 0e                	je     0x4198d3
4198c5:	50                   	push   %eax
4198c6:	e8 d7 60 00 00       	call   0x41f9a2
4198cb:	83 a6 c0 9d 83 02 00 	andl   $0x0,0x2839dc0(%esi)
4198d2:	59                   	pop    %ecx
4198d3:	83 c6 04             	add    $0x4,%esi
4198d6:	81 fe 00 02 00 00    	cmp    $0x200,%esi
4198dc:	72 dd                	jb     0x4198bb
4198de:	b0 01                	mov    $0x1,%al
4198e0:	5e                   	pop    %esi
4198e1:	c3                   	ret
4198e2:	8b ff                	mov    %edi,%edi
4198e4:	55                   	push   %ebp
4198e5:	8b ec                	mov    %esp,%ebp
4198e7:	51                   	push   %ecx
4198e8:	6a 01                	push   $0x1
4198ea:	ff 75 10             	push   0x10(%ebp)
4198ed:	51                   	push   %ecx
4198ee:	51                   	push   %ecx
4198ef:	8b c4                	mov    %esp,%eax
4198f1:	ff 75 0c             	push   0xc(%ebp)
4198f4:	ff 75 08             	push   0x8(%ebp)
4198f7:	50                   	push   %eax
4198f8:	e8 25 b8 ff ff       	call   0x415122
4198fd:	83 c4 0c             	add    $0xc,%esp
419900:	6a 00                	push   $0x0
419902:	e8 06 e3 ff ff       	call   0x417c0d
419907:	83 c4 14             	add    $0x14,%esp
41990a:	8b e5                	mov    %ebp,%esp
41990c:	5d                   	pop    %ebp
41990d:	c3                   	ret
41990e:	8b ff                	mov    %edi,%edi
419910:	55                   	push   %ebp
419911:	8b ec                	mov    %esp,%ebp
419913:	51                   	push   %ecx
419914:	6a 00                	push   $0x0
419916:	ff 75 10             	push   0x10(%ebp)
419919:	51                   	push   %ecx
41991a:	51                   	push   %ecx
41991b:	8b c4                	mov    %esp,%eax
41991d:	ff 75 0c             	push   0xc(%ebp)
419920:	ff 75 08             	push   0x8(%ebp)
419923:	50                   	push   %eax
419924:	e8 f9 b7 ff ff       	call   0x415122
419929:	83 c4 0c             	add    $0xc,%esp
41992c:	6a 00                	push   $0x0
41992e:	e8 e7 eb ff ff       	call   0x41851a
419933:	83 c4 14             	add    $0x14,%esp
419936:	8b e5                	mov    %ebp,%esp
419938:	5d                   	pop    %ebp
419939:	c3                   	ret
41993a:	8b ff                	mov    %edi,%edi
41993c:	55                   	push   %ebp
41993d:	8b ec                	mov    %esp,%ebp
41993f:	51                   	push   %ecx
419940:	6a 01                	push   $0x1
419942:	ff 75 10             	push   0x10(%ebp)
419945:	51                   	push   %ecx
419946:	51                   	push   %ecx
419947:	8b c4                	mov    %esp,%eax
419949:	ff 75 0c             	push   0xc(%ebp)
41994c:	ff 75 08             	push   0x8(%ebp)
41994f:	50                   	push   %eax
419950:	e8 e8 b7 ff ff       	call   0x41513d
419955:	83 c4 0c             	add    $0xc,%esp
419958:	6a 00                	push   $0x0
41995a:	e8 d6 e4 ff ff       	call   0x417e35
41995f:	83 c4 14             	add    $0x14,%esp
419962:	8b e5                	mov    %ebp,%esp
419964:	5d                   	pop    %ebp
419965:	c3                   	ret
419966:	8b ff                	mov    %edi,%edi
419968:	55                   	push   %ebp
419969:	8b ec                	mov    %esp,%ebp
41996b:	83 ec 10             	sub    $0x10,%esp
41996e:	53                   	push   %ebx
41996f:	56                   	push   %esi
419970:	8b 75 0c             	mov    0xc(%ebp),%esi
419973:	85 f6                	test   %esi,%esi
419975:	74 18                	je     0x41998f
419977:	8b 5d 10             	mov    0x10(%ebp),%ebx
41997a:	85 db                	test   %ebx,%ebx
41997c:	74 11                	je     0x41998f
41997e:	80 3e 00             	cmpb   $0x0,(%esi)
419981:	75 14                	jne    0x419997
419983:	8b 45 08             	mov    0x8(%ebp),%eax
419986:	85 c0                	test   %eax,%eax
419988:	74 05                	je     0x41998f
41998a:	33 c9                	xor    %ecx,%ecx
41998c:	66 89 08             	mov    %cx,(%eax)
41998f:	33 c0                	xor    %eax,%eax
419991:	5e                   	pop    %esi
419992:	5b                   	pop    %ebx
419993:	8b e5                	mov    %ebp,%esp
419995:	5d                   	pop    %ebp
419996:	c3                   	ret
419997:	57                   	push   %edi
419998:	ff 75 14             	push   0x14(%ebp)
41999b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41999e:	e8 25 2e ff ff       	call   0x40c7c8
4199a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4199a6:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
4199ad:	75 15                	jne    0x4199c4
4199af:	8b 4d 08             	mov    0x8(%ebp),%ecx
4199b2:	85 c9                	test   %ecx,%ecx
4199b4:	74 06                	je     0x4199bc
4199b6:	0f b6 06             	movzbl (%esi),%eax
4199b9:	66 89 01             	mov    %ax,(%ecx)
4199bc:	33 ff                	xor    %edi,%edi
4199be:	47                   	inc    %edi
4199bf:	e9 84 00 00 00       	jmp    0x419a48
4199c4:	8d 45 f4             	lea    -0xc(%ebp),%eax
4199c7:	50                   	push   %eax
4199c8:	0f b6 06             	movzbl (%esi),%eax
4199cb:	50                   	push   %eax
4199cc:	e8 f9 4e 00 00       	call   0x41e8ca
4199d1:	59                   	pop    %ecx
4199d2:	59                   	pop    %ecx
4199d3:	85 c0                	test   %eax,%eax
4199d5:	74 40                	je     0x419a17
4199d7:	8b 7d f4             	mov    -0xc(%ebp),%edi
4199da:	83 7f 04 01          	cmpl   $0x1,0x4(%edi)
4199de:	7e 27                	jle    0x419a07
4199e0:	3b 5f 04             	cmp    0x4(%edi),%ebx
4199e3:	7c 25                	jl     0x419a0a
4199e5:	33 c0                	xor    %eax,%eax
4199e7:	39 45 08             	cmp    %eax,0x8(%ebp)
4199ea:	0f 95 c0             	setne  %al
4199ed:	50                   	push   %eax
4199ee:	ff 75 08             	push   0x8(%ebp)
4199f1:	ff 77 04             	push   0x4(%edi)
4199f4:	56                   	push   %esi
4199f5:	6a 09                	push   $0x9
4199f7:	ff 77 08             	push   0x8(%edi)
4199fa:	ff 15 30 71 42 00    	call   *0x427130
419a00:	8b 7d f4             	mov    -0xc(%ebp),%edi
419a03:	85 c0                	test   %eax,%eax
419a05:	75 0b                	jne    0x419a12
419a07:	3b 5f 04             	cmp    0x4(%edi),%ebx
419a0a:	72 2e                	jb     0x419a3a
419a0c:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
419a10:	74 28                	je     0x419a3a
419a12:	8b 7f 04             	mov    0x4(%edi),%edi
419a15:	eb 31                	jmp    0x419a48
419a17:	33 c0                	xor    %eax,%eax
419a19:	39 45 08             	cmp    %eax,0x8(%ebp)
419a1c:	0f 95 c0             	setne  %al
419a1f:	33 ff                	xor    %edi,%edi
419a21:	50                   	push   %eax
419a22:	ff 75 08             	push   0x8(%ebp)
419a25:	8b 45 f4             	mov    -0xc(%ebp),%eax
419a28:	47                   	inc    %edi
419a29:	57                   	push   %edi
419a2a:	56                   	push   %esi
419a2b:	6a 09                	push   $0x9
419a2d:	ff 70 08             	push   0x8(%eax)
419a30:	ff 15 30 71 42 00    	call   *0x427130
419a36:	85 c0                	test   %eax,%eax
419a38:	75 0e                	jne    0x419a48
419a3a:	e8 2c b0 ff ff       	call   0x414a6b
419a3f:	83 cf ff             	or     $0xffffffff,%edi
419a42:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
419a48:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
419a4c:	74 0a                	je     0x419a58
419a4e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
419a51:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
419a58:	8b c7                	mov    %edi,%eax
419a5a:	5f                   	pop    %edi