45d89f:	89 7d f8             	mov    %edi,-0x8(%ebp)
45d8a2:	e8 f3 ac fa ff       	call   0x40859a
45d8a7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45d8aa:	8b f0                	mov    %eax,%esi
45d8ac:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
45d8b2:	83 c1 fe             	add    $0xfffffffe,%ecx
45d8b5:	83 f9 17             	cmp    $0x17,%ecx
45d8b8:	0f 87 d8 00 00 00    	ja     0x45d996
45d8be:	0f b6 89 cb d9 45 00 	movzbl 0x45d9cb(%ecx),%ecx
45d8c5:	ff 24 8d 9f d9 45 00 	jmp    *0x45d99f(,%ecx,4)
45d8cc:	8b ce                	mov    %esi,%ecx
45d8ce:	e8 c6 ba fa ff       	call   0x409399
45d8d3:	0f b6 c8             	movzbl %al,%ecx
45d8d6:	f7 d9                	neg    %ecx
45d8d8:	1b c9                	sbb    %ecx,%ecx
45d8da:	8b 45 14             	mov    0x14(%ebp),%eax
45d8dd:	66 89 08             	mov    %cx,(%eax)
45d8e0:	e9 b1 00 00 00       	jmp    0x45d996
45d8e5:	39 7d 14             	cmp    %edi,0x14(%ebp)
45d8e8:	0f 84 a8 00 00 00    	je     0x45d996
45d8ee:	8b ce                	mov    %esi,%ecx
45d8f0:	e8 a2 c0 fa ff       	call   0x409997
45d8f5:	8b 46 08             	mov    0x8(%esi),%eax
45d8f8:	ff 30                	push   (%eax)
45d8fa:	ff 75 14             	push   0x14(%ebp)
45d8fd:	ff 15 14 f4 48 00    	call   *0x48f414
45d903:	e9 8e 00 00 00       	jmp    0x45d996
45d908:	56                   	push   %esi
45d909:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
45d90c:	e8 56 97 ff ff       	call   0x457067
45d911:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45d914:	50                   	push   %eax
45d915:	ff 75 14             	push   0x14(%ebp)
45d918:	ff 15 10 f4 48 00    	call   *0x48f410
45d91e:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45d921:	50                   	push   %eax
45d922:	ff 15 5c f4 48 00    	call   *0x48f45c
45d928:	eb 6c                	jmp    0x45d996
45d92a:	8b ce                	mov    %esi,%ecx
45d92c:	e8 6b c3 fa ff       	call   0x409c9c
45d931:	8b 4d 14             	mov    0x14(%ebp),%ecx
45d934:	89 01                	mov    %eax,(%ecx)
45d936:	eb 5e                	jmp    0x45d996
45d938:	8b ce                	mov    %esi,%ecx
45d93a:	e8 07 c4 fa ff       	call   0x409d46
45d93f:	8b 4d 14             	mov    0x14(%ebp),%ecx
45d942:	89 01                	mov    %eax,(%ecx)
45d944:	8b 45 14             	mov    0x14(%ebp),%eax
45d947:	89 50 04             	mov    %edx,0x4(%eax)
45d94a:	eb 4a                	jmp    0x45d996
45d94c:	8b ce                	mov    %esi,%ecx
45d94e:	e8 49 c3 fa ff       	call   0x409c9c
45d953:	8b 4d 14             	mov    0x14(%ebp),%ecx
45d956:	66 89 01             	mov    %ax,(%ecx)
45d959:	eb 3b                	jmp    0x45d996
45d95b:	8b ce                	mov    %esi,%ecx
45d95d:	e8 3a c3 fa ff       	call   0x409c9c
45d962:	0f b6 c8             	movzbl %al,%ecx
45d965:	e9 70 ff ff ff       	jmp    0x45d8da
45d96a:	8b ce                	mov    %esi,%ecx
45d96c:	e8 87 c3 fa ff       	call   0x409cf8
45d971:	8b 45 14             	mov    0x14(%ebp),%eax
45d974:	d9 18                	fstps  (%eax)
45d976:	eb 1e                	jmp    0x45d996
45d978:	8b ce                	mov    %esi,%ecx
45d97a:	e8 79 c3 fa ff       	call   0x409cf8
45d97f:	8b 45 14             	mov    0x14(%ebp),%eax
45d982:	dd 18                	fstpl  (%eax)
45d984:	eb 10                	jmp    0x45d996
45d986:	83 7e 0c 08          	cmpl   $0x8,0xc(%esi)
45d98a:	75 02                	jne    0x45d98e
45d98c:	8b 3e                	mov    (%esi),%edi
45d98e:	8b 45 14             	mov    0x14(%ebp),%eax
45d991:	8b 4f 08             	mov    0x8(%edi),%ecx
45d994:	89 08                	mov    %ecx,(%eax)
45d996:	5f                   	pop    %edi
45d997:	5e                   	pop    %esi
45d998:	8b e5                	mov    %ebp,%esp
45d99a:	5d                   	pop    %ebp
45d99b:	c2 14 00             	ret    $0x14
45d99e:	90                   	nop
45d99f:	4c                   	dec    %esp
45d9a0:	d9 45 00             	flds   0x0(%ebp)
45d9a3:	2a d9                	sub    %cl,%bl
45d9a5:	45                   	inc    %ebp
45d9a6:	00 6a d9             	add    %ch,-0x27(%edx)
45d9a9:	45                   	inc    %ebp
45d9aa:	00 78 d9             	add    %bh,-0x27(%eax)
45d9ad:	45                   	inc    %ebp
45d9ae:	00 e5                	add    %ah,%ch
45d9b0:	d8 45 00             	fadds  0x0(%ebp)
45d9b3:	86 d9                	xchg   %bl,%cl
45d9b5:	45                   	inc    %ebp
45d9b6:	00 cc                	add    %cl,%ah
45d9b8:	d8 45 00             	fadds  0x0(%ebp)
45d9bb:	08 d9                	or     %bl,%cl
45d9bd:	45                   	inc    %ebp
45d9be:	00 5b d9             	add    %bl,-0x27(%ebx)
45d9c1:	45                   	inc    %ebp
45d9c2:	00 38                	add    %bh,(%eax)
45d9c4:	d9 45 00             	flds   0x0(%ebp)
45d9c7:	96                   	xchg   %eax,%esi
45d9c8:	d9 45 00             	flds   0x0(%ebp)
45d9cb:	00 01                	add    %al,(%ecx)
45d9cd:	02 03                	add    (%ebx),%al
45d9cf:	0a 0a                	or     (%edx),%cl
45d9d1:	04 05                	add    $0x5,%al
45d9d3:	0a 06                	or     (%esi),%al
45d9d5:	07                   	pop    %es
45d9d6:	05 0a 0a 08 08       	add    $0x8080a0a,%eax
45d9db:	00 01                	add    %al,(%ecx)
45d9dd:	09 09                	or     %ecx,(%ecx)
45d9df:	01 01                	add    %eax,(%ecx)
45d9e1:	0a 01                	or     (%ecx),%al
45d9e3:	56                   	push   %esi
45d9e4:	8b f1                	mov    %ecx,%esi
45d9e6:	57                   	push   %edi
45d9e7:	8b 46 04             	mov    0x4(%esi),%eax
45d9ea:	8b c8                	mov    %eax,%ecx
45d9ec:	8b 78 10             	mov    0x10(%eax),%edi
45d9ef:	85 c9                	test   %ecx,%ecx
45d9f1:	74 06                	je     0x45d9f9
45d9f3:	51                   	push   %ecx
45d9f4:	e8 2a f5 ff ff       	call   0x45cf23
45d9f9:	ff 0e                	decl   (%esi)
45d9fb:	89 7e 04             	mov    %edi,0x4(%esi)
45d9fe:	85 ff                	test   %edi,%edi
45da00:	75 03                	jne    0x45da05
45da02:	21 7e 08             	and    %edi,0x8(%esi)
45da05:	5f                   	pop    %edi
45da06:	5e                   	pop    %esi
45da07:	c3                   	ret
45da08:	55                   	push   %ebp
45da09:	8b ec                	mov    %esp,%ebp
45da0b:	56                   	push   %esi
45da0c:	57                   	push   %edi
45da0d:	6a 14                	push   $0x14
45da0f:	8b f9                	mov    %ecx,%edi
45da11:	e8 e0 35 fc ff       	call   0x420ff6
45da16:	8b f0                	mov    %eax,%esi
45da18:	59                   	pop    %ecx
45da19:	85 f6                	test   %esi,%esi
45da1b:	74 14                	je     0x45da31
45da1d:	83 66 04 00          	andl   $0x0,0x4(%esi)
45da21:	83 66 08 00          	andl   $0x0,0x8(%esi)
45da25:	83 66 0c 00          	andl   $0x0,0xc(%esi)
45da29:	c7 06 84 fb 48 00    	movl   $0x48fb84,(%esi)
45da2f:	eb 02                	jmp    0x45da33
45da31:	33 f6                	xor    %esi,%esi
45da33:	ff 75 08             	push   0x8(%ebp)
45da36:	83 66 10 00          	andl   $0x0,0x10(%esi)
45da3a:	8b ce                	mov    %esi,%ecx
45da3c:	e8 43 f4 ff ff       	call   0x45ce84
45da41:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
45da45:	74 08                	je     0x45da4f
45da47:	8b 47 08             	mov    0x8(%edi),%eax
45da4a:	89 70 10             	mov    %esi,0x10(%eax)
45da4d:	eb 03                	jmp    0x45da52
45da4f:	89 77 04             	mov    %esi,0x4(%edi)
45da52:	ff 07                	incl   (%edi)
45da54:	89 77 08             	mov    %esi,0x8(%edi)
45da57:	5f                   	pop    %edi
45da58:	5e                   	pop    %esi
45da59:	5d                   	pop    %ebp
45da5a:	c2 04 00             	ret    $0x4
45da5d:	55                   	push   %ebp
45da5e:	8b ec                	mov    %esp,%ebp
45da60:	51                   	push   %ecx
45da61:	51                   	push   %ecx
45da62:	53                   	push   %ebx
45da63:	56                   	push   %esi
45da64:	8b d9                	mov    %ecx,%ebx
45da66:	33 c0                	xor    %eax,%eax
45da68:	57                   	push   %edi
45da69:	b9 2c 2c 49 00       	mov    $0x492c2c,%ecx
45da6e:	8b f1                	mov    %ecx,%esi
45da70:	c7 03 88 9a 4b 00    	movl   $0x4b9a88,(%ebx)
45da76:	8d 7b 18             	lea    0x18(%ebx),%edi
45da79:	89 43 04             	mov    %eax,0x4(%ebx)
45da7c:	89 43 08             	mov    %eax,0x8(%ebx)
45da7f:	89 43 0c             	mov    %eax,0xc(%ebx)
45da82:	89 43 10             	mov    %eax,0x10(%ebx)
45da85:	89 43 14             	mov    %eax,0x14(%ebx)
45da88:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da89:	ff 75 0c             	push   0xc(%ebp)
45da8c:	ff 75 08             	push   0x8(%ebp)
45da8f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da90:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da91:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da92:	8b f1                	mov    %ecx,%esi
45da94:	8d 7b 28             	lea    0x28(%ebx),%edi
45da97:	8b cb                	mov    %ebx,%ecx
45da99:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da9a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da9b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da9c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45da9d:	c7 43 38 01 00 00 00 	movl   $0x1,0x38(%ebx)
45daa4:	e8 77 01 00 00       	call   0x45dc20
45daa9:	85 c0                	test   %eax,%eax
45daab:	0f 88 ec 00 00 00    	js     0x45db9d
45dab1:	8d 45 fc             	lea    -0x4(%ebp),%eax
45dab4:	33 f6                	xor    %esi,%esi
45dab6:	50                   	push   %eax
45dab7:	8d 43 28             	lea    0x28(%ebx),%eax
45daba:	89 75 fc             	mov    %esi,-0x4(%ebp)
45dabd:	50                   	push   %eax
45dabe:	6a 05                	push   $0x5
45dac0:	56                   	push   %esi
45dac1:	8d 43 18             	lea    0x18(%ebx),%eax
45dac4:	50                   	push   %eax
45dac5:	ff 15 48 f8 48 00    	call   *0x48f848
45dacb:	85 c0                	test   %eax,%eax
45dacd:	78 1f                	js     0x45daee
45dacf:	ff 75 fc             	push   -0x4(%ebp)
45dad2:	8b cb                	mov    %ebx,%ecx
45dad4:	e8 e8 01 00 00       	call   0x45dcc1
45dad9:	39 73 08             	cmp    %esi,0x8(%ebx)
45dadc:	0f 85 bb 00 00 00    	jne    0x45db9d
45dae2:	c7 43 04 02 40 00 80 	movl   $0x80004002,0x4(%ebx)
45dae9:	e9 af 00 00 00       	jmp    0x45db9d
45daee:	8b 7d 10             	mov    0x10(%ebp),%edi
45daf1:	85 ff                	test   %edi,%edi
45daf3:	0f 84 9d 00 00 00    	je     0x45db96
45daf9:	6a 01                	push   $0x1
45dafb:	ff 15 a4 f1 48 00    	call   *0x48f1a4
45db01:	68 74 9a 4b 00       	push   $0x4b9a74
45db06:	57                   	push   %edi
45db07:	8b f0                	mov    %eax,%esi
45db09:	89 7b 10             	mov    %edi,0x10(%ebx)
45db0c:	ff 15 a0 f1 48 00    	call   *0x48f1a0
45db12:	8b f8                	mov    %eax,%edi
45db14:	85 ff                	test   %edi,%edi
45db16:	74 6e                	je     0x45db86
45db18:	8b cb                	mov    %ebx,%ecx
45db1a:	e8 03 02 00 00       	call   0x45dd22
45db1f:	85 c0                	test   %eax,%eax
45db21:	78 6a                	js     0x45db8d
45db23:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
45db27:	8d 45 f8             	lea    -0x8(%ebp),%eax
45db2a:	50                   	push   %eax
45db2b:	68 fc 2b 49 00       	push   $0x492bfc
45db30:	8d 43 18             	lea    0x18(%ebx),%eax
45db33:	50                   	push   %eax
45db34:	ff d7                	call   *%edi
45db36:	85 c0                	test   %eax,%eax
45db38:	78 43                	js     0x45db7d
45db3a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45db3d:	85 c9                	test   %ecx,%ecx
45db3f:	74 3c                	je     0x45db7d
45db41:	8b 01                	mov    (%ecx),%eax
45db43:	8d 55 fc             	lea    -0x4(%ebp),%edx
45db46:	52                   	push   %edx
45db47:	8d 53 28             	lea    0x28(%ebx),%edx
45db4a:	52                   	push   %edx
45db4b:	6a 00                	push   $0x0
45db4d:	51                   	push   %ecx
45db4e:	ff 50 0c             	call   *0xc(%eax)
45db51:	85 c0                	test   %eax,%eax
45db53:	78 10                	js     0x45db65
45db55:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
45db59:	74 0a                	je     0x45db65
45db5b:	ff 75 fc             	push   -0x4(%ebp)
45db5e:	8b cb                	mov    %ebx,%ecx
45db60:	e8 5c 01 00 00       	call   0x45dcc1
45db65:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
45db69:	75 07                	jne    0x45db72
45db6b:	c7 43 04 02 40 00 80 	movl   $0x80004002,0x4(%ebx)
45db72:	8b 45 f8             	mov    -0x8(%ebp),%eax
45db75:	50                   	push   %eax
45db76:	8b 08                	mov    (%eax),%ecx
45db78:	ff 51 08             	call   *0x8(%ecx)
45db7b:	eb 10                	jmp    0x45db8d
45db7d:	c7 43 04 11 01 04 80 	movl   $0x80040111,0x4(%ebx)
45db84:	eb 07                	jmp    0x45db8d
45db86:	c7 43 04 2f 80 02 80 	movl   $0x8002802f,0x4(%ebx)
45db8d:	56                   	push   %esi
45db8e:	ff 15 a4 f1 48 00    	call   *0x48f1a4
45db94:	eb 07                	jmp    0x45db9d
45db96:	c7 43 04 54 01 04 80 	movl   $0x80040154,0x4(%ebx)
45db9d:	5f                   	pop    %edi
45db9e:	5e                   	pop    %esi
45db9f:	8b c3                	mov    %ebx,%eax
45dba1:	5b                   	pop    %ebx
45dba2:	8b e5                	mov    %ebp,%esp
45dba4:	5d                   	pop    %ebp
45dba5:	c2 0c 00             	ret    $0xc
45dba8:	56                   	push   %esi
45dba9:	8b f1                	mov    %ecx,%esi
45dbab:	8b 4e 08             	mov    0x8(%esi),%ecx
45dbae:	c7 06 88 9a 4b 00    	movl   $0x4b9a88,(%esi)
45dbb4:	85 c9                	test   %ecx,%ecx
45dbb6:	74 06                	je     0x45dbbe
45dbb8:	8b 01                	mov    (%ecx),%eax
45dbba:	51                   	push   %ecx
45dbbb:	ff 50 08             	call   *0x8(%eax)
45dbbe:	8b ce                	mov    %esi,%ecx
45dbc0:	e8 43 02 00 00       	call   0x45de08
45dbc5:	8b 4e 0c             	mov    0xc(%esi),%ecx
45dbc8:	85 c9                	test   %ecx,%ecx
45dbca:	74 06                	je     0x45dbd2
45dbcc:	8b 01                	mov    (%ecx),%eax
45dbce:	51                   	push   %ecx
45dbcf:	ff 50 08             	call   *0x8(%eax)
45dbd2:	56                   	push   %esi
45dbd3:	e8 94 34 fc ff       	call   0x42106c
45dbd8:	59                   	pop    %ecx
45dbd9:	8b c6                	mov    %esi,%eax
45dbdb:	5e                   	pop    %esi
45dbdc:	c2 04 00             	ret    $0x4
45dbdf:	55                   	push   %ebp
45dbe0:	8b ec                	mov    %esp,%ebp
45dbe2:	8b 45 08             	mov    0x8(%ebp),%eax
45dbe5:	83 c0 38             	add    $0x38,%eax
45dbe8:	50                   	push   %eax
45dbe9:	ff 15 54 f3 48 00    	call   *0x48f354
45dbef:	5d                   	pop    %ebp
45dbf0:	c2 04 00             	ret    $0x4
45dbf3:	55                   	push   %ebp
45dbf4:	8b ec                	mov    %esp,%ebp
45dbf6:	8b 45 08             	mov    0x8(%ebp),%eax
45dbf9:	8b 48 08             	mov    0x8(%eax),%ecx
45dbfc:	85 c9                	test   %ecx,%ecx
45dbfe:	74 17                	je     0x45dc17
45dc00:	ff 75 1c             	push   0x1c(%ebp)
45dc03:	8b 01                	mov    (%ecx),%eax
45dc05:	ff 75 18             	push   0x18(%ebp)
45dc08:	ff 75 14             	push   0x14(%ebp)
45dc0b:	ff 75 10             	push   0x10(%ebp)
45dc0e:	ff 75 0c             	push   0xc(%ebp)
45dc11:	51                   	push   %ecx
45dc12:	ff 50 14             	call   *0x14(%eax)
45dc15:	eb 05                	jmp    0x45dc1c
45dc17:	b8 01 40 00 80       	mov    $0x80004001,%eax
45dc1c:	5d                   	pop    %ebp
45dc1d:	c2 18 00             	ret    $0x18
45dc20:	55                   	push   %ebp
45dc21:	8b ec                	mov    %esp,%ebp
45dc23:	53                   	push   %ebx
45dc24:	8b d9                	mov    %ecx,%ebx
45dc26:	8b 4d 08             	mov    0x8(%ebp),%ecx
45dc29:	6a 00                	push   $0x0
45dc2b:	8d 53 18             	lea    0x18(%ebx),%edx
45dc2e:	e8 1f 9a ff ff       	call   0x457652
45dc33:	59                   	pop    %ecx
45dc34:	85 c0                	test   %eax,%eax
45dc36:	78 32                	js     0x45dc6a
45dc38:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
45dc3c:	75 12                	jne    0x45dc50
45dc3e:	56                   	push   %esi
45dc3f:	57                   	push   %edi