405e6e:	6f                   	outsl  %ds:(%esi),(%dx)
405e6f:	63 53 74             	arpl   %edx,0x74(%ebx)
405e72:	72 69                	jb     0x405edd
405e74:	6e                   	outsb  %ds:(%esi),(%dx)
405e75:	67 42                	addr16 inc %edx
405e77:	79 74                	jns    0x405eed
405e79:	65 4c                	gs dec %esp
405e7b:	65 6e                	outsb  %gs:(%esi),(%dx)
405e7d:	00 00                	add    %al,(%eax)
405e7f:	00 00                	add    %al,(%eax)
405e81:	55                   	push   %ebp
405e82:	89 e5                	mov    %esp,%ebp
405e84:	83 ec 24             	sub    $0x24,%esp
405e87:	56                   	push   %esi
405e88:	57                   	push   %edi
405e89:	52                   	push   %edx
405e8a:	53                   	push   %ebx
405e8b:	c7 45 f0 00 01 00 00 	movl   $0x100,-0x10(%ebp)
405e92:	c7 45 f8 05 00 00 00 	movl   $0x5,-0x8(%ebp)
405e99:	68 ee 5b 40 00       	push   $0x405bee
405e9e:	e8 c0 04 00 00       	call   0x406363
405ea3:	96                   	xchg   %eax,%esi
405ea4:	68 4c 5b 40 00       	push   $0x405b4c
405ea9:	56                   	push   %esi
405eaa:	e8 55 04 00 00       	call   0x406304
405eaf:	89 45 dc             	mov    %eax,-0x24(%ebp)
405eb2:	68 7d 5b 40 00       	push   $0x405b7d
405eb7:	56                   	push   %esi
405eb8:	e8 47 04 00 00       	call   0x406304
405ebd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405ec0:	68 63 5b 40 00       	push   $0x405b63
405ec5:	56                   	push   %esi
405ec6:	e8 39 04 00 00       	call   0x406304
405ecb:	89 45 e0             	mov    %eax,-0x20(%ebp)
405ece:	89 45 f4             	mov    %eax,-0xc(%ebp)
405ed1:	83 3d b0 10 46 00 00 	cmpl   $0x0,0x4610b0
405ed8:	75 23                	jne    0x405efd
405eda:	6a 40                	push   $0x40
405edc:	68 00 30 00 00       	push   $0x3000
405ee1:	8d 55 f0             	lea    -0x10(%ebp),%edx
405ee4:	52                   	push   %edx
405ee5:	6a 00                	push   $0x0
405ee7:	8d 15 b0 10 46 00    	lea    0x4610b0,%edx
405eed:	52                   	push   %edx
405eee:	6a ff                	push   $0xffffffff
405ef0:	ff 55 e4             	call   *-0x1c(%ebp)
405ef3:	83 f8 00             	cmp    $0x0,%eax
405ef6:	73 05                	jae    0x405efd
405ef8:	e9 23 01 00 00       	jmp    0x406020
405efd:	a1 b0 10 46 00       	mov    0x4610b0,%eax
405f02:	03 05 b4 10 46 00    	add    0x4610b4,%eax
405f08:	89 45 e8             	mov    %eax,-0x18(%ebp)
405f0b:	8d 55 fc             	lea    -0x4(%ebp),%edx
405f0e:	52                   	push   %edx
405f0f:	6a 40                	push   $0x40
405f11:	8d 55 f8             	lea    -0x8(%ebp),%edx
405f14:	52                   	push   %edx
405f15:	8d 55 f4             	lea    -0xc(%ebp),%edx
405f18:	52                   	push   %edx
405f19:	6a ff                	push   $0xffffffff
405f1b:	ff 55 dc             	call   *-0x24(%ebp)
405f1e:	83 f8 00             	cmp    $0x0,%eax
405f21:	73 05                	jae    0x405f28
405f23:	e9 f8 00 00 00       	jmp    0x406020
405f28:	31 db                	xor    %ebx,%ebx
405f2a:	8b 7d e8             	mov    -0x18(%ebp),%edi
405f2d:	8b 75 e0             	mov    -0x20(%ebp),%esi
405f30:	83 fb 05             	cmp    $0x5,%ebx
405f33:	0f 83 88 00 00 00    	jae    0x405fc1
405f39:	8d 55 ec             	lea    -0x14(%ebp),%edx
405f3c:	52                   	push   %edx
405f3d:	56                   	push   %esi
405f3e:	e8 ef fa ff ff       	call   0x405a32
405f43:	89 c1                	mov    %eax,%ecx
405f45:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
405f47:	01 c3                	add    %eax,%ebx
405f49:	8b 55 ec             	mov    -0x14(%ebp),%edx
405f4c:	66 8b 0a             	mov    (%edx),%cx
405f4f:	80 f9 e9             	cmp    $0xe9,%cl
405f52:	74 05                	je     0x405f59
405f54:	80 f9 e8             	cmp    $0xe8,%cl
405f57:	75 0d                	jne    0x405f66
405f59:	8b 42 01             	mov    0x1(%edx),%eax
405f5c:	8d 04 30             	lea    (%eax,%esi,1),%eax
405f5f:	29 f8                	sub    %edi,%eax
405f61:	89 47 fc             	mov    %eax,-0x4(%edi)
405f64:	eb 56                	jmp    0x405fbc
405f66:	80 f9 eb             	cmp    $0xeb,%cl
405f69:	75 16                	jne    0x405f81
405f6b:	0f be 42 01          	movsbl 0x1(%edx),%eax
405f6f:	8d 44 30 fd          	lea    -0x3(%eax,%esi,1),%eax
405f73:	29 f8                	sub    %edi,%eax
405f75:	c6 47 fe e9          	movb   $0xe9,-0x2(%edi)
405f79:	89 47 ff             	mov    %eax,-0x1(%edi)
405f7c:	83 c7 03             	add    $0x3,%edi
405f7f:	eb 3b                	jmp    0x405fbc
405f81:	80 f9 70             	cmp    $0x70,%cl
405f84:	72 1c                	jb     0x405fa2
405f86:	80 f9 7f             	cmp    $0x7f,%cl
405f89:	77 17                	ja     0x405fa2
405f8b:	0f be 42 01          	movsbl 0x1(%edx),%eax
405f8f:	8d 44 30 fc          	lea    -0x4(%eax,%esi,1),%eax
405f93:	29 f8                	sub    %edi,%eax
405f95:	c6 47 fe 0f          	movb   $0xf,-0x2(%edi)
405f99:	80 c1 10             	add    $0x10,%cl
405f9c:	88 4f ff             	mov    %cl,-0x1(%edi)
405f9f:	ab                   	stos   %eax,%es:(%edi)
405fa0:	eb 1a                	jmp    0x405fbc
405fa2:	80 f9 0f             	cmp    $0xf,%cl
405fa5:	75 15                	jne    0x405fbc
405fa7:	80 fd 80             	cmp    $0x80,%ch
405faa:	72 10                	jb     0x405fbc
405fac:	80 fd 8f             	cmp    $0x8f,%ch
405faf:	77 0b                	ja     0x405fbc
405fb1:	8b 42 02             	mov    0x2(%edx),%eax
405fb4:	8d 04 30             	lea    (%eax,%esi,1),%eax
405fb7:	29 f8                	sub    %edi,%eax
405fb9:	89 47 fc             	mov    %eax,-0x4(%edi)
405fbc:	e9 6f ff ff ff       	jmp    0x405f30
405fc1:	83 c3 05             	add    $0x5,%ebx
405fc4:	01 1d b4 10 46 00    	add    %ebx,0x4610b4
405fca:	b0 e9                	mov    $0xe9,%al
405fcc:	aa                   	stos   %al,%es:(%edi)
405fcd:	8d 47 04             	lea    0x4(%edi),%eax
405fd0:	29 f0                	sub    %esi,%eax
405fd2:	f7 d8                	neg    %eax
405fd4:	ab                   	stos   %eax,%es:(%edi)
405fd5:	8b 7d e0             	mov    -0x20(%ebp),%edi
405fd8:	89 3d a4 10 46 00    	mov    %edi,0x4610a4
405fde:	b0 e9                	mov    $0xe9,%al
405fe0:	aa                   	stos   %al,%es:(%edi)
405fe1:	8d 47 04             	lea    0x4(%edi),%eax
405fe4:	c7 05 a8 10 46 00 26 	movl   $0x406026,0x4610a8
405feb:	60 40 00
405fee:	2d 26 60 40 00       	sub    $0x406026,%eax
405ff3:	f7 d8                	neg    %eax
405ff5:	ab                   	stos   %eax,%es:(%edi)
405ff6:	8b 7d e8             	mov    -0x18(%ebp),%edi
405ff9:	89 3d ac 10 46 00    	mov    %edi,0x4610ac
405fff:	c7 45 f8 05 00 00 00 	movl   $0x5,-0x8(%ebp)
406006:	8d 55 fc             	lea    -0x4(%ebp),%edx
406009:	52                   	push   %edx
40600a:	ff 75 fc             	push   -0x4(%ebp)
40600d:	8d 55 f8             	lea    -0x8(%ebp),%edx
406010:	52                   	push   %edx
406011:	8d 55 e0             	lea    -0x20(%ebp),%edx
406014:	52                   	push   %edx
406015:	6a ff                	push   $0xffffffff
406017:	ff 55 dc             	call   *-0x24(%ebp)
40601a:	ff 05 b8 10 46 00    	incl   0x4610b8
406020:	5b                   	pop    %ebx
406021:	5a                   	pop    %edx
406022:	5f                   	pop    %edi
406023:	5e                   	pop    %esi
406024:	c9                   	leave
406025:	c3                   	ret
406026:	55                   	push   %ebp
406027:	89 e5                	mov    %esp,%ebp
406029:	83 7d 0c 22          	cmpl   $0x22,0xc(%ebp)
40602d:	75 2d                	jne    0x40605c
40602f:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
406033:	75 27                	jne    0x40605c
406035:	83 7d 14 04          	cmpl   $0x4,0x14(%ebp)
406039:	72 0d                	jb     0x406048
40603b:	8b 45 10             	mov    0x10(%ebp),%eax
40603e:	c7 00 30 00 00 00    	movl   $0x30,(%eax)
406044:	31 c0                	xor    %eax,%eax
406046:	eb 05                	jmp    0x40604d
406048:	b8 04 00 00 c0       	mov    $0xc0000004,%eax
40604d:	8b 4d 18             	mov    0x18(%ebp),%ecx
406050:	85 c9                	test   %ecx,%ecx
406052:	74 06                	je     0x40605a
406054:	c7 01 04 00 00 00    	movl   $0x4,(%ecx)
40605a:	eb 15                	jmp    0x406071
40605c:	ff 75 18             	push   0x18(%ebp)
40605f:	ff 75 14             	push   0x14(%ebp)
406062:	ff 75 10             	push   0x10(%ebp)
406065:	ff 75 0c             	push   0xc(%ebp)
406068:	ff 75 08             	push   0x8(%ebp)
40606b:	ff 15 ac 10 46 00    	call   *0x4610ac
406071:	c9                   	leave
406072:	c2 14 00             	ret    $0x14
406075:	55                   	push   %ebp
406076:	89 e5                	mov    %esp,%ebp
406078:	56                   	push   %esi
406079:	57                   	push   %edi
40607a:	8b 75 08             	mov    0x8(%ebp),%esi
40607d:	85 f6                	test   %esi,%esi
40607f:	85 f6                	test   %esi,%esi
406081:	75 04                	jne    0x406087
406083:	31 c0                	xor    %eax,%eax
406085:	eb 27                	jmp    0x4060ae
406087:	8b 4e fc             	mov    -0x4(%esi),%ecx
40608a:	d1 e9                	shr    $1,%ecx
40608c:	51                   	push   %ecx
40608d:	51                   	push   %ecx
40608e:	68 00 00 00 00       	push   $0x0
406093:	ff 15 a0 10 46 00    	call   *0x4610a0
406099:	85 c0                	test   %eax,%eax
40609b:	75 02                	jne    0x40609f
40609d:	eb 0f                	jmp    0x4060ae
40609f:	59                   	pop    %ecx
4060a0:	50                   	push   %eax
4060a1:	89 c7                	mov    %eax,%edi
4060a3:	85 c9                	test   %ecx,%ecx
4060a5:	74 06                	je     0x4060ad
4060a7:	66 ad                	lods   %ds:(%esi),%ax
4060a9:	aa                   	stos   %al,%es:(%edi)
4060aa:	49                   	dec    %ecx
4060ab:	eb f6                	jmp    0x4060a3
4060ad:	58                   	pop    %eax
4060ae:	5f                   	pop    %edi
4060af:	5e                   	pop    %esi
4060b0:	c9                   	leave
4060b1:	c2 04 00             	ret    $0x4
4060b4:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
4060ba:	8b 40 0c             	mov    0xc(%eax),%eax
4060bd:	8d 40 0c             	lea    0xc(%eax),%eax
4060c0:	89 c2                	mov    %eax,%edx
4060c2:	39 c2                	cmp    %eax,%edx
4060c4:	74 34                	je     0x4060fa
4060c6:	50                   	push   %eax
4060c7:	6a 07                	push   $0x7
4060c9:	68 be 5b 40 00       	push   $0x405bbe
4060ce:	ff 70 30             	push   0x30(%eax)
4060d1:	e8 06 03 00 00       	call   0x4063dc
4060d6:	83 f8 00             	cmp    $0x0,%eax
4060d9:	75 03                	jne    0x4060de
4060db:	40                   	inc    %eax
4060dc:	eb 1e                	jmp    0x4060fc
4060de:	6a 07                	push   $0x7
4060e0:	68 d6 5b 40 00       	push   $0x405bd6
4060e5:	ff 70 30             	push   0x30(%eax)
4060e8:	e8 ef 02 00 00       	call   0x4063dc
4060ed:	83 f8 00             	cmp    $0x0,%eax
4060f0:	75 03                	jne    0x4060f5
4060f2:	40                   	inc    %eax
4060f3:	eb 07                	jmp    0x4060fc
4060f5:	58                   	pop    %eax
4060f6:	8b 00                	mov    (%eax),%eax
4060f8:	eb c8                	jmp    0x4060c2
4060fa:	31 c0                	xor    %eax,%eax
4060fc:	c3                   	ret
4060fd:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
406103:	8b 40 18             	mov    0x18(%eax),%eax
406106:	8b 40 10             	mov    0x10(%eax),%eax
406109:	85 c0                	test   %eax,%eax
40610b:	0f 95 c0             	setne  %al
40610e:	0f b6 c0             	movzbl %al,%eax
406111:	c3                   	ret
406112:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
406118:	8a 40 68             	mov    0x68(%eax),%al
40611b:	24 70                	and    $0x70,%al
40611d:	3c 70                	cmp    $0x70,%al
40611f:	0f 94 c0             	sete   %al
406122:	0f b6 c0             	movzbl %al,%eax
406125:	c3                   	ret
406126:	64 a1 1e 00 00 00    	mov    %fs:0x1e,%eax
40612c:	8a 40 02             	mov    0x2(%eax),%al
40612f:	84 c0                	test   %al,%al
406131:	0f 95 c0             	setne  %al
406134:	0f b6 c0             	movzbl %al,%eax
406137:	c3                   	ret
406138:	55                   	push   %ebp
406139:	89 e5                	mov    %esp,%ebp
40613b:	56                   	push   %esi
40613c:	57                   	push   %edi
40613d:	53                   	push   %ebx
40613e:	be 02 5c 40 00       	mov    $0x405c02,%esi
406143:	bf 24 10 46 00       	mov    $0x461024,%edi
406148:	66 83 3e 00          	cmpw   $0x0,(%esi)
40614c:	74 40                	je     0x40618e
40614e:	56                   	push   %esi
40614f:	e8 30 01 00 00       	call   0x406284
406154:	83 f8 00             	cmp    $0x0,%eax
406157:	75 02                	jne    0x40615b
406159:	eb 6a                	jmp    0x4061c5
40615b:	89 c3                	mov    %eax,%ebx
40615d:	31 c0                	xor    %eax,%eax
40615f:	8d 48 ff             	lea    -0x1(%eax),%ecx
406162:	87 f7                	xchg   %esi,%edi
406164:	f2 66 af             	repnz scas %es:(%edi),%ax
406167:	87 f7                	xchg   %esi,%edi
406169:	80 3e 00             	cmpb   $0x0,(%esi)
40616c:	74 1d                	je     0x40618b
40616e:	56                   	push   %esi
40616f:	53                   	push   %ebx
406170:	ff 15 04 10 46 00    	call   *0x461004
406176:	83 f8 00             	cmp    $0x0,%eax
406179:	75 02                	jne    0x40617d
40617b:	eb 48                	jmp    0x4061c5
40617d:	ab                   	stos   %eax,%es:(%edi)
40617e:	31 c0                	xor    %eax,%eax
406180:	8d 48 ff             	lea    -0x1(%eax),%ecx
406183:	87 f7                	xchg   %esi,%edi
406185:	f2 ae                	repnz scas %es:(%edi),%al
406187:	87 f7                	xchg   %esi,%edi
406189:	eb de                	jmp    0x406169
40618b:	46                   	inc    %esi
40618c:	eb ba                	jmp    0x406148
40618e:	31 c0                	xor    %eax,%eax
406190:	be 0c 10 46 00       	mov    $0x46100c,%esi
406195:	81 ef 80 00 00 00    	sub    $0x80,%edi
40619b:	66 c7 06 01 00       	movw   $0x1,(%esi)
4061a0:	66 c7 46 02 01 00    	movw   $0x1,0x2(%esi)
4061a6:	c7 46 04 04 00 00 00 	movl   $0x4,0x4(%esi)
4061ad:	89 46 08             	mov    %eax,0x8(%esi)
4061b0:	89 7e 0c             	mov    %edi,0xc(%esi)
4061b3:	c7 46 10 20 00 00 00 	movl   $0x20,0x10(%esi)
4061ba:	89 46 14             	mov    %eax,0x14(%esi)
4061bd:	8b 7d 08             	mov    0x8(%ebp),%edi
4061c0:	89 37                	mov    %esi,(%edi)
4061c2:	66 f7 d0             	not    %ax
4061c5:	5b                   	pop    %ebx
4061c6:	5f                   	pop    %edi
4061c7:	5e                   	pop    %esi
4061c8:	c9                   	leave
4061c9:	c2 04 00             	ret    $0x4
4061cc:	55                   	push   %ebp
4061cd:	89 e5                	mov    %esp,%ebp
4061cf:	56                   	push   %esi
4061d0:	57                   	push   %edi
4061d1:	53                   	push   %ebx
4061d2:	8b 75 0c             	mov    0xc(%ebp),%esi
4061d5:	85 f6                	test   %esi,%esi
4061d7:	75 05                	jne    0x4061de
4061d9:	e9 9f 00 00 00       	jmp    0x40627d
4061de:	8b 36                	mov    (%esi),%esi
4061e0:	85 f6                	test   %esi,%esi
4061e2:	75 05                	jne    0x4061e9
4061e4:	e9 94 00 00 00       	jmp    0x40627d
4061e9:	8b 4e 10             	mov    0x10(%esi),%ecx
4061ec:	8b 76 0c             	mov    0xc(%esi),%esi
4061ef:	85 f6                	test   %esi,%esi
4061f1:	75 05                	jne    0x4061f8
4061f3:	e9 85 00 00 00       	jmp    0x40627d
4061f8:	c1 e1 04             	shl    $0x4,%ecx
4061fb:	8d 74 0e f0          	lea    -0x10(%esi,%ecx,1),%esi
4061ff:	85 c9                	test   %ecx,%ecx
406201:	74 77                	je     0x40627a
406203:	89 f7                	mov    %esi,%edi
406205:	ad                   	lods   %ds:(%esi),%eax
406206:	83 c6 04             	add    $0x4,%esi
406209:	89 c3                	mov    %eax,%ebx
40620b:	66 81 e3 00 40       	and    $0x4000,%bx
406210:	74 06                	je     0x406218
406212:	8b 36                	mov    (%esi),%esi
406214:	66 35 00 40          	xor    $0x4000,%ax
406218:	66 83 f8 11          	cmp    $0x11,%ax
40621c:	75 06                	jne    0x406224