416760:	55                   	push   %ebp
416761:	8b ec                	mov    %esp,%ebp
416763:	81 c4 f8 fd ff ff    	add    $0xfffffdf8,%esp
416769:	53                   	push   %ebx
41676a:	56                   	push   %esi
41676b:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
41676f:	8b da                	mov    %edx,%ebx
416771:	8b f0                	mov    %eax,%esi
416773:	f6 c3 01             	test   $0x1,%bl
416776:	74 12                	je     0x41678a
416778:	83 fb 7f             	cmp    $0x7f,%ebx
41677b:	7f 0d                	jg     0x41678a
41677d:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
416781:	e8 a2 01 00 00       	call   0x416928
416786:	84 c0                	test   %al,%al
416788:	75 05                	jne    0x41678f
41678a:	e8 29 92 ff ff       	call   0x40f9b8
41678f:	43                   	inc    %ebx
416790:	d1 fb                	sar    $1,%ebx
416792:	79 03                	jns    0x416797
416794:	83 d3 00             	adc    $0x0,%ebx
416797:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41679a:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41679d:	4b                   	dec    %ebx
41679e:	85 db                	test   %ebx,%ebx
4167a0:	7c 22                	jl     0x4167c4
4167a2:	43                   	inc    %ebx
4167a3:	8d 95 f8 fd ff ff    	lea    -0x208(%ebp),%edx
4167a9:	8b c6                	mov    %esi,%eax
4167ab:	8b ca                	mov    %edx,%ecx
4167ad:	8b 30                	mov    (%eax),%esi
4167af:	89 71 04             	mov    %esi,0x4(%ecx)
4167b2:	8b 70 04             	mov    0x4(%eax),%esi
4167b5:	2b 71 04             	sub    0x4(%ecx),%esi
4167b8:	46                   	inc    %esi
4167b9:	89 31                	mov    %esi,(%ecx)
4167bb:	83 c0 08             	add    $0x8,%eax
4167be:	83 c2 08             	add    $0x8,%edx
4167c1:	4b                   	dec    %ebx
4167c2:	75 e7                	jne    0x4167ab
4167c4:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
4167ca:	50                   	push   %eax
4167cb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4167ce:	50                   	push   %eax
4167cf:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
4167d3:	50                   	push   %eax
4167d4:	e8 b7 89 ff ff       	call   0x40f190
4167d9:	8b d8                	mov    %eax,%ebx
4167db:	85 db                	test   %ebx,%ebx
4167dd:	75 05                	jne    0x4167e4
4167df:	e8 d4 91 ff ff       	call   0x40f9b8
4167e4:	8b 45 08             	mov    0x8(%ebp),%eax
4167e7:	e8 fc 97 ff ff       	call   0x40ffe8
4167ec:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
4167f0:	66 0d 00 20          	or     $0x2000,%ax
4167f4:	8b 55 08             	mov    0x8(%ebp),%edx
4167f7:	66 89 02             	mov    %ax,(%edx)
4167fa:	8b 45 08             	mov    0x8(%ebp),%eax
4167fd:	89 58 08             	mov    %ebx,0x8(%eax)
416800:	5e                   	pop    %esi
416801:	5b                   	pop    %ebx
416802:	8b e5                	mov    %ebp,%esp
416804:	5d                   	pop    %ebp
416805:	c2 04 00             	ret    $0x4
416808:	53                   	push   %ebx
416809:	56                   	push   %esi
41680a:	83 c4 f0             	add    $0xfffffff0,%esp
41680d:	8b f2                	mov    %edx,%esi
41680f:	8b d8                	mov    %eax,%ebx
416811:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
416815:	8d 54 24 08          	lea    0x8(%esp),%edx
416819:	8b c3                	mov    %ebx,%eax
41681b:	e8 fc fe ff ff       	call   0x41671c
416820:	84 c0                	test   %al,%al
416822:	75 0a                	jne    0x41682e
416824:	b8 57 00 07 80       	mov    $0x80070057,%eax
416829:	e8 de 91 ff ff       	call   0x40fa0c
41682e:	8b 44 24 0c          	mov    0xc(%esp),%eax
416832:	0f b7 10             	movzwl (%eax),%edx
416835:	8b 54 d0 0c          	mov    0xc(%eax,%edx,8),%edx
416839:	89 54 24 04          	mov    %edx,0x4(%esp)
41683d:	2b f2                	sub    %edx,%esi
41683f:	46                   	inc    %esi
416840:	89 34 24             	mov    %esi,(%esp)
416843:	54                   	push   %esp
416844:	8b 44 24 10          	mov    0x10(%esp),%eax
416848:	50                   	push   %eax
416849:	e8 4a 89 ff ff       	call   0x40f198
41684e:	85 c0                	test   %eax,%eax
416850:	74 05                	je     0x416857
416852:	e8 61 91 ff ff       	call   0x40f9b8
416857:	83 c4 10             	add    $0x10,%esp
41685a:	5e                   	pop    %esi
41685b:	5b                   	pop    %ebx
41685c:	c3                   	ret
41685d:	8d 40 00             	lea    0x0(%eax),%eax
416860:	53                   	push   %ebx
416861:	83 c4 f8             	add    $0xfffffff8,%esp
416864:	8b d8                	mov    %eax,%ebx
416866:	8b cc                	mov    %esp,%ecx
416868:	8d 54 24 04          	lea    0x4(%esp),%edx
41686c:	8b c3                	mov    %ebx,%eax
41686e:	e8 a9 fe ff ff       	call   0x41671c
416873:	84 c0                	test   %al,%al
416875:	75 0a                	jne    0x416881
416877:	b8 57 00 07 80       	mov    $0x80070057,%eax
41687c:	e8 8b 91 ff ff       	call   0x40fa0c
416881:	8b 04 24             	mov    (%esp),%eax
416884:	59                   	pop    %ecx
416885:	5a                   	pop    %edx
416886:	5b                   	pop    %ebx
416887:	c3                   	ret
416888:	53                   	push   %ebx
416889:	83 c4 f8             	add    $0xfffffff8,%esp
41688c:	8b d8                	mov    %eax,%ebx
41688e:	8d 4c 24 04          	lea    0x4(%esp),%ecx
416892:	8b d4                	mov    %esp,%edx
416894:	8b c3                	mov    %ebx,%eax
416896:	e8 81 fe ff ff       	call   0x41671c
41689b:	84 c0                	test   %al,%al
41689d:	74 09                	je     0x4168a8
41689f:	8b 44 24 04          	mov    0x4(%esp),%eax
4168a3:	0f b7 00             	movzwl (%eax),%eax
4168a6:	eb 02                	jmp    0x4168aa
4168a8:	33 c0                	xor    %eax,%eax
4168aa:	59                   	pop    %ecx
4168ab:	5a                   	pop    %edx
4168ac:	5b                   	pop    %ebx
4168ad:	c3                   	ret
4168ae:	8b c0                	mov    %eax,%eax
4168b0:	53                   	push   %ebx
4168b1:	56                   	push   %esi
4168b2:	51                   	push   %ecx
4168b3:	8b f2                	mov    %edx,%esi
4168b5:	8b d8                	mov    %eax,%ebx
4168b7:	54                   	push   %esp
4168b8:	56                   	push   %esi
4168b9:	8b c3                	mov    %ebx,%eax
4168bb:	e8 a0 ff ff ff       	call   0x416860
4168c0:	50                   	push   %eax
4168c1:	e8 da 88 ff ff       	call   0x40f1a0
4168c6:	e8 41 91 ff ff       	call   0x40fa0c
4168cb:	8b 04 24             	mov    (%esp),%eax
4168ce:	5a                   	pop    %edx
4168cf:	5e                   	pop    %esi
4168d0:	5b                   	pop    %ebx
4168d1:	c3                   	ret
4168d2:	8b c0                	mov    %eax,%eax
4168d4:	53                   	push   %ebx
4168d5:	56                   	push   %esi
4168d6:	51                   	push   %ecx
4168d7:	8b f2                	mov    %edx,%esi
4168d9:	8b d8                	mov    %eax,%ebx
4168db:	54                   	push   %esp
4168dc:	56                   	push   %esi
4168dd:	8b c3                	mov    %ebx,%eax
4168df:	e8 7c ff ff ff       	call   0x416860
4168e4:	50                   	push   %eax
4168e5:	e8 be 88 ff ff       	call   0x40f1a8
4168ea:	e8 1d 91 ff ff       	call   0x40fa0c
4168ef:	8b 04 24             	mov    (%esp),%eax
4168f2:	5a                   	pop    %edx
4168f3:	5e                   	pop    %esi
4168f4:	5b                   	pop    %ebx
4168f5:	c3                   	ret
4168f6:	8b c0                	mov    %eax,%eax
4168f8:	b2 01                	mov    $0x1,%dl
4168fa:	e8 01 00 00 00       	call   0x416900
4168ff:	c3                   	ret
416900:	83 c4 f8             	add    $0xfffffff8,%esp
416903:	84 d2                	test   %dl,%dl
416905:	74 0e                	je     0x416915
416907:	8d 4c 24 04          	lea    0x4(%esp),%ecx
41690b:	8b d4                	mov    %esp,%edx
41690d:	e8 0a fe ff ff       	call   0x41671c
416912:	59                   	pop    %ecx
416913:	5a                   	pop    %edx
416914:	c3                   	ret
416915:	66 8b 00             	mov    (%eax),%ax
416918:	66 25 00 20          	and    $0x2000,%ax
41691c:	66 3d 00 20          	cmp    $0x2000,%ax
416920:	0f 94 c0             	sete   %al
416923:	59                   	pop    %ecx
416924:	5a                   	pop    %edx
416925:	c3                   	ret
416926:	8b c0                	mov    %eax,%eax
416928:	8b d0                	mov    %eax,%edx
41692a:	66 83 ea 16          	sub    $0x16,%dx
41692e:	73 12                	jae    0x416942
416930:	0f b7 c0             	movzwl %ax,%eax
416933:	8d 04 40             	lea    (%eax,%eax,2),%eax
416936:	8b 15 4c 70 6a 00    	mov    0x6a704c,%edx
41693c:	80 3c 82 00          	cmpb   $0x0,(%edx,%eax,4)
416940:	75 03                	jne    0x416945
416942:	33 c0                	xor    %eax,%eax
416944:	c3                   	ret
416945:	b0 01                	mov    $0x1,%al
416947:	c3                   	ret
416948:	53                   	push   %ebx
416949:	56                   	push   %esi
41694a:	8b d8                	mov    %eax,%ebx
41694c:	0f b7 f3             	movzwl %bx,%esi
41694f:	81 e6 ff bf ff ff    	and    $0xffffbfff,%esi
416955:	8b c6                	mov    %esi,%eax
416957:	83 e8 16             	sub    $0x16,%eax
41695a:	73 10                	jae    0x41696c
41695c:	8d 04 76             	lea    (%esi,%esi,2),%eax
41695f:	8b 15 4c 70 6a 00    	mov    0x6a704c,%edx
416965:	80 7c 82 01 00       	cmpb   $0x0,0x1(%edx,%eax,4)
41696a:	75 10                	jne    0x41697c
41696c:	8b c3                	mov    %ebx,%eax
41696e:	e8 55 fc ff ff       	call   0x4165c8
416973:	84 c0                	test   %al,%al
416975:	75 05                	jne    0x41697c
416977:	33 c0                	xor    %eax,%eax
416979:	5e                   	pop    %esi
41697a:	5b                   	pop    %ebx
41697b:	c3                   	ret
41697c:	b0 01                	mov    $0x1,%al
41697e:	5e                   	pop    %esi
41697f:	5b                   	pop    %ebx
416980:	c3                   	ret
416981:	8d 40 00             	lea    0x0(%eax),%eax
416984:	55                   	push   %ebp
416985:	8b ec                	mov    %esp,%ebp
416987:	83 c4 e4             	add    $0xffffffe4,%esp
41698a:	53                   	push   %ebx
41698b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
41698e:	8d 55 ee             	lea    -0x12(%ebp),%edx
416991:	8b 45 0c             	mov    0xc(%ebp),%eax
416994:	e8 83 fd ff ff       	call   0x41671c
416999:	84 c0                	test   %al,%al
41699b:	75 0a                	jne    0x4169a7
41699d:	b8 57 00 07 80       	mov    $0x80070057,%eax
4169a2:	e8 65 90 ff ff       	call   0x40fa0c
4169a7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4169aa:	0f b7 00             	movzwl (%eax),%eax
4169ad:	3b 45 10             	cmp    0x10(%ebp),%eax
4169b0:	74 0a                	je     0x4169bc
4169b2:	b8 0b 00 02 80       	mov    $0x8002000b,%eax
4169b7:	e8 50 90 ff ff       	call   0x40fa0c
4169bc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4169bf:	50                   	push   %eax
4169c0:	e8 53 87 ff ff       	call   0x40f118
4169c5:	33 c0                	xor    %eax,%eax
4169c7:	55                   	push   %ebp
4169c8:	68 44 6a 41 00       	push   $0x416a44
4169cd:	64 ff 30             	push   %fs:(%eax)
4169d0:	64 89 20             	mov    %esp,%fs:(%eax)
4169d3:	66 8b 5d ee          	mov    -0x12(%ebp),%bx
4169d7:	66 81 e3 ff 0f       	and    $0xfff,%bx
4169dc:	0f b7 db             	movzwl %bx,%ebx
4169df:	83 fb 0c             	cmp    $0xc,%ebx
4169e2:	75 25                	jne    0x416a09
4169e4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4169e7:	50                   	push   %eax
4169e8:	8d 45 14             	lea    0x14(%ebp),%eax
4169eb:	50                   	push   %eax
4169ec:	8b 45 e8             	mov    -0x18(%ebp),%eax
4169ef:	50                   	push   %eax
4169f0:	e8 cb 87 ff ff       	call   0x40f1c0
4169f5:	e8 12 90 ff ff       	call   0x40fa0c
4169fa:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4169fd:	8b d0                	mov    %eax,%edx
4169ff:	8d 45 f0             	lea    -0x10(%ebp),%eax
416a02:	e8 25 9a ff ff       	call   0x41042c
416a07:	eb 1a                	jmp    0x416a23
416a09:	8d 45 f8             	lea    -0x8(%ebp),%eax
416a0c:	50                   	push   %eax
416a0d:	8d 45 14             	lea    0x14(%ebp),%eax
416a10:	50                   	push   %eax
416a11:	8b 45 e8             	mov    -0x18(%ebp),%eax
416a14:	50                   	push   %eax
416a15:	e8 96 87 ff ff       	call   0x40f1b0
416a1a:	e8 ed 8f ff ff       	call   0x40fa0c
416a1f:	66 89 5d f0          	mov    %bx,-0x10(%ebp)
416a23:	8d 55 f0             	lea    -0x10(%ebp),%edx
416a26:	8b 45 08             	mov    0x8(%ebp),%eax
416a29:	e8 fe 99 ff ff       	call   0x41042c
416a2e:	33 c0                	xor    %eax,%eax
416a30:	5a                   	pop    %edx
416a31:	59                   	pop    %ecx
416a32:	59                   	pop    %ecx
416a33:	64 89 10             	mov    %edx,%fs:(%eax)
416a36:	68 4b 6a 41 00       	push   $0x416a4b
416a3b:	8d 45 f0             	lea    -0x10(%ebp),%eax
416a3e:	e8 a5 95 ff ff       	call   0x40ffe8
416a43:	c3                   	ret
416a44:	e9 c3 d7 fe ff       	jmp    0x40420c
416a49:	eb f0                	jmp    0x416a3b
416a4b:	5b                   	pop    %ebx
416a4c:	8b e5                	mov    %ebp,%esp
416a4e:	5d                   	pop    %ebp
416a4f:	c3                   	ret
416a50:	55                   	push   %ebp
416a51:	8b ec                	mov    %esp,%ebp
416a53:	53                   	push   %ebx
416a54:	89 cb                	mov    %ecx,%ebx
416a56:	43                   	inc    %ebx
416a57:	7e 06                	jle    0x416a5f
416a59:	ff 34 8a             	push   (%edx,%ecx,4)
416a5c:	49                   	dec    %ecx
416a5d:	79 fa                	jns    0x416a59
416a5f:	53                   	push   %ebx
416a60:	50                   	push   %eax
416a61:	8b 45 08             	mov    0x8(%ebp),%eax
416a64:	50                   	push   %eax
416a65:	e8 1a ff ff ff       	call   0x416984
416a6a:	8d 64 9c 0c          	lea    0xc(%esp,%ebx,4),%esp
416a6e:	5b                   	pop    %ebx
416a6f:	5d                   	pop    %ebp
416a70:	c2 04 00             	ret    $0x4
416a73:	90                   	nop
416a74:	55                   	push   %ebp
416a75:	8b ec                	mov    %esp,%ebp
416a77:	83 c4 dc             	add    $0xffffffdc,%esp
416a7a:	53                   	push   %ebx
416a7b:	56                   	push   %esi
416a7c:	8b 75 0c             	mov    0xc(%ebp),%esi
416a7f:	8d 4d e8             	lea    -0x18(%ebp),%ecx
416a82:	8d 55 ee             	lea    -0x12(%ebp),%edx
416a85:	8b 45 08             	mov    0x8(%ebp),%eax
416a88:	e8 8f fc ff ff       	call   0x41671c
416a8d:	84 c0                	test   %al,%al
416a8f:	75 0a                	jne    0x416a9b
416a91:	b8 57 00 07 80       	mov    $0x80070057,%eax
416a96:	e8 71 8f ff ff       	call   0x40fa0c
416a9b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
416a9e:	8d 55 e6             	lea    -0x1a(%ebp),%edx
416aa1:	8b c6                	mov    %esi,%eax
416aa3:	e8 74 fc ff ff       	call   0x41671c
416aa8:	84 c0                	test   %al,%al
416aaa:	75 1f                	jne    0x416acb
416aac:	66 8b 45 e6          	mov    -0x1a(%ebp),%ax
416ab0:	e8 93 fe ff ff       	call   0x416948
416ab5:	84 c0                	test   %al,%al
416ab7:	75 12                	jne    0x416acb
416ab9:	66 81 7d e6 00 01    	cmpw   $0x100,-0x1a(%ebp)
416abf:	74 0a                	je     0x416acb
416ac1:	b8 05 00 02 80       	mov    $0x80020005,%eax
416ac6:	e8 41 8f ff ff       	call   0x40fa0c
416acb:	8b 45 e8             	mov    -0x18(%ebp),%eax
416ace:	0f b7 00             	movzwl (%eax),%eax
416ad1:	3b 45 10             	cmp    0x10(%ebp),%eax
416ad4:	74 0a                	je     0x416ae0
416ad6:	b8 0b 00 02 80       	mov    $0x8002000b,%eax
416adb:	e8 2c 8f ff ff       	call   0x40fa0c
416ae0:	66 8b 5d ee          	mov    -0x12(%ebp),%bx
416ae4:	66 81 e3 ff 0f       	and    $0xfff,%bx
416ae9:	0f b7 db             	movzwl %bx,%ebx