405f6a:	8b c6                	mov    %esi,%eax
405f6c:	5e                   	pop    %esi
405f6d:	5b                   	pop    %ebx
405f6e:	8b e5                	mov    %ebp,%esp
405f70:	5d                   	pop    %ebp
405f71:	c3                   	ret
405f72:	00 00                	add    %al,(%eax)
405f74:	53                   	push   %ebx
405f75:	6f                   	outsl  %ds:(%esi),(%dx)
405f76:	66 74 77             	data16 je 0x405ff0
405f79:	61                   	popa
405f7a:	72 65                	jb     0x405fe1
405f7c:	5c                   	pop    %esp
405f7d:	42                   	inc    %edx
405f7e:	6f                   	outsl  %ds:(%esi),(%dx)
405f7f:	72 6c                	jb     0x405fed
405f81:	61                   	popa
405f82:	6e                   	outsb  %ds:(%esi),(%dx)
405f83:	64 5c                	fs pop %esp
405f85:	4c                   	dec    %esp
405f86:	6f                   	outsl  %ds:(%esi),(%dx)
405f87:	63 61 6c             	arpl   %esp,0x6c(%ecx)
405f8a:	65 73 00             	gs jae 0x405f8d
405f8d:	00 00                	add    %al,(%eax)
405f8f:	00 53 6f             	add    %dl,0x6f(%ebx)
405f92:	66 74 77             	data16 je 0x40600c
405f95:	61                   	popa
405f96:	72 65                	jb     0x405ffd
405f98:	5c                   	pop    %esp
405f99:	42                   	inc    %edx
405f9a:	6f                   	outsl  %ds:(%esi),(%dx)
405f9b:	72 6c                	jb     0x406009
405f9d:	61                   	popa
405f9e:	6e                   	outsb  %ds:(%esi),(%dx)
405f9f:	64 5c                	fs pop %esp
405fa1:	44                   	inc    %esp
405fa2:	65 6c                	gs insb (%dx),%es:(%edi)
405fa4:	70 68                	jo     0x40600e
405fa6:	69 5c 4c 6f 63 61 6c 	imul   $0x656c6163,0x6f(%esp,%ecx,2),%ebx
405fad:	65
405fae:	73 00                	jae    0x405fb0
405fb0:	00 00                	add    %al,(%eax)
405fb2:	00 00                	add    %al,(%eax)
405fb4:	e8 0b 00 00 00       	call   0x405fc4
405fb9:	c3                   	ret
405fba:	8b c0                	mov    %eax,%eax
405fbc:	e8 23 00 00 00       	call   0x405fe4
405fc1:	c3                   	ret
405fc2:	8b c0                	mov    %eax,%eax
405fc4:	53                   	push   %ebx
405fc5:	8b d8                	mov    %eax,%ebx
405fc7:	b8 08 00 00 00       	mov    $0x8,%eax
405fcc:	e8 1b cd ff ff       	call   0x402cec
405fd1:	8b 15 38 00 46 00    	mov    0x460038,%edx
405fd7:	89 10                	mov    %edx,(%eax)
405fd9:	89 58 04             	mov    %ebx,0x4(%eax)
405fdc:	a3 38 00 46 00       	mov    %eax,0x460038
405fe1:	5b                   	pop    %ebx
405fe2:	c3                   	ret
405fe3:	90                   	nop
405fe4:	53                   	push   %ebx
405fe5:	56                   	push   %esi
405fe6:	57                   	push   %edi
405fe7:	55                   	push   %ebp
405fe8:	8b e8                	mov    %eax,%ebp
405fea:	8b 3d 38 00 46 00    	mov    0x460038,%edi
405ff0:	85 ff                	test   %edi,%edi
405ff2:	74 21                	je     0x406015
405ff4:	8b 47 04             	mov    0x4(%edi),%eax
405ff7:	3b c5                	cmp    %ebp,%eax
405ff9:	75 1a                	jne    0x406015
405ffb:	a1 38 00 46 00       	mov    0x460038,%eax
406000:	8b 00                	mov    (%eax),%eax
406002:	a3 38 00 46 00       	mov    %eax,0x460038
406007:	ba 08 00 00 00       	mov    $0x8,%edx
40600c:	8b c7                	mov    %edi,%eax
40600e:	e8 f5 cc ff ff       	call   0x402d08
406013:	eb 2d                	jmp    0x406042
406015:	8b df                	mov    %edi,%ebx
406017:	85 db                	test   %ebx,%ebx
406019:	74 27                	je     0x406042
40601b:	8b 33                	mov    (%ebx),%esi
40601d:	85 f6                	test   %esi,%esi
40601f:	74 1b                	je     0x40603c
406021:	8b 46 04             	mov    0x4(%esi),%eax
406024:	3b c5                	cmp    %ebp,%eax
406026:	75 14                	jne    0x40603c
406028:	8b fe                	mov    %esi,%edi
40602a:	8b 06                	mov    (%esi),%eax
40602c:	89 03                	mov    %eax,(%ebx)
40602e:	ba 08 00 00 00       	mov    $0x8,%edx
406033:	8b c7                	mov    %edi,%eax
406035:	e8 ce cc ff ff       	call   0x402d08
40603a:	eb 06                	jmp    0x406042
40603c:	8b 1b                	mov    (%ebx),%ebx
40603e:	85 db                	test   %ebx,%ebx
406040:	75 d9                	jne    0x40601b
406042:	5d                   	pop    %ebp
406043:	5f                   	pop    %edi
406044:	5e                   	pop    %esi
406045:	5b                   	pop    %ebx
406046:	c3                   	ret
406047:	90                   	nop
406048:	55                   	push   %ebp
406049:	8b ec                	mov    %esp,%ebp
40604b:	83 c4 f8             	add    $0xfffffff8,%esp
40604e:	53                   	push   %ebx
40604f:	56                   	push   %esi
406050:	57                   	push   %edi
406051:	89 45 fc             	mov    %eax,-0x4(%ebp)
406054:	a1 38 00 46 00       	mov    0x460038,%eax
406059:	89 45 f8             	mov    %eax,-0x8(%ebp)
40605c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
406060:	74 39                	je     0x40609b
406062:	33 c0                	xor    %eax,%eax
406064:	55                   	push   %ebp
406065:	68 83 60 40 00       	push   $0x406083
40606a:	64 ff 30             	push   %fs:(%eax)
40606d:	64 89 20             	mov    %esp,%fs:(%eax)
406070:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406073:	8b 45 fc             	mov    -0x4(%ebp),%eax
406076:	ff 53 04             	call   *0x4(%ebx)
406079:	33 c0                	xor    %eax,%eax
40607b:	5a                   	pop    %edx
40607c:	59                   	pop    %ecx
40607d:	59                   	pop    %ecx
40607e:	64 89 10             	mov    %edx,%fs:(%eax)
406081:	eb 0a                	jmp    0x40608d
406083:	e9 4c dd ff ff       	jmp    0x403dd4
406088:	e8 57 e1 ff ff       	call   0x4041e4
40608d:	8b 45 f8             	mov    -0x8(%ebp),%eax
406090:	8b 00                	mov    (%eax),%eax
406092:	89 45 f8             	mov    %eax,-0x8(%ebp)
406095:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
406099:	75 c7                	jne    0x406062
40609b:	5f                   	pop    %edi
40609c:	5e                   	pop    %esi
40609d:	5b                   	pop    %ebx
40609e:	59                   	pop    %ecx
40609f:	59                   	pop    %ecx
4060a0:	5d                   	pop    %ebp
4060a1:	c3                   	ret
4060a2:	8b c0                	mov    %eax,%eax
4060a4:	8b 15 34 00 46 00    	mov    0x460034,%edx
4060aa:	89 10                	mov    %edx,(%eax)
4060ac:	a3 34 00 46 00       	mov    %eax,0x460034
4060b1:	c3                   	ret
4060b2:	8b c0                	mov    %eax,%eax
4060b4:	55                   	push   %ebp
4060b5:	8b ec                	mov    %esp,%ebp
4060b7:	51                   	push   %ecx
4060b8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4060bb:	33 d2                	xor    %edx,%edx
4060bd:	55                   	push   %ebp
4060be:	68 18 61 40 00       	push   $0x406118
4060c3:	64 ff 32             	push   %fs:(%edx)
4060c6:	64 89 22             	mov    %esp,%fs:(%edx)
4060c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060cc:	8b 40 04             	mov    0x4(%eax),%eax
4060cf:	e8 74 ff ff ff       	call   0x406048
4060d4:	33 c0                	xor    %eax,%eax
4060d6:	5a                   	pop    %edx
4060d7:	59                   	pop    %ecx
4060d8:	59                   	pop    %ecx
4060d9:	64 89 10             	mov    %edx,%fs:(%eax)
4060dc:	68 1f 61 40 00       	push   $0x40611f
4060e1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060e4:	3b 05 34 00 46 00    	cmp    0x460034,%eax
4060ea:	75 0c                	jne    0x4060f8
4060ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060ef:	8b 00                	mov    (%eax),%eax
4060f1:	a3 34 00 46 00       	mov    %eax,0x460034
4060f6:	eb 1f                	jmp    0x406117
4060f8:	a1 34 00 46 00       	mov    0x460034,%eax
4060fd:	85 c0                	test   %eax,%eax
4060ff:	74 16                	je     0x406117
406101:	8b 10                	mov    (%eax),%edx
406103:	3b 55 fc             	cmp    -0x4(%ebp),%edx
406106:	75 09                	jne    0x406111
406108:	8b 55 fc             	mov    -0x4(%ebp),%edx
40610b:	8b 12                	mov    (%edx),%edx
40610d:	89 10                	mov    %edx,(%eax)
40610f:	eb 06                	jmp    0x406117
406111:	8b 00                	mov    (%eax),%eax
406113:	85 c0                	test   %eax,%eax
406115:	75 ea                	jne    0x406101
406117:	c3                   	ret
406118:	e9 6b df ff ff       	jmp    0x404088
40611d:	eb c2                	jmp    0x4060e1
40611f:	59                   	pop    %ecx
406120:	5d                   	pop    %ebp
406121:	c3                   	ret
406122:	8b c0                	mov    %eax,%eax
406124:	8b 10                	mov    (%eax),%edx
406126:	85 d2                	test   %edx,%edx
406128:	74 0e                	je     0x406138
40612a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
406130:	50                   	push   %eax
406131:	52                   	push   %edx
406132:	8b 02                	mov    (%edx),%eax
406134:	ff 50 08             	call   *0x8(%eax)
406137:	58                   	pop    %eax
406138:	c3                   	ret
406139:	8d 40 00             	lea    0x0(%eax),%eax
40613c:	85 d2                	test   %edx,%edx
40613e:	74 19                	je     0x406159
406140:	52                   	push   %edx
406141:	50                   	push   %eax
406142:	8b 02                	mov    (%edx),%eax
406144:	52                   	push   %edx
406145:	ff 50 04             	call   *0x4(%eax)
406148:	58                   	pop    %eax
406149:	8b 08                	mov    (%eax),%ecx
40614b:	8f 00                	pop    (%eax)
40614d:	85 c9                	test   %ecx,%ecx
40614f:	75 01                	jne    0x406152
406151:	c3                   	ret
406152:	8b 01                	mov    (%ecx),%eax
406154:	51                   	push   %ecx
406155:	ff 50 08             	call   *0x8(%eax)
406158:	c3                   	ret
406159:	8b 08                	mov    (%eax),%ecx
40615b:	85 c9                	test   %ecx,%ecx
40615d:	89 10                	mov    %edx,(%eax)
40615f:	74 06                	je     0x406167
406161:	8b 01                	mov    (%ecx),%eax
406163:	51                   	push   %ecx
406164:	ff 50 08             	call   *0x8(%eax)
406167:	c3                   	ret
406168:	85 d2                	test   %edx,%edx
40616a:	0f 84 b4 ff ff ff    	je     0x406124
406170:	57                   	push   %edi
406171:	89 c7                	mov    %eax,%edi
406173:	6a 00                	push   $0x0
406175:	54                   	push   %esp
406176:	51                   	push   %ecx
406177:	52                   	push   %edx
406178:	8b 02                	mov    (%edx),%eax
40617a:	ff 10                	call   *(%eax)
40617c:	85 c0                	test   %eax,%eax
40617e:	74 07                	je     0x406187
406180:	b0 17                	mov    $0x17,%al
406182:	e9 b5 cc ff ff       	jmp    0x402e3c
406187:	8b 07                	mov    (%edi),%eax
406189:	85 c0                	test   %eax,%eax
40618b:	74 06                	je     0x406193
40618d:	50                   	push   %eax
40618e:	8b 00                	mov    (%eax),%eax
406190:	ff 50 08             	call   *0x8(%eax)
406193:	58                   	pop    %eax
406194:	89 07                	mov    %eax,(%edi)
406196:	5f                   	pop    %edi
406197:	c3                   	ret
406198:	85 c0                	test   %eax,%eax
40619a:	74 06                	je     0x4061a2
40619c:	50                   	push   %eax
40619d:	8b 00                	mov    (%eax),%eax
40619f:	ff 50 04             	call   *0x4(%eax)
4061a2:	c3                   	ret
4061a3:	90                   	nop
4061a4:	83 c0 04             	add    $0x4,%eax
4061a7:	50                   	push   %eax
4061a8:	e8 9f b1 ff ff       	call   0x40134c
4061ad:	c3                   	ret
4061ae:	8b c0                	mov    %eax,%eax
4061b0:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4061b4:	74 07                	je     0x4061bd
4061b6:	b0 02                	mov    $0x2,%al
4061b8:	e8 7f cc ff ff       	call   0x402e3c
4061bd:	c3                   	ret
4061be:	8b c0                	mov    %eax,%eax
4061c0:	e8 c7 d6 ff ff       	call   0x40388c
4061c5:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
4061cc:	c3                   	ret
4061cd:	8d 40 00             	lea    0x0(%eax),%eax
4061d0:	55                   	push   %ebp
4061d1:	8b ec                	mov    %esp,%ebp
4061d3:	53                   	push   %ebx
4061d4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4061d7:	8b 4d 10             	mov    0x10(%ebp),%ecx
4061da:	8b 55 0c             	mov    0xc(%ebp),%edx
4061dd:	8b c3                	mov    %ebx,%eax
4061df:	e8 c4 d7 ff ff       	call   0x4039a8
4061e4:	84 c0                	test   %al,%al
4061e6:	74 04                	je     0x4061ec
4061e8:	33 c0                	xor    %eax,%eax
4061ea:	eb 05                	jmp    0x4061f1
4061ec:	b8 02 40 00 80       	mov    $0x80004002,%eax
4061f1:	5b                   	pop    %ebx
4061f2:	5d                   	pop    %ebp
4061f3:	c2 0c 00             	ret    $0xc
4061f6:	8b c0                	mov    %eax,%eax
4061f8:	55                   	push   %ebp
4061f9:	8b ec                	mov    %esp,%ebp
4061fb:	8b 45 08             	mov    0x8(%ebp),%eax
4061fe:	83 c0 04             	add    $0x4,%eax
406201:	50                   	push   %eax
406202:	e8 3d b1 ff ff       	call   0x401344
406207:	5d                   	pop    %ebp
406208:	c2 04 00             	ret    $0x4
40620b:	90                   	nop
40620c:	55                   	push   %ebp
40620d:	8b ec                	mov    %esp,%ebp
40620f:	53                   	push   %ebx
406210:	56                   	push   %esi
406211:	8b 5d 08             	mov    0x8(%ebp),%ebx
406214:	8d 43 04             	lea    0x4(%ebx),%eax
406217:	50                   	push   %eax
406218:	e8 2f b1 ff ff       	call   0x40134c
40621d:	8b f0                	mov    %eax,%esi
40621f:	85 f6                	test   %esi,%esi
406221:	75 09                	jne    0x40622c
406223:	b2 01                	mov    $0x1,%dl
406225:	8b c3                	mov    %ebx,%eax
406227:	8b 08                	mov    (%eax),%ecx
406229:	ff 51 fc             	call   *-0x4(%ecx)
40622c:	8b c6                	mov    %esi,%eax
40622e:	5e                   	pop    %esi
40622f:	5b                   	pop    %ebx
406230:	5d                   	pop    %ebp
406231:	c2 04 00             	ret    $0x4
406234:	55                   	push   %ebp
406235:	8b ec                	mov    %esp,%ebp
406237:	83 c4 f8             	add    $0xfffffff8,%esp
40623a:	53                   	push   %ebx
40623b:	56                   	push   %esi
40623c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40623f:	89 55 fc             	mov    %edx,-0x4(%ebp)
406242:	33 d2                	xor    %edx,%edx
406244:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
406248:	0f 84 b8 00 00 00    	je     0x406306
40624e:	33 f6                	xor    %esi,%esi
406250:	33 c9                	xor    %ecx,%ecx
406252:	85 c0                	test   %eax,%eax
406254:	0f 84 87 00 00 00    	je     0x4062e1
40625a:	eb 6c                	jmp    0x4062c8
40625c:	8b 55 f8             	mov    -0x8(%ebp),%edx
40625f:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
406263:	41                   	inc    %ecx
406264:	83 fa 7f             	cmp    $0x7f,%edx
406267:	77 06                	ja     0x40626f
406269:	88 14 30             	mov    %dl,(%eax,%esi,1)
40626c:	46                   	inc    %esi
40626d:	eb 59                	jmp    0x4062c8
40626f:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
406275:	76 31                	jbe    0x4062a8
406277:	8d 5e 03             	lea    0x3(%esi),%ebx
40627a:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
40627d:	77 53                	ja     0x4062d2
40627f:	8b da                	mov    %edx,%ebx