4156d9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4156da:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4156db:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4156dc:	5e                   	pop    %esi
4156dd:	8b c6                	mov    %esi,%eax
4156df:	e8 24 fe ff ff       	call   0x415508
4156e4:	56                   	push   %esi
4156e5:	8b f0                	mov    %eax,%esi
4156e7:	8d 7c 24 14          	lea    0x14(%esp),%edi
4156eb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4156ec:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4156ed:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4156ee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4156ef:	5e                   	pop    %esi
4156f0:	66 8b 04 24          	mov    (%esp),%ax
4156f4:	66 85 c0             	test   %ax,%ax
4156f7:	75 0b                	jne    0x415704
4156f9:	66 83 7c 24 10 00    	cmpw   $0x0,0x10(%esp)
4156ff:	0f 94 c0             	sete   %al
415702:	eb 2c                	jmp    0x415730
415704:	66 83 f8 01          	cmp    $0x1,%ax
415708:	75 0b                	jne    0x415715
41570a:	66 83 7c 24 10 01    	cmpw   $0x1,0x10(%esp)
415710:	0f 94 c0             	sete   %al
415713:	eb 1b                	jmp    0x415730
415715:	66 8b 44 24 10       	mov    0x10(%esp),%ax
41571a:	66 83 e8 02          	sub    $0x2,%ax
41571e:	73 04                	jae    0x415724
415720:	33 c0                	xor    %eax,%eax
415722:	eb 0c                	jmp    0x415730
415724:	8b c3                	mov    %ebx,%eax
415726:	8b d6                	mov    %esi,%edx
415728:	e8 1f 1b 00 00       	call   0x41724c
41572d:	0f 94 c0             	sete   %al
415730:	83 c4 20             	add    $0x20,%esp
415733:	5f                   	pop    %edi
415734:	5e                   	pop    %esi
415735:	5b                   	pop    %ebx
415736:	c3                   	ret
415737:	90                   	nop
415738:	53                   	push   %ebx
415739:	56                   	push   %esi
41573a:	8b f2                	mov    %edx,%esi
41573c:	8b d8                	mov    %eax,%ebx
41573e:	8b c3                	mov    %ebx,%eax
415740:	e8 17 a8 ff ff       	call   0x40ff5c
415745:	66 c7 03 0a 00       	movw   $0xa,(%ebx)
41574a:	89 73 08             	mov    %esi,0x8(%ebx)
41574d:	5e                   	pop    %esi
41574e:	5b                   	pop    %ebx
41574f:	c3                   	ret
415750:	ba 04 00 02 80       	mov    $0x80020004,%edx
415755:	e8 de ff ff ff       	call   0x415738
41575a:	c3                   	ret
41575b:	90                   	nop
41575c:	53                   	push   %ebx
41575d:	66 8b 18             	mov    (%eax),%bx
415760:	66 81 fb 0c 40       	cmp    $0x400c,%bx
415765:	75 0c                	jne    0x415773
415767:	8b 40 08             	mov    0x8(%eax),%eax
41576a:	e8 ed ff ff ff       	call   0x41575c
41576f:	8b d8                	mov    %eax,%ebx
415771:	eb 28                	jmp    0x41579b
415773:	66 89 1a             	mov    %bx,(%edx)
415776:	f6 42 01 20          	testb  $0x20,0x1(%edx)
41577a:	0f 95 c3             	setne  %bl
41577d:	84 db                	test   %bl,%bl
41577f:	74 16                	je     0x415797
415781:	f6 42 01 40          	testb  $0x40,0x1(%edx)
415785:	74 09                	je     0x415790
415787:	8b 40 08             	mov    0x8(%eax),%eax
41578a:	8b 00                	mov    (%eax),%eax
41578c:	89 01                	mov    %eax,(%ecx)
41578e:	eb 0b                	jmp    0x41579b
415790:	8b 40 08             	mov    0x8(%eax),%eax
415793:	89 01                	mov    %eax,(%ecx)
415795:	eb 04                	jmp    0x41579b
415797:	33 c0                	xor    %eax,%eax
415799:	89 01                	mov    %eax,(%ecx)
41579b:	8b c3                	mov    %ebx,%eax
41579d:	5b                   	pop    %ebx
41579e:	c3                   	ret
41579f:	90                   	nop
4157a0:	55                   	push   %ebp
4157a1:	8b ec                	mov    %esp,%ebp
4157a3:	81 c4 f8 fd ff ff    	add    $0xfffffdf8,%esp
4157a9:	53                   	push   %ebx
4157aa:	56                   	push   %esi
4157ab:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
4157af:	8b da                	mov    %edx,%ebx
4157b1:	8b f0                	mov    %eax,%esi
4157b3:	f6 c3 01             	test   $0x1,%bl
4157b6:	74 12                	je     0x4157ca
4157b8:	83 fb 7f             	cmp    $0x7f,%ebx
4157bb:	7f 0d                	jg     0x4157ca
4157bd:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
4157c1:	e8 82 01 00 00       	call   0x415948
4157c6:	84 c0                	test   %al,%al
4157c8:	75 05                	jne    0x4157cf
4157ca:	e8 35 a1 ff ff       	call   0x40f904
4157cf:	43                   	inc    %ebx
4157d0:	d1 fb                	sar    $1,%ebx
4157d2:	79 03                	jns    0x4157d7
4157d4:	83 d3 00             	adc    $0x0,%ebx
4157d7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4157da:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4157dd:	4b                   	dec    %ebx
4157de:	85 db                	test   %ebx,%ebx
4157e0:	7c 22                	jl     0x415804
4157e2:	43                   	inc    %ebx
4157e3:	8d 95 f8 fd ff ff    	lea    -0x208(%ebp),%edx
4157e9:	8b c6                	mov    %esi,%eax
4157eb:	8b ca                	mov    %edx,%ecx
4157ed:	8b 30                	mov    (%eax),%esi
4157ef:	89 71 04             	mov    %esi,0x4(%ecx)
4157f2:	8b 70 04             	mov    0x4(%eax),%esi
4157f5:	2b 71 04             	sub    0x4(%ecx),%esi
4157f8:	46                   	inc    %esi
4157f9:	89 31                	mov    %esi,(%ecx)
4157fb:	83 c0 08             	add    $0x8,%eax
4157fe:	83 c2 08             	add    $0x8,%edx
415801:	4b                   	dec    %ebx
415802:	75 e7                	jne    0x4157eb
415804:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
41580a:	50                   	push   %eax
41580b:	8b 45 f8             	mov    -0x8(%ebp),%eax
41580e:	50                   	push   %eax
41580f:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
415813:	50                   	push   %eax
415814:	e8 4b 93 ff ff       	call   0x40eb64
415819:	8b d8                	mov    %eax,%ebx
41581b:	85 db                	test   %ebx,%ebx
41581d:	75 05                	jne    0x415824
41581f:	e8 e0 a0 ff ff       	call   0x40f904
415824:	8b 45 08             	mov    0x8(%ebp),%eax
415827:	e8 30 a7 ff ff       	call   0x40ff5c
41582c:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
415830:	66 0d 00 20          	or     $0x2000,%ax
415834:	8b 55 08             	mov    0x8(%ebp),%edx
415837:	66 89 02             	mov    %ax,(%edx)
41583a:	8b 45 08             	mov    0x8(%ebp),%eax
41583d:	89 58 08             	mov    %ebx,0x8(%eax)
415840:	5e                   	pop    %esi
415841:	5b                   	pop    %ebx
415842:	8b e5                	mov    %ebp,%esp
415844:	5d                   	pop    %ebp
415845:	c2 04 00             	ret    $0x4
415848:	53                   	push   %ebx
415849:	83 c4 f8             	add    $0xfffffff8,%esp
41584c:	8b d8                	mov    %eax,%ebx
41584e:	8b cc                	mov    %esp,%ecx
415850:	8d 54 24 04          	lea    0x4(%esp),%edx
415854:	8b c3                	mov    %ebx,%eax
415856:	e8 01 ff ff ff       	call   0x41575c
41585b:	84 c0                	test   %al,%al
41585d:	75 0a                	jne    0x415869
41585f:	b8 57 00 07 80       	mov    $0x80070057,%eax
415864:	e8 43 a3 ff ff       	call   0x40fbac
415869:	8b 04 24             	mov    (%esp),%eax
41586c:	59                   	pop    %ecx
41586d:	5a                   	pop    %edx
41586e:	5b                   	pop    %ebx
41586f:	c3                   	ret
415870:	53                   	push   %ebx
415871:	83 c4 f8             	add    $0xfffffff8,%esp
415874:	8b d8                	mov    %eax,%ebx
415876:	8d 4c 24 04          	lea    0x4(%esp),%ecx
41587a:	8b d4                	mov    %esp,%edx
41587c:	8b c3                	mov    %ebx,%eax
41587e:	e8 d9 fe ff ff       	call   0x41575c
415883:	84 c0                	test   %al,%al
415885:	74 09                	je     0x415890
415887:	8b 44 24 04          	mov    0x4(%esp),%eax
41588b:	0f b7 00             	movzwl (%eax),%eax
41588e:	eb 02                	jmp    0x415892
415890:	33 c0                	xor    %eax,%eax
415892:	59                   	pop    %ecx
415893:	5a                   	pop    %edx
415894:	5b                   	pop    %ebx
415895:	c3                   	ret
415896:	8b c0                	mov    %eax,%eax
415898:	53                   	push   %ebx
415899:	56                   	push   %esi
41589a:	51                   	push   %ecx
41589b:	8b f2                	mov    %edx,%esi
41589d:	8b d8                	mov    %eax,%ebx
41589f:	54                   	push   %esp
4158a0:	56                   	push   %esi
4158a1:	8b c3                	mov    %ebx,%eax
4158a3:	e8 a0 ff ff ff       	call   0x415848
4158a8:	50                   	push   %eax
4158a9:	e8 be 92 ff ff       	call   0x40eb6c
4158ae:	e8 f9 a2 ff ff       	call   0x40fbac
4158b3:	8b 04 24             	mov    (%esp),%eax
4158b6:	5a                   	pop    %edx
4158b7:	5e                   	pop    %esi
4158b8:	5b                   	pop    %ebx
4158b9:	c3                   	ret
4158ba:	8b c0                	mov    %eax,%eax
4158bc:	53                   	push   %ebx
4158bd:	56                   	push   %esi
4158be:	51                   	push   %ecx
4158bf:	8b f2                	mov    %edx,%esi
4158c1:	8b d8                	mov    %eax,%ebx
4158c3:	54                   	push   %esp
4158c4:	56                   	push   %esi
4158c5:	8b c3                	mov    %ebx,%eax
4158c7:	e8 7c ff ff ff       	call   0x415848
4158cc:	50                   	push   %eax
4158cd:	e8 a2 92 ff ff       	call   0x40eb74
4158d2:	e8 d5 a2 ff ff       	call   0x40fbac
4158d7:	8b 04 24             	mov    (%esp),%eax
4158da:	5a                   	pop    %edx
4158db:	5e                   	pop    %esi
4158dc:	5b                   	pop    %ebx
4158dd:	c3                   	ret
4158de:	8b c0                	mov    %eax,%eax
4158e0:	53                   	push   %ebx
4158e1:	51                   	push   %ecx
4158e2:	8b d8                	mov    %eax,%ebx
4158e4:	54                   	push   %esp
4158e5:	8b c3                	mov    %ebx,%eax
4158e7:	e8 5c ff ff ff       	call   0x415848
4158ec:	50                   	push   %eax
4158ed:	e8 8a 92 ff ff       	call   0x40eb7c
4158f2:	e8 b5 a2 ff ff       	call   0x40fbac
4158f7:	8b 04 24             	mov    (%esp),%eax
4158fa:	5a                   	pop    %edx
4158fb:	5b                   	pop    %ebx
4158fc:	c3                   	ret
4158fd:	8d 40 00             	lea    0x0(%eax),%eax
415900:	53                   	push   %ebx
415901:	8b d8                	mov    %eax,%ebx
415903:	8b c3                	mov    %ebx,%eax
415905:	e8 3e ff ff ff       	call   0x415848
41590a:	50                   	push   %eax
41590b:	e8 74 92 ff ff       	call   0x40eb84
415910:	e8 97 a2 ff ff       	call   0x40fbac
415915:	5b                   	pop    %ebx
415916:	c3                   	ret
415917:	90                   	nop
415918:	b2 01                	mov    $0x1,%dl
41591a:	e8 01 00 00 00       	call   0x415920
41591f:	c3                   	ret
415920:	83 c4 f8             	add    $0xfffffff8,%esp
415923:	84 d2                	test   %dl,%dl
415925:	74 0e                	je     0x415935
415927:	8d 4c 24 04          	lea    0x4(%esp),%ecx
41592b:	8b d4                	mov    %esp,%edx
41592d:	e8 2a fe ff ff       	call   0x41575c
415932:	59                   	pop    %ecx
415933:	5a                   	pop    %edx
415934:	c3                   	ret
415935:	66 8b 00             	mov    (%eax),%ax
415938:	66 25 00 20          	and    $0x2000,%ax
41593c:	66 3d 00 20          	cmp    $0x2000,%ax
415940:	0f 94 c0             	sete   %al
415943:	59                   	pop    %ecx
415944:	5a                   	pop    %edx
415945:	c3                   	ret
415946:	8b c0                	mov    %eax,%eax
415948:	8b d0                	mov    %eax,%edx
41594a:	66 83 ea 16          	sub    $0x16,%dx
41594e:	73 12                	jae    0x415962
415950:	0f b7 c0             	movzwl %ax,%eax
415953:	8d 04 40             	lea    (%eax,%eax,2),%eax
415956:	8b 15 5c b3 49 00    	mov    0x49b35c,%edx
41595c:	80 3c 82 00          	cmpb   $0x0,(%edx,%eax,4)
415960:	75 03                	jne    0x415965
415962:	33 c0                	xor    %eax,%eax
415964:	c3                   	ret
415965:	b0 01                	mov    $0x1,%al
415967:	c3                   	ret
415968:	53                   	push   %ebx
415969:	56                   	push   %esi
41596a:	8b d8                	mov    %eax,%ebx
41596c:	0f b7 f3             	movzwl %bx,%esi
41596f:	81 e6 ff bf ff ff    	and    $0xffffbfff,%esi
415975:	8b c6                	mov    %esi,%eax
415977:	83 e8 16             	sub    $0x16,%eax
41597a:	73 10                	jae    0x41598c
41597c:	8d 04 76             	lea    (%esi,%esi,2),%eax
41597f:	8b 15 5c b3 49 00    	mov    0x49b35c,%edx
415985:	80 7c 82 01 00       	cmpb   $0x0,0x1(%edx,%eax,4)
41598a:	75 10                	jne    0x41599c
41598c:	8b c3                	mov    %ebx,%eax
41598e:	e8 f9 fb ff ff       	call   0x41558c
415993:	84 c0                	test   %al,%al
415995:	75 05                	jne    0x41599c
415997:	33 c0                	xor    %eax,%eax
415999:	5e                   	pop    %esi
41599a:	5b                   	pop    %ebx
41599b:	c3                   	ret
41599c:	b0 01                	mov    $0x1,%al
41599e:	5e                   	pop    %esi
41599f:	5b                   	pop    %ebx
4159a0:	c3                   	ret
4159a1:	8d 40 00             	lea    0x0(%eax),%eax
4159a4:	55                   	push   %ebp
4159a5:	8b ec                	mov    %esp,%ebp
4159a7:	83 c4 e4             	add    $0xffffffe4,%esp
4159aa:	53                   	push   %ebx
4159ab:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4159ae:	8d 55 ee             	lea    -0x12(%ebp),%edx
4159b1:	8b 45 0c             	mov    0xc(%ebp),%eax
4159b4:	e8 a3 fd ff ff       	call   0x41575c
4159b9:	84 c0                	test   %al,%al
4159bb:	75 0a                	jne    0x4159c7
4159bd:	b8 57 00 07 80       	mov    $0x80070057,%eax
4159c2:	e8 e5 a1 ff ff       	call   0x40fbac
4159c7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4159ca:	0f b7 00             	movzwl (%eax),%eax
4159cd:	3b 45 10             	cmp    0x10(%ebp),%eax
4159d0:	74 0a                	je     0x4159dc
4159d2:	b8 0b 00 02 80       	mov    $0x8002000b,%eax
4159d7:	e8 d0 a1 ff ff       	call   0x40fbac
4159dc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4159df:	50                   	push   %eax
4159e0:	e8 13 8d ff ff       	call   0x40e6f8
4159e5:	33 c0                	xor    %eax,%eax
4159e7:	55                   	push   %ebp
4159e8:	68 64 5a 41 00       	push   $0x415a64
4159ed:	64 ff 30             	push   %fs:(%eax)
4159f0:	64 89 20             	mov    %esp,%fs:(%eax)
4159f3:	66 8b 5d ee          	mov    -0x12(%ebp),%bx
4159f7:	66 81 e3 ff 0f       	and    $0xfff,%bx
4159fc:	0f b7 db             	movzwl %bx,%ebx
4159ff:	83 fb 0c             	cmp    $0xc,%ebx
415a02:	75 25                	jne    0x415a29
415a04:	8d 45 e4             	lea    -0x1c(%ebp),%eax
415a07:	50                   	push   %eax
415a08:	8d 45 14             	lea    0x14(%ebp),%eax
415a0b:	50                   	push   %eax
415a0c:	8b 45 e8             	mov    -0x18(%ebp),%eax
415a0f:	50                   	push   %eax
415a10:	e8 87 91 ff ff       	call   0x40eb9c
415a15:	e8 92 a1 ff ff       	call   0x40fbac
415a1a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
415a1d:	8b d0                	mov    %eax,%edx
415a1f:	8d 45 f0             	lea    -0x10(%ebp),%eax
415a22:	e8 5d a8 ff ff       	call   0x410284
415a27:	eb 1a                	jmp    0x415a43
415a29:	8d 45 f8             	lea    -0x8(%ebp),%eax
415a2c:	50                   	push   %eax
415a2d:	8d 45 14             	lea    0x14(%ebp),%eax
415a30:	50                   	push   %eax
415a31:	8b 45 e8             	mov    -0x18(%ebp),%eax
415a34:	50                   	push   %eax
415a35:	e8 52 91 ff ff       	call   0x40eb8c
415a3a:	e8 6d a1 ff ff       	call   0x40fbac