4166be:	74 0d                	je     0x4166cd
4166c0:	8b 55 08             	mov    0x8(%ebp),%edx
4166c3:	46                   	inc    %esi
4166c4:	89 11                	mov    %edx,(%ecx)
4166c6:	8d 49 04             	lea    0x4(%ecx),%ecx
4166c9:	3b f0                	cmp    %eax,%esi
4166cb:	75 f6                	jne    0x4166c3
4166cd:	5e                   	pop    %esi
4166ce:	5d                   	pop    %ebp
4166cf:	c2 04 00             	ret    $0x4
4166d2:	68 40 c6 42 00       	push   $0x42c640
4166d7:	68 c8 c5 42 00       	push   $0x42c5c8
4166dc:	e8 2a 90 00 00       	call   0x41f70b
4166e1:	59                   	pop    %ecx
4166e2:	59                   	pop    %ecx
4166e3:	c3                   	ret
4166e4:	68 40 c6 42 00       	push   $0x42c640
4166e9:	68 c8 c5 42 00       	push   $0x42c5c8
4166ee:	e8 9b 90 00 00       	call   0x41f78e
4166f3:	59                   	pop    %ecx
4166f4:	59                   	pop    %ecx
4166f5:	c3                   	ret
4166f6:	a1 d0 9c 83 02       	mov    0x2839cd0,%eax
4166fb:	c3                   	ret
4166fc:	8b ff                	mov    %edi,%edi
4166fe:	55                   	push   %ebp
4166ff:	8b ec                	mov    %esp,%ebp
416701:	8b 45 08             	mov    0x8(%ebp),%eax
416704:	a3 d0 9c 83 02       	mov    %eax,0x2839cd0
416709:	5d                   	pop    %ebp
41670a:	c3                   	ret
41670b:	8b ff                	mov    %edi,%edi
41670d:	55                   	push   %ebp
41670e:	8b ec                	mov    %esp,%ebp
416710:	a1 28 ba 43 00       	mov    0x43ba28,%eax
416715:	83 e0 1f             	and    $0x1f,%eax
416718:	6a 20                	push   $0x20
41671a:	59                   	pop    %ecx
41671b:	2b c8                	sub    %eax,%ecx
41671d:	8b 45 08             	mov    0x8(%ebp),%eax
416720:	d3 c8                	ror    %cl,%eax
416722:	33 05 28 ba 43 00    	xor    0x43ba28,%eax
416728:	5d                   	pop    %ebp
416729:	c3                   	ret
41672a:	8b ff                	mov    %edi,%edi
41672c:	55                   	push   %ebp
41672d:	8b ec                	mov    %esp,%ebp
41672f:	8d 41 04             	lea    0x4(%ecx),%eax
416732:	8b d0                	mov    %eax,%edx
416734:	2b d1                	sub    %ecx,%edx
416736:	83 c2 03             	add    $0x3,%edx
416739:	56                   	push   %esi
41673a:	33 f6                	xor    %esi,%esi
41673c:	c1 ea 02             	shr    $0x2,%edx
41673f:	3b c1                	cmp    %ecx,%eax
416741:	1b c0                	sbb    %eax,%eax
416743:	f7 d0                	not    %eax
416745:	23 c2                	and    %edx,%eax
416747:	74 0d                	je     0x416756
416749:	8b 55 08             	mov    0x8(%ebp),%edx
41674c:	46                   	inc    %esi
41674d:	89 11                	mov    %edx,(%ecx)
41674f:	8d 49 04             	lea    0x4(%ecx),%ecx
416752:	3b f0                	cmp    %eax,%esi
416754:	75 f6                	jne    0x41674c
416756:	5e                   	pop    %esi
416757:	5d                   	pop    %ebp
416758:	c2 04 00             	ret    $0x4
41675b:	a1 28 ba 43 00       	mov    0x43ba28,%eax
416760:	8b c8                	mov    %eax,%ecx
416762:	33 05 d4 9c 83 02    	xor    0x2839cd4,%eax
416768:	83 e1 1f             	and    $0x1f,%ecx
41676b:	d3 c8                	ror    %cl,%eax
41676d:	f7 d8                	neg    %eax
41676f:	1b c0                	sbb    %eax,%eax
416771:	f7 d8                	neg    %eax
416773:	c3                   	ret
416774:	8b ff                	mov    %edi,%edi
416776:	55                   	push   %ebp
416777:	8b ec                	mov    %esp,%ebp
416779:	ff 75 08             	push   0x8(%ebp)
41677c:	b9 d4 9c 83 02       	mov    $0x2839cd4,%ecx
416781:	e8 a4 ff ff ff       	call   0x41672a
416786:	5d                   	pop    %ebp
416787:	c3                   	ret
416788:	8b ff                	mov    %edi,%edi
41678a:	55                   	push   %ebp
41678b:	8b ec                	mov    %esp,%ebp
41678d:	51                   	push   %ecx
41678e:	a1 28 ba 43 00       	mov    0x43ba28,%eax
416793:	33 c5                	xor    %ebp,%eax
416795:	89 45 fc             	mov    %eax,-0x4(%ebp)
416798:	56                   	push   %esi
416799:	8b 35 28 ba 43 00    	mov    0x43ba28,%esi
41679f:	8b ce                	mov    %esi,%ecx
4167a1:	33 35 d4 9c 83 02    	xor    0x2839cd4,%esi
4167a7:	83 e1 1f             	and    $0x1f,%ecx
4167aa:	d3 ce                	ror    %cl,%esi
4167ac:	85 f6                	test   %esi,%esi
4167ae:	75 04                	jne    0x4167b4
4167b0:	33 c0                	xor    %eax,%eax
4167b2:	eb 0e                	jmp    0x4167c2
4167b4:	ff 75 08             	push   0x8(%ebp)
4167b7:	8b ce                	mov    %esi,%ecx
4167b9:	ff 15 50 72 42 00    	call   *0x427250
4167bf:	ff d6                	call   *%esi
4167c1:	59                   	pop    %ecx
4167c2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4167c5:	33 cd                	xor    %ebp,%ecx
4167c7:	5e                   	pop    %esi
4167c8:	e8 93 08 ff ff       	call   0x407060
4167cd:	8b e5                	mov    %ebp,%esp
4167cf:	5d                   	pop    %ebp
4167d0:	c3                   	ret
4167d1:	8b ff                	mov    %edi,%edi
4167d3:	55                   	push   %ebp
4167d4:	8b ec                	mov    %esp,%ebp
4167d6:	ff 75 08             	push   0x8(%ebp)
4167d9:	e8 2d ff ff ff       	call   0x41670b
4167de:	59                   	pop    %ecx
4167df:	a3 d4 9c 83 02       	mov    %eax,0x2839cd4
4167e4:	5d                   	pop    %ebp
4167e5:	c3                   	ret
4167e6:	8b ff                	mov    %edi,%edi
4167e8:	53                   	push   %ebx
4167e9:	56                   	push   %esi
4167ea:	e8 9c 8a 00 00       	call   0x41f28b
4167ef:	8b 35 e0 a0 83 02    	mov    0x283a0e0,%esi
4167f5:	85 f6                	test   %esi,%esi
4167f7:	75 05                	jne    0x4167fe
4167f9:	be d8 9c 83 02       	mov    $0x2839cd8,%esi
4167fe:	32 db                	xor    %bl,%bl
416800:	8a 06                	mov    (%esi),%al
416802:	3c 20                	cmp    $0x20,%al
416804:	7f 08                	jg     0x41680e
416806:	84 c0                	test   %al,%al
416808:	74 2a                	je     0x416834
41680a:	84 db                	test   %bl,%bl
41680c:	74 20                	je     0x41682e
41680e:	3c 22                	cmp    $0x22,%al
416810:	75 05                	jne    0x416817
416812:	84 db                	test   %bl,%bl
416814:	0f 94 c3             	sete   %bl
416817:	0f be c0             	movsbl %al,%eax
41681a:	50                   	push   %eax
41681b:	e8 b7 e2 ff ff       	call   0x414ad7
416820:	59                   	pop    %ecx
416821:	85 c0                	test   %eax,%eax
416823:	74 01                	je     0x416826
416825:	46                   	inc    %esi
416826:	46                   	inc    %esi
416827:	eb d7                	jmp    0x416800
416829:	3c 20                	cmp    $0x20,%al
41682b:	7f 07                	jg     0x416834
41682d:	46                   	inc    %esi
41682e:	8a 06                	mov    (%esi),%al
416830:	84 c0                	test   %al,%al
416832:	75 f5                	jne    0x416829
416834:	8b c6                	mov    %esi,%eax
416836:	5e                   	pop    %esi
416837:	5b                   	pop    %ebx
416838:	c3                   	ret
416839:	8b ff                	mov    %edi,%edi
41683b:	55                   	push   %ebp
41683c:	8b ec                	mov    %esp,%ebp
41683e:	51                   	push   %ecx
41683f:	51                   	push   %ecx
416840:	a1 28 ba 43 00       	mov    0x43ba28,%eax
416845:	33 c5                	xor    %ebp,%eax
416847:	89 45 fc             	mov    %eax,-0x4(%ebp)
41684a:	8b 45 0c             	mov    0xc(%ebp),%eax
41684d:	53                   	push   %ebx
41684e:	56                   	push   %esi
41684f:	8b 75 08             	mov    0x8(%ebp),%esi
416852:	2b c6                	sub    %esi,%eax
416854:	83 c0 03             	add    $0x3,%eax
416857:	57                   	push   %edi
416858:	33 ff                	xor    %edi,%edi
41685a:	c1 e8 02             	shr    $0x2,%eax
41685d:	39 75 0c             	cmp    %esi,0xc(%ebp)
416860:	1b db                	sbb    %ebx,%ebx
416862:	f7 d3                	not    %ebx
416864:	23 d8                	and    %eax,%ebx
416866:	74 1c                	je     0x416884
416868:	8b 06                	mov    (%esi),%eax
41686a:	89 45 f8             	mov    %eax,-0x8(%ebp)
41686d:	85 c0                	test   %eax,%eax
41686f:	74 0b                	je     0x41687c
416871:	8b c8                	mov    %eax,%ecx
416873:	ff 15 50 72 42 00    	call   *0x427250
416879:	ff 55 f8             	call   *-0x8(%ebp)
41687c:	83 c6 04             	add    $0x4,%esi
41687f:	47                   	inc    %edi
416880:	3b fb                	cmp    %ebx,%edi
416882:	75 e4                	jne    0x416868
416884:	8b 4d fc             	mov    -0x4(%ebp),%ecx
416887:	5f                   	pop    %edi
416888:	5e                   	pop    %esi
416889:	33 cd                	xor    %ebp,%ecx
41688b:	5b                   	pop    %ebx
41688c:	e8 cf 07 ff ff       	call   0x407060
416891:	8b e5                	mov    %ebp,%esp
416893:	5d                   	pop    %ebp
416894:	c3                   	ret
416895:	8b ff                	mov    %edi,%edi
416897:	55                   	push   %ebp
416898:	8b ec                	mov    %esp,%ebp
41689a:	51                   	push   %ecx
41689b:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4168a0:	33 c5                	xor    %ebp,%eax
4168a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4168a5:	56                   	push   %esi
4168a6:	8b 75 08             	mov    0x8(%ebp),%esi
4168a9:	57                   	push   %edi
4168aa:	eb 17                	jmp    0x4168c3
4168ac:	8b 3e                	mov    (%esi),%edi
4168ae:	85 ff                	test   %edi,%edi
4168b0:	74 0e                	je     0x4168c0
4168b2:	8b cf                	mov    %edi,%ecx
4168b4:	ff 15 50 72 42 00    	call   *0x427250
4168ba:	ff d7                	call   *%edi
4168bc:	85 c0                	test   %eax,%eax
4168be:	75 0a                	jne    0x4168ca
4168c0:	83 c6 04             	add    $0x4,%esi
4168c3:	3b 75 0c             	cmp    0xc(%ebp),%esi
4168c6:	75 e4                	jne    0x4168ac
4168c8:	33 c0                	xor    %eax,%eax
4168ca:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4168cd:	5f                   	pop    %edi
4168ce:	33 cd                	xor    %ebp,%ecx
4168d0:	5e                   	pop    %esi
4168d1:	e8 8a 07 ff ff       	call   0x407060
4168d6:	8b e5                	mov    %ebp,%esp
4168d8:	5d                   	pop    %ebp
4168d9:	c3                   	ret
4168da:	8b ff                	mov    %edi,%edi
4168dc:	55                   	push   %ebp
4168dd:	8b ec                	mov    %esp,%ebp
4168df:	8b 45 08             	mov    0x8(%ebp),%eax
4168e2:	3d 00 40 00 00       	cmp    $0x4000,%eax
4168e7:	74 23                	je     0x41690c
4168e9:	3d 00 80 00 00       	cmp    $0x8000,%eax
4168ee:	74 1c                	je     0x41690c
4168f0:	3d 00 00 01 00       	cmp    $0x10000,%eax
4168f5:	74 15                	je     0x41690c
4168f7:	e8 6f e1 ff ff       	call   0x414a6b
4168fc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
416902:	e8 db 53 ff ff       	call   0x40bce2
416907:	6a 16                	push   $0x16
416909:	58                   	pop    %eax
41690a:	5d                   	pop    %ebp
41690b:	c3                   	ret
41690c:	b9 ec a0 83 02       	mov    $0x283a0ec,%ecx
416911:	87 01                	xchg   %eax,(%ecx)
416913:	33 c0                	xor    %eax,%eax
416915:	5d                   	pop    %ebp
416916:	c3                   	ret
416917:	33 c0                	xor    %eax,%eax
416919:	c3                   	ret
41691a:	6a 08                	push   $0x8
41691c:	68 c8 80 43 00       	push   $0x4380c8
416921:	e8 fa 0c ff ff       	call   0x407620
416926:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41692a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41692d:	e8 8e 00 00 00       	call   0x4169c0
416932:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
416939:	e8 08 00 00 00       	call   0x416946
41693e:	e8 23 0d ff ff       	call   0x407666
416943:	c2 0c 00             	ret    $0xc
416946:	8b 45 10             	mov    0x10(%ebp),%eax
416949:	8b 00                	mov    (%eax),%eax
41694b:	8b 00                	mov    (%eax),%eax
41694d:	83 a0 50 03 00 00 ef 	andl   $0xffffffef,0x350(%eax)
416954:	c3                   	ret
416955:	6a 08                	push   $0x8
416957:	68 e8 80 43 00       	push   $0x4380e8
41695c:	e8 bf 0c ff ff       	call   0x407620
416961:	8b 45 08             	mov    0x8(%ebp),%eax
416964:	ff 30                	push   (%eax)
416966:	e8 53 da ff ff       	call   0x4143be
41696b:	59                   	pop    %ecx
41696c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
416970:	8b 4d 0c             	mov    0xc(%ebp),%ecx
416973:	e8 a4 00 00 00       	call   0x416a1c
416978:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41697f:	e8 08 00 00 00       	call   0x41698c
416984:	e8 dd 0c ff ff       	call   0x407666
416989:	c2 0c 00             	ret    $0xc
41698c:	8b 45 10             	mov    0x10(%ebp),%eax
41698f:	ff 30                	push   (%eax)
416991:	e8 70 da ff ff       	call   0x414406
416996:	59                   	pop    %ecx
416997:	c3                   	ret
416998:	8b ff                	mov    %edi,%edi
41699a:	55                   	push   %ebp
41699b:	8b ec                	mov    %esp,%ebp
41699d:	83 ec 0c             	sub    $0xc,%esp
4169a0:	8b 45 08             	mov    0x8(%ebp),%eax
4169a3:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4169a6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4169a9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4169ac:	8d 45 f8             	lea    -0x8(%ebp),%eax
4169af:	50                   	push   %eax
4169b0:	ff 75 0c             	push   0xc(%ebp)
4169b3:	8d 45 f4             	lea    -0xc(%ebp),%eax
4169b6:	50                   	push   %eax
4169b7:	e8 99 ff ff ff       	call   0x416955
4169bc:	8b e5                	mov    %ebp,%esp
4169be:	5d                   	pop    %ebp
4169bf:	c3                   	ret
4169c0:	8b ff                	mov    %edi,%edi
4169c2:	55                   	push   %ebp
4169c3:	8b ec                	mov    %esp,%ebp
4169c5:	83 ec 14             	sub    $0x14,%esp
4169c8:	56                   	push   %esi
4169c9:	57                   	push   %edi
4169ca:	68 b8 00 00 00       	push   $0xb8
4169cf:	6a 01                	push   $0x1
4169d1:	8b f9                	mov    %ecx,%edi
4169d3:	e8 57 da ff ff       	call   0x41442f
4169d8:	8b f0                	mov    %eax,%esi
4169da:	8b 07                	mov    (%edi),%eax
4169dc:	6a 00                	push   $0x0
4169de:	89 30                	mov    %esi,(%eax)
4169e0:	e8 2b e3 ff ff       	call   0x414d10
4169e5:	83 c4 0c             	add    $0xc,%esp
4169e8:	85 f6                	test   %esi,%esi
4169ea:	74 2a                	je     0x416a16
4169ec:	8b 07                	mov    (%edi),%eax
4169ee:	89 45 ec             	mov    %eax,-0x14(%ebp)
4169f1:	8b 47 04             	mov    0x4(%edi),%eax
4169f4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4169f7:	8b 47 08             	mov    0x8(%edi),%eax
4169fa:	89 45 f4             	mov    %eax,-0xc(%ebp)
4169fd:	8b 47 0c             	mov    0xc(%edi),%eax
416a00:	89 45 f8             	mov    %eax,-0x8(%ebp)
416a03:	8b 47 10             	mov    0x10(%edi),%eax
416a06:	89 45 fc             	mov    %eax,-0x4(%ebp)
416a09:	8d 45 ec             	lea    -0x14(%ebp),%eax
416a0c:	50                   	push   %eax
416a0d:	6a 04                	push   $0x4
416a0f:	e8 84 ff ff ff       	call   0x416998
416a14:	59                   	pop    %ecx
416a15:	59                   	pop    %ecx
416a16:	5f                   	pop    %edi
416a17:	5e                   	pop    %esi
416a18:	8b e5                	mov    %ebp,%esp
416a1a:	5d                   	pop    %ebp
416a1b:	c3                   	ret
416a1c:	8b ff                	mov    %edi,%edi