456e3f:	33 c0                	xor    %eax,%eax
456e41:	66 89 46 08          	mov    %ax,0x8(%esi)
456e45:	e9 d3 01 00 00       	jmp    0x45701d
456e4a:	6a 03                	push   $0x3
456e4c:	58                   	pop    %eax
456e4d:	8b cf                	mov    %edi,%ecx
456e4f:	66 89 06             	mov    %ax,(%esi)
456e52:	e8 45 2e fb ff       	call   0x409c9c
456e57:	e9 fb 00 00 00       	jmp    0x456f57
456e5c:	6a 05                	push   $0x5
456e5e:	58                   	pop    %eax
456e5f:	8b cf                	mov    %edi,%ecx
456e61:	66 89 06             	mov    %ax,(%esi)
456e64:	e8 8f 2e fb ff       	call   0x409cf8
456e69:	dd 5e 08             	fstpl  0x8(%esi)
456e6c:	e9 ac 01 00 00       	jmp    0x45701d
456e71:	6a 14                	push   $0x14
456e73:	58                   	pop    %eax
456e74:	8b cf                	mov    %edi,%ecx
456e76:	66 89 06             	mov    %ax,(%esi)
456e79:	e8 c8 2e fb ff       	call   0x409d46
456e7e:	89 46 08             	mov    %eax,0x8(%esi)
456e81:	89 56 0c             	mov    %edx,0xc(%esi)
456e84:	e9 94 01 00 00       	jmp    0x45701d
456e89:	6a 13                	push   $0x13
456e8b:	58                   	pop    %eax
456e8c:	8b cf                	mov    %edi,%ecx
456e8e:	66 89 06             	mov    %ax,(%esi)
456e91:	e8 25 1b 01 00       	call   0x4689bb
456e96:	e9 bc 00 00 00       	jmp    0x456f57
456e9b:	6a 08                	push   $0x8
456e9d:	58                   	pop    %eax
456e9e:	8b cf                	mov    %edi,%ecx
456ea0:	66 89 06             	mov    %ax,(%esi)
456ea3:	e8 ef 2a fb ff       	call   0x409997
456ea8:	8b 47 08             	mov    0x8(%edi),%eax
456eab:	ff 30                	push   (%eax)
456ead:	ff 15 78 f4 48 00    	call   *0x48f478
456eb3:	e9 9f 00 00 00       	jmp    0x456f57
456eb8:	b8 0c 20 00 00       	mov    $0x200c,%eax
456ebd:	57                   	push   %edi
456ebe:	66 89 06             	mov    %ax,(%esi)
456ec1:	e8 48 02 00 00       	call   0x45710e
456ec6:	e9 8c 00 00 00       	jmp    0x456f57
456ecb:	83 f8 08             	cmp    $0x8,%eax
456ece:	75 02                	jne    0x456ed2
456ed0:	8b 1f                	mov    (%edi),%ebx
456ed2:	85 db                	test   %ebx,%ebx
456ed4:	0f 84 43 01 00 00    	je     0x45701d
456eda:	53                   	push   %ebx
456edb:	56                   	push   %esi
456edc:	ff 15 58 f4 48 00    	call   *0x48f458
456ee2:	e9 36 01 00 00       	jmp    0x45701d
456ee7:	83 f8 06             	cmp    $0x6,%eax
456eea:	75 02                	jne    0x456eee
456eec:	8b 1f                	mov    (%edi),%ebx
456eee:	53                   	push   %ebx
456eef:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
456ef2:	e8 fc fe ff ff       	call   0x456df3
456ef7:	50                   	push   %eax
456ef8:	8b ce                	mov    %esi,%ecx
456efa:	e8 c1 01 00 00       	call   0x4570c0
456eff:	8d 45 e4             	lea    -0x1c(%ebp),%eax
456f02:	50                   	push   %eax
456f03:	ff 15 5c f4 48 00    	call   *0x48f45c
456f09:	e9 0f 01 00 00       	jmp    0x45701d
456f0e:	6a 29                	push   $0x29
456f10:	8b cf                	mov    %edi,%ecx
456f12:	e8 97 2e fb ff       	call   0x409dae
456f17:	84 c0                	test   %al,%al
456f19:	74 12                	je     0x456f2d
456f1b:	6a 0a                	push   $0xa
456f1d:	58                   	pop    %eax
456f1e:	66 89 06             	mov    %ax,(%esi)
456f21:	c7 46 08 04 00 02 80 	movl   $0x80020004,0x8(%esi)
456f28:	e9 f0 00 00 00       	jmp    0x45701d
456f2d:	6a 2a                	push   $0x2a
456f2f:	8b cf                	mov    %edi,%ecx
456f31:	e8 78 2e fb ff       	call   0x409dae
456f36:	84 c0                	test   %al,%al
456f38:	0f 84 df 00 00 00    	je     0x45701d
456f3e:	33 c0                	xor    %eax,%eax
456f40:	40                   	inc    %eax
456f41:	66 89 06             	mov    %ax,(%esi)
456f44:	e9 d4 00 00 00       	jmp    0x45701d
456f49:	b8 11 20 00 00       	mov    $0x2011,%eax
456f4e:	57                   	push   %edi
456f4f:	66 89 06             	mov    %ax,(%esi)
456f52:	e8 29 03 00 00       	call   0x457280
456f57:	89 46 08             	mov    %eax,0x8(%esi)
456f5a:	e9 be 00 00 00       	jmp    0x45701d
456f5f:	6a 24                	push   $0x24
456f61:	58                   	pop    %eax
456f62:	6a 28                	push   $0x28
456f64:	66 89 06             	mov    %ax,(%esi)
456f67:	89 5e 08             	mov    %ebx,0x8(%esi)
456f6a:	e8 87 a0 fc ff       	call   0x420ff6
456f6f:	59                   	pop    %ecx
456f70:	85 c0                	test   %eax,%eax
456f72:	74 61                	je     0x456fd5
456f74:	83 7f 0c 0c          	cmpl   $0xc,0xc(%edi)
456f78:	75 02                	jne    0x456f7c
456f7a:	8b 1f                	mov    (%edi),%ebx
456f7c:	53                   	push   %ebx
456f7d:	8b c8                	mov    %eax,%ecx
456f7f:	e8 d6 03 00 00       	call   0x45735a
456f84:	eb 4d                	jmp    0x456fd3
456f86:	6a 24                	push   $0x24
456f88:	58                   	pop    %eax
456f89:	6a 28                	push   $0x28
456f8b:	66 89 06             	mov    %ax,(%esi)
456f8e:	89 5e 08             	mov    %ebx,0x8(%esi)
456f91:	e8 60 a0 fc ff       	call   0x420ff6
456f96:	59                   	pop    %ecx
456f97:	85 c0                	test   %eax,%eax
456f99:	74 3a                	je     0x456fd5
456f9b:	83 7f 0c 0f          	cmpl   $0xf,0xc(%edi)
456f9f:	75 02                	jne    0x456fa3
456fa1:	8b 1f                	mov    (%edi),%ebx
456fa3:	53                   	push   %ebx
456fa4:	8b c8                	mov    %eax,%ecx
456fa6:	e8 fa 03 00 00       	call   0x4573a5
456fab:	eb 26                	jmp    0x456fd3
456fad:	6a 24                	push   $0x24
456faf:	58                   	pop    %eax
456fb0:	6a 28                	push   $0x28
456fb2:	66 89 06             	mov    %ax,(%esi)
456fb5:	89 5e 08             	mov    %ebx,0x8(%esi)
456fb8:	e8 39 a0 fc ff       	call   0x420ff6
456fbd:	8b d0                	mov    %eax,%edx
456fbf:	59                   	pop    %ecx
456fc0:	85 d2                	test   %edx,%edx
456fc2:	74 11                	je     0x456fd5
456fc4:	8b cf                	mov    %edi,%ecx
456fc6:	e8 ca 0b 01 00       	call   0x467b95
456fcb:	50                   	push   %eax
456fcc:	8b ca                	mov    %edx,%ecx
456fce:	e8 50 03 00 00       	call   0x457323
456fd3:	8b d8                	mov    %eax,%ebx
456fd5:	89 5e 0c             	mov    %ebx,0xc(%esi)
456fd8:	eb 43                	jmp    0x45701d
456fda:	6a 24                	push   $0x24
456fdc:	58                   	pop    %eax
456fdd:	6a 28                	push   $0x28
456fdf:	66 89 06             	mov    %ax,(%esi)
456fe2:	89 5e 08             	mov    %ebx,0x8(%esi)
456fe5:	e8 0c a0 fc ff       	call   0x420ff6
456fea:	89 45 08             	mov    %eax,0x8(%ebp)
456fed:	59                   	pop    %ecx
456fee:	85 c0                	test   %eax,%eax
456ff0:	74 19                	je     0x45700b
456ff2:	8d 45 d4             	lea    -0x2c(%ebp),%eax
456ff5:	33 db                	xor    %ebx,%ebx
456ff7:	50                   	push   %eax
456ff8:	8b cf                	mov    %edi,%ecx
456ffa:	43                   	inc    %ebx
456ffb:	e8 a4 0b 01 00       	call   0x467ba4
457000:	8b 4d 08             	mov    0x8(%ebp),%ecx
457003:	50                   	push   %eax
457004:	e8 dc 02 00 00       	call   0x4572e5
457009:	eb 02                	jmp    0x45700d
45700b:	8b c3                	mov    %ebx,%eax
45700d:	89 46 0c             	mov    %eax,0xc(%esi)
457010:	f6 c3 01             	test   $0x1,%bl
457013:	74 08                	je     0x45701d
457015:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
457018:	e8 47 ea fa ff       	call   0x405a64
45701d:	5f                   	pop    %edi
45701e:	8b c6                	mov    %esi,%eax
457020:	5e                   	pop    %esi
457021:	5b                   	pop    %ebx
457022:	8b e5                	mov    %ebp,%esp
457024:	5d                   	pop    %ebp
457025:	c2 04 00             	ret    $0x4
457028:	8d 49 00             	lea    0x0(%ecx),%ecx
45702b:	4a                   	dec    %edx
45702c:	6e                   	outsb  %ds:(%esi),(%dx)
45702d:	45                   	inc    %ebp
45702e:	00 71 6e             	add    %dh,0x6e(%ecx)
457031:	45                   	inc    %ebp
457032:	00 5c 6e 45          	add    %bl,0x45(%esi,%ebp,2)
457036:	00 9b 6e 45 00 b8    	add    %bl,-0x47ffba92(%ebx)
45703c:	6e                   	outsb  %ds:(%esi),(%dx)
45703d:	45                   	inc    %ebp
45703e:	00 e7                	add    %ah,%bh
457040:	6e                   	outsb  %ds:(%esi),(%dx)
457041:	45                   	inc    %ebp
457042:	00 89 6e 45 00 cb    	add    %cl,-0x34ffba92(%ecx)
457048:	6e                   	outsb  %ds:(%esi),(%dx)
457049:	45                   	inc    %ebp
45704a:	00 29                	add    %ch,(%ecx)
45704c:	6e                   	outsb  %ds:(%esi),(%dx)
45704d:	45                   	inc    %ebp
45704e:	00 0e                	add    %cl,(%esi)
457050:	6f                   	outsl  %ds:(%esi),(%dx)
457051:	45                   	inc    %ebp
457052:	00 49 6f             	add    %cl,0x6f(%ecx)
457055:	45                   	inc    %ebp
457056:	00 5f 6f             	add    %bl,0x6f(%edi)
457059:	45                   	inc    %ebp
45705a:	00 ad 6f 45 00 da    	add    %ch,-0x25ffba91(%ebp)
457060:	6f                   	outsl  %ds:(%esi),(%dx)
457061:	45                   	inc    %ebp
457062:	00 86 6f 45 00 55    	add    %al,0x5500456f(%esi)
457068:	8b ec                	mov    %esp,%ebp
45706a:	83 ec 18             	sub    $0x18,%esp
45706d:	56                   	push   %esi
45706e:	ff 75 08             	push   0x8(%ebp)
457071:	8b f1                	mov    %ecx,%esi
457073:	8d 4d ec             	lea    -0x14(%ebp),%ecx
457076:	e8 78 fd ff ff       	call   0x456df3
45707b:	50                   	push   %eax
45707c:	8b ce                	mov    %esi,%ecx
45707e:	e8 3d 00 00 00       	call   0x4570c0
457083:	8d 45 ec             	lea    -0x14(%ebp),%eax
457086:	50                   	push   %eax
457087:	ff 15 5c f4 48 00    	call   *0x48f45c
45708d:	8b c6                	mov    %esi,%eax
45708f:	5e                   	pop    %esi
457090:	8b e5                	mov    %ebp,%esp
457092:	5d                   	pop    %ebp
457093:	c2 04 00             	ret    $0x4
457096:	56                   	push   %esi
457097:	8b f1                	mov    %ecx,%esi
457099:	56                   	push   %esi
45709a:	ff 15 7c f4 48 00    	call   *0x48f47c
4570a0:	83 66 08 00          	andl   $0x0,0x8(%esi)
4570a4:	8b c6                	mov    %esi,%eax
4570a6:	83 66 0c 00          	andl   $0x0,0xc(%esi)
4570aa:	5e                   	pop    %esi
4570ab:	c3                   	ret
4570ac:	56                   	push   %esi
4570ad:	8b f1                	mov    %ecx,%esi
4570af:	56                   	push   %esi
4570b0:	ff 15 5c f4 48 00    	call   *0x48f45c
4570b6:	83 66 08 00          	andl   $0x0,0x8(%esi)
4570ba:	83 66 0c 00          	andl   $0x0,0xc(%esi)
4570be:	5e                   	pop    %esi
4570bf:	c3                   	ret
4570c0:	55                   	push   %ebp
4570c1:	8b ec                	mov    %esp,%ebp
4570c3:	56                   	push   %esi
4570c4:	8b f1                	mov    %ecx,%esi
4570c6:	56                   	push   %esi
4570c7:	ff 15 5c f4 48 00    	call   *0x48f45c
4570cd:	ff 75 08             	push   0x8(%ebp)
4570d0:	56                   	push   %esi
4570d1:	ff 15 58 f4 48 00    	call   *0x48f458
4570d7:	5e                   	pop    %esi
4570d8:	5d                   	pop    %ebp
4570d9:	c2 04 00             	ret    $0x4
4570dc:	55                   	push   %ebp
4570dd:	8b ec                	mov    %esp,%ebp
4570df:	83 e4 f8             	and    $0xfffffff8,%esp
4570e2:	83 ec 14             	sub    $0x14,%esp
4570e5:	56                   	push   %esi
4570e6:	ff 75 08             	push   0x8(%ebp)
4570e9:	8b f1                	mov    %ecx,%esi
4570eb:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4570ef:	e8 ff fc ff ff       	call   0x456df3
4570f4:	50                   	push   %eax
4570f5:	8b ce                	mov    %esi,%ecx
4570f7:	e8 c4 ff ff ff       	call   0x4570c0
4570fc:	8d 44 24 08          	lea    0x8(%esp),%eax
457100:	50                   	push   %eax
457101:	ff 15 5c f4 48 00    	call   *0x48f45c
457107:	5e                   	pop    %esi
457108:	8b e5                	mov    %ebp,%esp
45710a:	5d                   	pop    %ebp
45710b:	c2 04 00             	ret    $0x4
45710e:	55                   	push   %ebp
45710f:	8b ec                	mov    %esp,%ebp
457111:	83 ec 30             	sub    $0x30,%esp
457114:	53                   	push   %ebx
457115:	56                   	push   %esi
457116:	8b 75 08             	mov    0x8(%ebp),%esi
457119:	57                   	push   %edi
45711a:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
45711e:	0f 85 51 01 00 00    	jne    0x457275
457124:	8b 06                	mov    (%esi),%eax
457126:	8b 00                	mov    (%eax),%eax
457128:	8b 98 0c 01 00 00    	mov    0x10c(%eax),%ebx
45712e:	8d 45 08             	lea    0x8(%ebp),%eax
457131:	50                   	push   %eax
457132:	53                   	push   %ebx
457133:	6a 0c                	push   $0xc
457135:	ff 15 30 f4 48 00    	call   *0x48f430
45713b:	85 c0                	test   %eax,%eax
45713d:	0f 88 32 01 00 00    	js     0x457275
457143:	33 ff                	xor    %edi,%edi
457145:	8b cf                	mov    %edi,%ecx
457147:	85 db                	test   %ebx,%ebx
457149:	7e 2a                	jle    0x457175
45714b:	8b 45 08             	mov    0x8(%ebp),%eax
45714e:	8b d1                	mov    %ecx,%edx
457150:	41                   	inc    %ecx
457151:	51                   	push   %ecx
457152:	89 4d f8             	mov    %ecx,-0x8(%ebp)
457155:	8b ce                	mov    %esi,%ecx
457157:	89 7c d0 14          	mov    %edi,0x14(%eax,%edx,8)
45715b:	e8 b5 f4 ff ff       	call   0x456615
457160:	8b c8                	mov    %eax,%ecx
457162:	e8 04 1d fb ff       	call   0x408e6b
457167:	8b 4d 08             	mov    0x8(%ebp),%ecx
45716a:	89 44 d1 10          	mov    %eax,0x10(%ecx,%edx,8)
45716e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
457171:	3b cb                	cmp    %ebx,%ecx
457173:	7c d6                	jl     0x45714b
457175:	8b 45 08             	mov    0x8(%ebp),%eax
457178:	b9 80 08 00 00       	mov    $0x880,%ecx
45717d:	66 89 48 02          	mov    %cx,0x2(%eax)
457181:	8b 45 08             	mov    0x8(%ebp),%eax
457184:	c7 40 04 10 00 00 00 	movl   $0x10,0x4(%eax)
45718b:	ff 75 08             	push   0x8(%ebp)
45718e:	ff 15 2c f4 48 00    	call   *0x48f42c
457194:	85 c0                	test   %eax,%eax
457196:	0f 88 d0 00 00 00    	js     0x45726c
45719c:	8d 45 d4             	lea    -0x2c(%ebp),%eax
45719f:	50                   	push   %eax
4571a0:	ff 15 7c f4 48 00    	call   *0x48f47c
4571a6:	8d 45 f8             	lea    -0x8(%ebp),%eax
4571a9:	89 7d dc             	mov    %edi,-0x24(%ebp)
4571ac:	50                   	push   %eax
4571ad:	ff 75 08             	push   0x8(%ebp)
4571b0:	89 7d e0             	mov    %edi,-0x20(%ebp)
4571b3:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4571b6:	89 7d ec             	mov    %edi,-0x14(%ebp)
4571b9:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
4571c0:	ff 15 28 f4 48 00    	call   *0x48f428
4571c6:	85 c0                	test   %eax,%eax
4571c8:	78 7c                	js     0x457246
4571ca:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4571cd:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4571d0:	56                   	push   %esi
4571d1:	e8 c6 2c fb ff       	call   0x409e9c
4571d6:	8b 75 f0             	mov    -0x10(%ebp),%esi
4571d9:	83 ee 05             	sub    $0x5,%esi
4571dc:	f7 de                	neg    %esi
4571de:	6a 02                	push   $0x2
4571e0:	1b f6                	sbb    %esi,%esi
4571e2:	f7 d6                	not    %esi
4571e4:	23 75 e4             	and    -0x1c(%ebp),%esi
4571e7:	8b ce                	mov    %esi,%ecx
4571e9:	e8 11 f3 ff ff       	call   0x4564ff
4571ee:	8b 06                	mov    (%esi),%eax
4571f0:	8b 70 08             	mov    0x8(%eax),%esi
4571f3:	8b 48 04             	mov    0x4(%eax),%ecx
4571f6:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4571f9:	85 f6                	test   %esi,%esi
4571fb:	7e 27                	jle    0x457224