408daf:	eb 0b                	jmp    0x408dbc
408db1:	ff 15 40 f0 40 00    	call   *0x40f040
408db7:	b9 c8 45 40 00       	mov    $0x4045c8,%ecx
408dbc:	8b d0                	mov    %eax,%edx
408dbe:	e8 bd fb ff ff       	call   0x408980
408dc3:	e9 9f 00 00 00       	jmp    0x408e67
408dc8:	80 3d c4 eb 40 00 01 	cmpb   $0x1,0x40ebc4
408dcf:	75 0a                	jne    0x408ddb
408dd1:	6a 6a                	push   $0x6a
408dd3:	33 d2                	xor    %edx,%edx
408dd5:	59                   	pop    %ecx
408dd6:	e8 d4 17 00 00       	call   0x40a5af
408ddb:	e8 9d fc ff ff       	call   0x408a7d
408de0:	e9 82 00 00 00       	jmp    0x408e67
408de5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408de8:	8b 75 f4             	mov    -0xc(%ebp),%esi
408deb:	50                   	push   %eax
408dec:	ff 75 cc             	push   -0x34(%ebp)
408def:	ff 75 c8             	push   -0x38(%ebp)
408df2:	ff 15 3c 00 41 00    	call   *0x41003c
408df8:	8b c8                	mov    %eax,%ecx
408dfa:	8b 45 10             	mov    0x10(%ebp),%eax
408dfd:	89 08                	mov    %ecx,(%eax)
408dff:	85 c9                	test   %ecx,%ecx
408e01:	75 0d                	jne    0x408e10
408e03:	ff 15 40 f0 40 00    	call   *0x40f040
408e09:	b9 88 14 40 00       	mov    $0x401488,%ecx
408e0e:	eb ac                	jmp    0x408dbc
408e10:	8b 45 dc             	mov    -0x24(%ebp),%eax
408e13:	89 45 b4             	mov    %eax,-0x4c(%ebp)
408e16:	8b 45 d8             	mov    -0x28(%ebp),%eax
408e19:	89 45 b8             	mov    %eax,-0x48(%ebp)
408e1c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
408e1f:	89 45 bc             	mov    %eax,-0x44(%ebp)
408e22:	8d 45 b4             	lea    -0x4c(%ebp),%eax
408e25:	50                   	push   %eax
408e26:	6a 02                	push   $0x2
408e28:	51                   	push   %ecx
408e29:	89 7d c0             	mov    %edi,-0x40(%ebp)
408e2c:	89 75 c4             	mov    %esi,-0x3c(%ebp)
408e2f:	ff 15 68 00 41 00    	call   *0x410068
408e35:	85 c0                	test   %eax,%eax
408e37:	75 1a                	jne    0x408e53
408e39:	ff 15 40 f0 40 00    	call   *0x40f040
408e3f:	8b d8                	mov    %eax,%ebx
408e41:	85 db                	test   %ebx,%ebx
408e43:	74 0e                	je     0x408e53
408e45:	8b d3                	mov    %ebx,%edx
408e47:	b9 3c 45 40 00       	mov    $0x40453c,%ecx
408e4c:	e8 2f fb ff ff       	call   0x408980
408e51:	eb 12                	jmp    0x408e65
408e53:	6a 64                	push   $0x64
408e55:	8d 55 c8             	lea    -0x38(%ebp),%edx
408e58:	c7 45 c8 3c 45 40 00 	movl   $0x40453c,-0x38(%ebp)
408e5f:	59                   	pop    %ecx
408e60:	e8 4a 17 00 00       	call   0x40a5af
408e65:	8b c3                	mov    %ebx,%eax
408e67:	5f                   	pop    %edi
408e68:	5e                   	pop    %esi
408e69:	5b                   	pop    %ebx
408e6a:	c9                   	leave
408e6b:	c2 0c 00             	ret    $0xc
408e6e:	8b ff                	mov    %edi,%edi
408e70:	55                   	push   %ebp
408e71:	8b ec                	mov    %esp,%ebp
408e73:	51                   	push   %ecx
408e74:	51                   	push   %ecx
408e75:	56                   	push   %esi
408e76:	6a 02                	push   $0x2
408e78:	52                   	push   %edx
408e79:	51                   	push   %ecx
408e7a:	33 f6                	xor    %esi,%esi
408e7c:	ff 15 3c 00 41 00    	call   *0x41003c
408e82:	8b c8                	mov    %eax,%ecx
408e84:	8b 45 0c             	mov    0xc(%ebp),%eax
408e87:	89 08                	mov    %ecx,(%eax)
408e89:	85 c9                	test   %ecx,%ecx
408e8b:	75 16                	jne    0x408ea3
408e8d:	ff 15 40 f0 40 00    	call   *0x40f040
408e93:	8b d0                	mov    %eax,%edx
408e95:	b9 88 14 40 00       	mov    $0x401488,%ecx
408e9a:	e8 e1 fa ff ff       	call   0x408980
408e9f:	8b f0                	mov    %eax,%esi
408ea1:	eb 43                	jmp    0x408ee6
408ea3:	8b 45 08             	mov    0x8(%ebp),%eax
408ea6:	89 45 fc             	mov    %eax,-0x4(%ebp)
408ea9:	8d 45 fc             	lea    -0x4(%ebp),%eax
408eac:	50                   	push   %eax
408ead:	6a 04                	push   $0x4
408eaf:	51                   	push   %ecx
408eb0:	ff 15 68 00 41 00    	call   *0x410068
408eb6:	85 c0                	test   %eax,%eax
408eb8:	75 1a                	jne    0x408ed4
408eba:	ff 15 40 f0 40 00    	call   *0x40f040
408ec0:	8b f0                	mov    %eax,%esi
408ec2:	85 f6                	test   %esi,%esi
408ec4:	74 0e                	je     0x408ed4
408ec6:	8b d6                	mov    %esi,%edx
408ec8:	b9 3c 45 40 00       	mov    $0x40453c,%ecx
408ecd:	e8 ae fa ff ff       	call   0x408980
408ed2:	eb 12                	jmp    0x408ee6
408ed4:	6a 64                	push   $0x64
408ed6:	8d 55 f8             	lea    -0x8(%ebp),%edx
408ed9:	c7 45 f8 3c 45 40 00 	movl   $0x40453c,-0x8(%ebp)
408ee0:	59                   	pop    %ecx
408ee1:	e8 c9 16 00 00       	call   0x40a5af
408ee6:	8b c6                	mov    %esi,%eax
408ee8:	5e                   	pop    %esi
408ee9:	c9                   	leave
408eea:	c2 08 00             	ret    $0x8
408eed:	8b ff                	mov    %edi,%edi
408eef:	55                   	push   %ebp
408ef0:	8b ec                	mov    %esp,%ebp
408ef2:	51                   	push   %ecx
408ef3:	51                   	push   %ecx
408ef4:	56                   	push   %esi
408ef5:	6a 02                	push   $0x2
408ef7:	52                   	push   %edx
408ef8:	51                   	push   %ecx
408ef9:	33 f6                	xor    %esi,%esi
408efb:	ff 15 3c 00 41 00    	call   *0x41003c
408f01:	8b c8                	mov    %eax,%ecx
408f03:	8b 45 0c             	mov    0xc(%ebp),%eax
408f06:	89 08                	mov    %ecx,(%eax)
408f08:	85 c9                	test   %ecx,%ecx
408f0a:	75 16                	jne    0x408f22
408f0c:	ff 15 40 f0 40 00    	call   *0x40f040
408f12:	8b d0                	mov    %eax,%edx
408f14:	b9 88 14 40 00       	mov    $0x401488,%ecx
408f19:	e8 62 fa ff ff       	call   0x408980
408f1e:	8b f0                	mov    %eax,%esi
408f20:	eb 43                	jmp    0x408f65
408f22:	8a 45 08             	mov    0x8(%ebp),%al
408f25:	88 45 ff             	mov    %al,-0x1(%ebp)
408f28:	8d 45 ff             	lea    -0x1(%ebp),%eax
408f2b:	50                   	push   %eax
408f2c:	6a 0b                	push   $0xb
408f2e:	51                   	push   %ecx
408f2f:	ff 15 68 00 41 00    	call   *0x410068
408f35:	85 c0                	test   %eax,%eax
408f37:	75 1a                	jne    0x408f53
408f39:	ff 15 40 f0 40 00    	call   *0x40f040
408f3f:	8b f0                	mov    %eax,%esi
408f41:	85 f6                	test   %esi,%esi
408f43:	74 0e                	je     0x408f53
408f45:	8b d6                	mov    %esi,%edx
408f47:	b9 3c 45 40 00       	mov    $0x40453c,%ecx
408f4c:	e8 2f fa ff ff       	call   0x408980
408f51:	eb 12                	jmp    0x408f65
408f53:	6a 64                	push   $0x64
408f55:	8d 55 f8             	lea    -0x8(%ebp),%edx
408f58:	c7 45 f8 3c 45 40 00 	movl   $0x40453c,-0x8(%ebp)
408f5f:	59                   	pop    %ecx
408f60:	e8 4a 16 00 00       	call   0x40a5af
408f65:	8b c6                	mov    %esi,%eax
408f67:	5e                   	pop    %esi
408f68:	c9                   	leave
408f69:	c2 08 00             	ret    $0x8
408f6c:	8b ff                	mov    %edi,%edi
408f6e:	55                   	push   %ebp
408f6f:	8b ec                	mov    %esp,%ebp
408f71:	51                   	push   %ecx
408f72:	51                   	push   %ecx
408f73:	56                   	push   %esi
408f74:	6a 02                	push   $0x2
408f76:	52                   	push   %edx
408f77:	33 f6                	xor    %esi,%esi
408f79:	51                   	push   %ecx
408f7a:	89 75 fc             	mov    %esi,-0x4(%ebp)
408f7d:	ff 15 3c 00 41 00    	call   *0x41003c
408f83:	8b c8                	mov    %eax,%ecx
408f85:	8b 45 0c             	mov    0xc(%ebp),%eax
408f88:	89 08                	mov    %ecx,(%eax)
408f8a:	85 c9                	test   %ecx,%ecx
408f8c:	75 16                	jne    0x408fa4
408f8e:	ff 15 40 f0 40 00    	call   *0x40f040
408f94:	8b d0                	mov    %eax,%edx
408f96:	b9 88 14 40 00       	mov    $0x401488,%ecx
408f9b:	e8 e0 f9 ff ff       	call   0x408980
408fa0:	8b f0                	mov    %eax,%esi
408fa2:	eb 55                	jmp    0x408ff9
408fa4:	66 8b 45 08          	mov    0x8(%ebp),%ax
408fa8:	ba ff ff 00 00       	mov    $0xffff,%edx
408fad:	66 3b c2             	cmp    %dx,%ax
408fb0:	75 06                	jne    0x408fb8
408fb2:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
408fb6:	eb 04                	jmp    0x408fbc
408fb8:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
408fbc:	8d 45 fc             	lea    -0x4(%ebp),%eax
408fbf:	50                   	push   %eax
408fc0:	6a 09                	push   $0x9
408fc2:	51                   	push   %ecx
408fc3:	ff 15 68 00 41 00    	call   *0x410068
408fc9:	85 c0                	test   %eax,%eax
408fcb:	75 1a                	jne    0x408fe7
408fcd:	ff 15 40 f0 40 00    	call   *0x40f040
408fd3:	8b f0                	mov    %eax,%esi
408fd5:	85 f6                	test   %esi,%esi
408fd7:	74 0e                	je     0x408fe7
408fd9:	8b d6                	mov    %esi,%edx
408fdb:	b9 3c 45 40 00       	mov    $0x40453c,%ecx
408fe0:	e8 9b f9 ff ff       	call   0x408980
408fe5:	eb 12                	jmp    0x408ff9
408fe7:	6a 64                	push   $0x64
408fe9:	8d 55 f8             	lea    -0x8(%ebp),%edx
408fec:	c7 45 f8 3c 45 40 00 	movl   $0x40453c,-0x8(%ebp)
408ff3:	59                   	pop    %ecx
408ff4:	e8 b6 15 00 00       	call   0x40a5af
408ff9:	8b c6                	mov    %esi,%eax
408ffb:	5e                   	pop    %esi
408ffc:	c9                   	leave
408ffd:	c2 08 00             	ret    $0x8
409000:	8b ff                	mov    %edi,%edi
409002:	55                   	push   %ebp
409003:	8b ec                	mov    %esp,%ebp
409005:	51                   	push   %ecx
409006:	51                   	push   %ecx
409007:	56                   	push   %esi
409008:	57                   	push   %edi
409009:	6a 02                	push   $0x2
40900b:	52                   	push   %edx
40900c:	33 f6                	xor    %esi,%esi
40900e:	51                   	push   %ecx
40900f:	8b fe                	mov    %esi,%edi
409011:	ff 15 3c 00 41 00    	call   *0x41003c
409017:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40901a:	89 01                	mov    %eax,(%ecx)
40901c:	85 c0                	test   %eax,%eax
40901e:	75 19                	jne    0x409039
409020:	ff 15 40 f0 40 00    	call   *0x40f040
409026:	8b d0                	mov    %eax,%edx
409028:	b9 88 14 40 00       	mov    $0x401488,%ecx
40902d:	e8 4e f9 ff ff       	call   0x408980
409032:	8b f0                	mov    %eax,%esi
409034:	e9 b7 00 00 00       	jmp    0x4090f0
409039:	8b 4d 08             	mov    0x8(%ebp),%ecx
40903c:	8d 51 02             	lea    0x2(%ecx),%edx
40903f:	66 8b 01             	mov    (%ecx),%ax
409042:	83 c1 02             	add    $0x2,%ecx
409045:	66 3b c6             	cmp    %si,%ax
409048:	75 f5                	jne    0x40903f
40904a:	2b ca                	sub    %edx,%ecx
40904c:	d1 f9                	sar    $1,%ecx
40904e:	53                   	push   %ebx
40904f:	8d 1c 4d 04 00 00 00 	lea    0x4(,%ecx,2),%ebx
409056:	53                   	push   %ebx
409057:	6a 40                	push   $0x40
409059:	ff 15 64 f0 40 00    	call   *0x40f064
40905f:	8b f8                	mov    %eax,%edi
409061:	85 ff                	test   %edi,%edi
409063:	75 16                	jne    0x40907b
409065:	ff 15 40 f0 40 00    	call   *0x40f040
40906b:	8b d0                	mov    %eax,%edx
40906d:	b9 9c 4e 40 00       	mov    $0x404e9c,%ecx
409072:	e8 09 f9 ff ff       	call   0x408980
409077:	8b f0                	mov    %eax,%esi
409079:	eb 74                	jmp    0x4090ef
40907b:	ff 75 08             	push   0x8(%ebp)
40907e:	8b d3                	mov    %ebx,%edx
409080:	8b cf                	mov    %edi,%ecx
409082:	e8 bc 37 00 00       	call   0x40c843
409087:	0f b7 07             	movzwl (%edi),%eax
40908a:	8b cf                	mov    %edi,%ecx
40908c:	66 85 c0             	test   %ax,%ax
40908f:	74 1a                	je     0x4090ab
409091:	8b d0                	mov    %eax,%edx
409093:	66 83 fa 2f          	cmp    $0x2f,%dx
409097:	75 05                	jne    0x40909e
409099:	33 c0                	xor    %eax,%eax
40909b:	66 89 01             	mov    %ax,(%ecx)
40909e:	83 c1 02             	add    $0x2,%ecx
4090a1:	0f b7 01             	movzwl (%ecx),%eax
4090a4:	8b d0                	mov    %eax,%edx
4090a6:	66 85 c0             	test   %ax,%ax
4090a9:	75 e8                	jne    0x409093
4090ab:	8d 45 fc             	lea    -0x4(%ebp),%eax
4090ae:	89 7d fc             	mov    %edi,-0x4(%ebp)
4090b1:	50                   	push   %eax
4090b2:	8b 45 0c             	mov    0xc(%ebp),%eax
4090b5:	6a 06                	push   $0x6
4090b7:	ff 30                	push   (%eax)
4090b9:	ff 15 68 00 41 00    	call   *0x410068
4090bf:	85 c0                	test   %eax,%eax
4090c1:	75 1a                	jne    0x4090dd
4090c3:	ff 15 40 f0 40 00    	call   *0x40f040
4090c9:	8b f0                	mov    %eax,%esi
4090cb:	85 f6                	test   %esi,%esi
4090cd:	74 0e                	je     0x4090dd
4090cf:	8b d6                	mov    %esi,%edx
4090d1:	b9 3c 45 40 00       	mov    $0x40453c,%ecx
4090d6:	e8 a5 f8 ff ff       	call   0x408980
4090db:	eb 12                	jmp    0x4090ef
4090dd:	6a 64                	push   $0x64
4090df:	8d 55 f8             	lea    -0x8(%ebp),%edx
4090e2:	c7 45 f8 3c 45 40 00 	movl   $0x40453c,-0x8(%ebp)
4090e9:	59                   	pop    %ecx
4090ea:	e8 c0 14 00 00       	call   0x40a5af
4090ef:	5b                   	pop    %ebx
4090f0:	57                   	push   %edi
4090f1:	ff 15 68 f0 40 00    	call   *0x40f068
4090f7:	5f                   	pop    %edi
4090f8:	8b c6                	mov    %esi,%eax
4090fa:	5e                   	pop    %esi
4090fb:	c9                   	leave
4090fc:	c2 08 00             	ret    $0x8
4090ff:	8b ff                	mov    %edi,%edi
409101:	55                   	push   %ebp
409102:	8b ec                	mov    %esp,%ebp
409104:	51                   	push   %ecx
409105:	51                   	push   %ecx
409106:	56                   	push   %esi
409107:	6a 02                	push   $0x2
409109:	52                   	push   %edx
40910a:	51                   	push   %ecx
40910b:	33 f6                	xor    %esi,%esi
40910d:	ff 15 3c 00 41 00    	call   *0x41003c
409113:	8b c8                	mov    %eax,%ecx
409115:	8b 45 0c             	mov    0xc(%ebp),%eax
409118:	89 08                	mov    %ecx,(%eax)
40911a:	85 c9                	test   %ecx,%ecx
40911c:	75 16                	jne    0x409134
40911e:	ff 15 40 f0 40 00    	call   *0x40f040
409124:	8b d0                	mov    %eax,%edx
409126:	b9 88 14 40 00       	mov    $0x401488,%ecx
40912b:	e8 50 f8 ff ff       	call   0x408980
409130:	8b f0                	mov    %eax,%esi
409132:	eb 43                	jmp    0x409177
409134:	8b 45 08             	mov    0x8(%ebp),%eax
409137:	89 45 fc             	mov    %eax,-0x4(%ebp)
40913a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40913d:	50                   	push   %eax
40913e:	6a 05                	push   $0x5
409140:	51                   	push   %ecx
409141:	ff 15 68 00 41 00    	call   *0x410068
409147:	85 c0                	test   %eax,%eax
409149:	75 1a                	jne    0x409165
40914b:	ff 15 40 f0 40 00    	call   *0x40f040
409151:	8b f0                	mov    %eax,%esi
409153:	85 f6                	test   %esi,%esi
409155:	74 0e                	je     0x409165
409157:	8b d6                	mov    %esi,%edx
409159:	b9 3c 45 40 00       	mov    $0x40453c,%ecx
40915e:	e8 1d f8 ff ff       	call   0x408980
409163:	eb 12                	jmp    0x409177
409165:	6a 64                	push   $0x64
409167:	8d 55 f8             	lea    -0x8(%ebp),%edx
40916a:	c7 45 f8 3c 45 40 00 	movl   $0x40453c,-0x8(%ebp)
409171:	59                   	pop    %ecx
409172:	e8 38 14 00 00       	call   0x40a5af
409177:	8b c6                	mov    %esi,%eax