4057a9:	8b 45 98             	mov    -0x68(%ebp),%eax
4057ac:	8b 4e 04             	mov    0x4(%esi),%ecx
4057af:	50                   	push   %eax
4057b0:	51                   	push   %ecx
4057b1:	53                   	push   %ebx
4057b2:	e8 a9 2b 01 00       	call   0x418360
4057b7:	83 c4 0c             	add    $0xc,%esp
4057ba:	e8 71 25 01 00       	call   0x417d30
4057bf:	89 43 14             	mov    %eax,0x14(%ebx)
4057c2:	e8 fc 5e 01 00       	call   0x41b6c3
4057c7:	2b 5e 04             	sub    0x4(%esi),%ebx
4057ca:	8d 54 18 02          	lea    0x2(%eax,%ebx,1),%edx
4057ce:	89 55 08             	mov    %edx,0x8(%ebp)
4057d1:	8b 45 08             	mov    0x8(%ebp),%eax
4057d4:	ff d0                	call   *%eax
4057d6:	5f                   	pop    %edi
4057d7:	5e                   	pop    %esi
4057d8:	33 c0                	xor    %eax,%eax
4057da:	5b                   	pop    %ebx
4057db:	8b e5                	mov    %ebp,%esp
4057dd:	5d                   	pop    %ebp
4057de:	c3                   	ret
4057df:	cc                   	int3
4057e0:	55                   	push   %ebp
4057e1:	8b ec                	mov    %esp,%ebp
4057e3:	56                   	push   %esi
4057e4:	8b 75 0c             	mov    0xc(%ebp),%esi
4057e7:	85 f6                	test   %esi,%esi
4057e9:	75 05                	jne    0x4057f0
4057eb:	33 c0                	xor    %eax,%eax
4057ed:	5e                   	pop    %esi
4057ee:	5d                   	pop    %ebp
4057ef:	c3                   	ret
4057f0:	57                   	push   %edi
4057f1:	8b 7d 08             	mov    0x8(%ebp),%edi
4057f4:	6a 04                	push   $0x4
4057f6:	68 00 10 00 00       	push   $0x1000
4057fb:	68 00 00 01 00       	push   $0x10000
405800:	6a 00                	push   $0x0
405802:	57                   	push   %edi
405803:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
405809:	c7 45 0c 00 00 01 00 	movl   $0x10000,0xc(%ebp)
405810:	e8 ab 2a 01 00       	call   0x4182c0
405815:	83 c4 14             	add    $0x14,%esp
405818:	89 06                	mov    %eax,(%esi)
40581a:	85 c0                	test   %eax,%eax
40581c:	74 5a                	je     0x405878
40581e:	8b ff                	mov    %edi,%edi
405820:	8b 45 0c             	mov    0xc(%ebp),%eax
405823:	8b 0e                	mov    (%esi),%ecx
405825:	6a 00                	push   $0x0
405827:	50                   	push   %eax
405828:	51                   	push   %ecx
405829:	6a 05                	push   $0x5
40582b:	57                   	push   %edi
40582c:	e8 ef 0e 01 00       	call   0x416720
405831:	83 c4 14             	add    $0x14,%esp
405834:	3d 04 00 00 c0       	cmp    $0xc0000004,%eax
405839:	75 43                	jne    0x40587e
40583b:	8b 07                	mov    (%edi),%eax
40583d:	68 00 80 00 00       	push   $0x8000
405842:	8d 55 0c             	lea    0xc(%ebp),%edx
405845:	52                   	push   %edx
405846:	56                   	push   %esi
405847:	50                   	push   %eax
405848:	57                   	push   %edi
405849:	e8 d2 15 01 00       	call   0x416e20
40584e:	8b 45 0c             	mov    0xc(%ebp),%eax
405851:	6a 04                	push   $0x4
405853:	05 00 00 01 00       	add    $0x10000,%eax
405858:	68 00 10 00 00       	push   $0x1000
40585d:	50                   	push   %eax
40585e:	6a 00                	push   $0x0
405860:	57                   	push   %edi
405861:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
405867:	89 45 0c             	mov    %eax,0xc(%ebp)
40586a:	e8 51 2a 01 00       	call   0x4182c0
40586f:	83 c4 28             	add    $0x28,%esp
405872:	89 06                	mov    %eax,(%esi)
405874:	85 c0                	test   %eax,%eax
405876:	75 a8                	jne    0x405820
405878:	5f                   	pop    %edi
405879:	33 c0                	xor    %eax,%eax
40587b:	5e                   	pop    %esi
40587c:	5d                   	pop    %ebp
40587d:	c3                   	ret
40587e:	85 c0                	test   %eax,%eax
405880:	79 22                	jns    0x4058a4
405882:	8b 17                	mov    (%edi),%edx
405884:	68 00 80 00 00       	push   $0x8000
405889:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40588c:	51                   	push   %ecx
40588d:	56                   	push   %esi
40588e:	52                   	push   %edx
40588f:	57                   	push   %edi
405890:	e8 8b 15 01 00       	call   0x416e20
405895:	83 c4 14             	add    $0x14,%esp
405898:	5f                   	pop    %edi
405899:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40589f:	33 c0                	xor    %eax,%eax
4058a1:	5e                   	pop    %esi
4058a2:	5d                   	pop    %ebp
4058a3:	c3                   	ret
4058a4:	8b 06                	mov    (%esi),%eax
4058a6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4058a9:	89 46 0c             	mov    %eax,0xc(%esi)
4058ac:	5f                   	pop    %edi
4058ad:	89 4e 04             	mov    %ecx,0x4(%esi)
4058b0:	b8 01 00 00 00       	mov    $0x1,%eax
4058b5:	5e                   	pop    %esi
4058b6:	5d                   	pop    %ebp
4058b7:	c3                   	ret
4058b8:	b2 9e                	mov    $0x9e,%dl
4058ba:	de 04 0d f2 f4 c9 55 	fiadds 0x55c9f4f2(,%ecx,1)
4058c1:	8b ec                	mov    %esp,%ebp
4058c3:	83 ec 14             	sub    $0x14,%esp
4058c6:	56                   	push   %esi
4058c7:	8b 75 0c             	mov    0xc(%ebp),%esi
4058ca:	33 d2                	xor    %edx,%edx
4058cc:	68 2c 02 00 00       	push   $0x22c
4058d1:	56                   	push   %esi
4058d2:	c7 45 ec 5b 00 53 00 	movl   $0x53005b,-0x14(%ebp)
4058d9:	c7 45 f0 79 00 73 00 	movl   $0x730079,-0x10(%ebp)
4058e0:	c7 45 f4 74 00 65 00 	movl   $0x650074,-0xc(%ebp)
4058e7:	c7 45 f8 6d 00 5d 00 	movl   $0x5d006d,-0x8(%ebp)
4058ee:	66 89 55 fc          	mov    %dx,-0x4(%ebp)
4058f2:	e8 99 2a 01 00       	call   0x418390
4058f7:	8b 45 08             	mov    0x8(%ebp),%eax
4058fa:	33 c9                	xor    %ecx,%ecx
4058fc:	c7 06 2c 02 00 00    	movl   $0x22c,(%esi)
405902:	89 4e 04             	mov    %ecx,0x4(%esi)
405905:	8b 50 44             	mov    0x44(%eax),%edx
405908:	89 56 08             	mov    %edx,0x8(%esi)
40590b:	89 4e 0c             	mov    %ecx,0xc(%esi)
40590e:	89 4e 10             	mov    %ecx,0x10(%esi)
405911:	8b 50 04             	mov    0x4(%eax),%edx
405914:	89 56 14             	mov    %edx,0x14(%esi)
405917:	8b 50 48             	mov    0x48(%eax),%edx
40591a:	89 56 18             	mov    %edx,0x18(%esi)
40591d:	8b 50 40             	mov    0x40(%eax),%edx
405920:	89 56 1c             	mov    %edx,0x1c(%esi)
405923:	89 4e 20             	mov    %ecx,0x20(%esi)
405926:	8b 50 3c             	mov    0x3c(%eax),%edx
405929:	83 c4 08             	add    $0x8,%esp
40592c:	3b d1                	cmp    %ecx,%edx
40592e:	74 35                	je     0x405965
405930:	0f b7 40 38          	movzwl 0x38(%eax),%eax
405934:	b9 06 02 00 00       	mov    $0x206,%ecx
405939:	57                   	push   %edi
40593a:	8b f8                	mov    %eax,%edi
40593c:	66 3b c1             	cmp    %cx,%ax
40593f:	72 02                	jb     0x405943
405941:	8b f9                	mov    %ecx,%edi
405943:	57                   	push   %edi
405944:	52                   	push   %edx
405945:	8d 56 24             	lea    0x24(%esi),%edx
405948:	52                   	push   %edx
405949:	e8 12 2a 01 00       	call   0x418360
40594e:	83 c4 0c             	add    $0xc,%esp
405951:	d1 ef                	shr    $1,%edi
405953:	33 c0                	xor    %eax,%eax
405955:	66 89 44 7e 24       	mov    %ax,0x24(%esi,%edi,2)
40595a:	5f                   	pop    %edi
40595b:	b8 01 00 00 00       	mov    $0x1,%eax
405960:	5e                   	pop    %esi
405961:	8b e5                	mov    %ebp,%esp
405963:	5d                   	pop    %ebp
405964:	c3                   	ret
405965:	8d 4d ec             	lea    -0x14(%ebp),%ecx
405968:	51                   	push   %ecx
405969:	e8 e2 2c 01 00       	call   0x418650
40596e:	8d 14 40             	lea    (%eax,%eax,2),%edx
405971:	52                   	push   %edx
405972:	8d 45 ec             	lea    -0x14(%ebp),%eax
405975:	50                   	push   %eax
405976:	83 c6 24             	add    $0x24,%esi
405979:	56                   	push   %esi
40597a:	e8 e1 29 01 00       	call   0x418360
40597f:	83 c4 10             	add    $0x10,%esp
405982:	b8 01 00 00 00       	mov    $0x1,%eax
405987:	5e                   	pop    %esi
405988:	8b e5                	mov    %ebp,%esp
40598a:	5d                   	pop    %ebp
40598b:	c3                   	ret
40598c:	ec                   	in     (%dx),%al
40598d:	13 9b fd 55 8b ec    	adc    -0x1374aa03(%ebx),%ebx
405993:	8b 45 10             	mov    0x10(%ebp),%eax
405996:	8b 4d 08             	mov    0x8(%ebp),%ecx
405999:	56                   	push   %esi
40599a:	8b 75 0c             	mov    0xc(%ebp),%esi
40599d:	57                   	push   %edi
40599e:	c1 e0 06             	shl    $0x6,%eax
4059a1:	6a 1c                	push   $0x1c
4059a3:	56                   	push   %esi
4059a4:	8d bc 08 b8 00 00 00 	lea    0xb8(%eax,%ecx,1),%edi
4059ab:	e8 e0 29 01 00       	call   0x418390
4059b0:	c7 06 1c 00 00 00    	movl   $0x1c,(%esi)
4059b6:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
4059bd:	8b 57 24             	mov    0x24(%edi),%edx
4059c0:	89 56 08             	mov    %edx,0x8(%esi)
4059c3:	8b 47 20             	mov    0x20(%edi),%eax
4059c6:	89 46 0c             	mov    %eax,0xc(%esi)
4059c9:	8b 4f 2c             	mov    0x2c(%edi),%ecx
4059cc:	89 4e 10             	mov    %ecx,0x10(%esi)
4059cf:	8b 57 34             	mov    0x34(%edi),%edx
4059d2:	83 c4 08             	add    $0x8,%esp
4059d5:	89 56 14             	mov    %edx,0x14(%esi)
4059d8:	8b 47 38             	mov    0x38(%edi),%eax
4059db:	89 46 18             	mov    %eax,0x18(%esi)
4059de:	5f                   	pop    %edi
4059df:	b8 01 00 00 00       	mov    $0x1,%eax
4059e4:	5e                   	pop    %esi
4059e5:	5d                   	pop    %ebp
4059e6:	c3                   	ret
4059e7:	18 75 00             	sbb    %dh,0x0(%ebp)
4059ea:	66 52                	push   %dx
4059ec:	a7                   	cmpsl  %es:(%edi),%ds:(%esi)
4059ed:	0d 9b e7 55 8b       	or     $0x8b55e79b,%eax
4059f2:	ec                   	in     (%dx),%al
4059f3:	8b 55 0c             	mov    0xc(%ebp),%edx
4059f6:	85 d2                	test   %edx,%edx
4059f8:	74 1f                	je     0x405a19
4059fa:	8b 45 08             	mov    0x8(%ebp),%eax
4059fd:	85 c0                	test   %eax,%eax
4059ff:	74 18                	je     0x405a19
405a01:	8b 08                	mov    (%eax),%ecx
405a03:	52                   	push   %edx
405a04:	51                   	push   %ecx
405a05:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
405a0c:	89 48 0c             	mov    %ecx,0xc(%eax)
405a0f:	e8 ac fe ff ff       	call   0x4058c0
405a14:	83 c4 08             	add    $0x8,%esp
405a17:	5d                   	pop    %ebp
405a18:	c3                   	ret
405a19:	33 c0                	xor    %eax,%eax
405a1b:	5d                   	pop    %ebp
405a1c:	c3                   	ret
405a1d:	91                   	xchg   %eax,%ecx
405a1e:	97                   	xchg   %eax,%edi
405a1f:	66 55                	push   %bp
405a21:	8b ec                	mov    %esp,%ebp
405a23:	8b 55 0c             	mov    0xc(%ebp),%edx
405a26:	85 d2                	test   %edx,%edx
405a28:	74 29                	je     0x405a53
405a2a:	8b 45 08             	mov    0x8(%ebp),%eax
405a2d:	85 c0                	test   %eax,%eax
405a2f:	74 22                	je     0x405a53
405a31:	8b 48 0c             	mov    0xc(%eax),%ecx
405a34:	8b 09                	mov    (%ecx),%ecx
405a36:	85 c9                	test   %ecx,%ecx
405a38:	74 19                	je     0x405a53
405a3a:	01 48 0c             	add    %ecx,0xc(%eax)
405a3d:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
405a44:	8b 40 0c             	mov    0xc(%eax),%eax
405a47:	52                   	push   %edx
405a48:	50                   	push   %eax
405a49:	e8 72 fe ff ff       	call   0x4058c0
405a4e:	83 c4 08             	add    $0x8,%esp
405a51:	5d                   	pop    %ebp
405a52:	c3                   	ret
405a53:	33 c0                	xor    %eax,%eax
405a55:	5d                   	pop    %ebp
405a56:	c3                   	ret
405a57:	84 fa                	test   %bh,%dl
405a59:	d9 6d 4c             	fldcw  0x4c(%ebp)
405a5c:	4d                   	dec    %ebp
405a5d:	21 11                	and    %edx,(%ecx)
405a5f:	28 55 8b             	sub    %dl,-0x75(%ebp)
405a62:	ec                   	in     (%dx),%al
405a63:	56                   	push   %esi
405a64:	8b 75 0c             	mov    0xc(%ebp),%esi
405a67:	85 f6                	test   %esi,%esi
405a69:	74 28                	je     0x405a93
405a6b:	8b 4d 08             	mov    0x8(%ebp),%ecx
405a6e:	85 c9                	test   %ecx,%ecx
405a70:	74 21                	je     0x405a93
405a72:	8b 51 0c             	mov    0xc(%ecx),%edx
405a75:	8b 41 08             	mov    0x8(%ecx),%eax
405a78:	3b 42 04             	cmp    0x4(%edx),%eax
405a7b:	73 16                	jae    0x405a93
405a7d:	57                   	push   %edi
405a7e:	50                   	push   %eax
405a7f:	8d 78 01             	lea    0x1(%eax),%edi
405a82:	56                   	push   %esi
405a83:	52                   	push   %edx
405a84:	89 79 08             	mov    %edi,0x8(%ecx)
405a87:	e8 04 ff ff ff       	call   0x405990
405a8c:	83 c4 0c             	add    $0xc,%esp
405a8f:	5f                   	pop    %edi
405a90:	5e                   	pop    %esi
405a91:	5d                   	pop    %ebp
405a92:	c3                   	ret
405a93:	33 c0                	xor    %eax,%eax
405a95:	5e                   	pop    %esi
405a96:	5d                   	pop    %ebp
405a97:	c3                   	ret
405a98:	9c                   	pushf
405a99:	c9                   	leave
405a9a:	97                   	xchg   %eax,%edi
405a9b:	5e                   	pop    %esi
405a9c:	e5 69                	in     $0x69,%eax
405a9e:	85 66 55             	test   %esp,0x55(%esi)
405aa1:	8b ec                	mov    %esp,%ebp
405aa3:	8b 45 08             	mov    0x8(%ebp),%eax
405aa6:	8b 08                	mov    (%eax),%ecx
405aa8:	56                   	push   %esi
405aa9:	8b 75 0c             	mov    0xc(%ebp),%esi
405aac:	57                   	push   %edi
405aad:	68 00 80 00 00       	push   $0x8000
405ab2:	8d 7e 04             	lea    0x4(%esi),%edi
405ab5:	57                   	push   %edi
405ab6:	56                   	push   %esi
405ab7:	51                   	push   %ecx
405ab8:	50                   	push   %eax
405ab9:	e8 62 13 01 00       	call   0x416e20
405abe:	83 c4 14             	add    $0x14,%esp
405ac1:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
405ac7:	5f                   	pop    %edi
405ac8:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
405ace:	5e                   	pop    %esi
405acf:	5d                   	pop    %ebp
405ad0:	c3                   	ret
405ad1:	94                   	xchg   %eax,%esp
405ad2:	4b                   	dec    %ebx
405ad3:	4f                   	dec    %edi
405ad4:	f9                   	stc
405ad5:	4a                   	dec    %edx
405ad6:	1f                   	pop    %ds
405ad7:	33 6a dd             	xor    -0x23(%edx),%ebp
405ada:	f0 62 39             	lock bound %edi,(%ecx)
405add:	a0 57 60 55 8b       	mov    0x8b556057,%al
405ae2:	ec                   	in     (%dx),%al
405ae3:	81 ec 08 02 00 00    	sub    $0x208,%esp
405ae9:	53                   	push   %ebx
405aea:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405aed:	85 db                	test   %ebx,%ebx
405aef:	0f 84 ea 00 00 00    	je     0x405bdf
405af5:	66 83 3b 00          	cmpw   $0x0,(%ebx)
405af9:	0f 84 e0 00 00 00    	je     0x405bdf
405aff:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
405b03:	0f 84 d6 00 00 00    	je     0x405bdf
405b09:	56                   	push   %esi
405b0a:	57                   	push   %edi
405b0b:	33 c0                	xor    %eax,%eax
405b0d:	68 06 02 00 00       	push   $0x206
405b12:	50                   	push   %eax
405b13:	8d 8d fa fd ff ff    	lea    -0x206(%ebp),%ecx
405b19:	51                   	push   %ecx
405b1a:	33 f6                	xor    %esi,%esi
405b1c:	66 89 85 f8 fd ff ff 	mov    %ax,-0x208(%ebp)