408d2b:	ff 35 90 f0 40 00    	push   0x40f090
408d31:	ff 35 d4 2f 40 00    	push   0x402fd4
408d37:	ff 75 08             	push   0x8(%ebp)
408d3a:	68 00 00 40 00       	push   $0x400000
408d3f:	ff 15 94 f0 40 00    	call   *0x40f094
408d45:	5d                   	pop    %ebp
408d46:	c2 08 00             	ret    $0x8
408d49:	8b ff                	mov    %edi,%edi
408d4b:	55                   	push   %ebp
408d4c:	8b ec                	mov    %esp,%ebp
408d4e:	5d                   	pop    %ebp
408d4f:	e9 00 00 00 00       	jmp    0x408d54
408d54:	8b ff                	mov    %edi,%edi
408d56:	55                   	push   %ebp
408d57:	8b ec                	mov    %esp,%ebp
408d59:	eb 0d                	jmp    0x408d68
408d5b:	ff 75 08             	push   0x8(%ebp)
408d5e:	e8 03 10 00 00       	call   0x409d66
408d63:	59                   	pop    %ecx
408d64:	85 c0                	test   %eax,%eax
408d66:	74 10                	je     0x408d78
408d68:	ff 75 08             	push   0x8(%ebp)
408d6b:	ff 15 f4 f1 40 00    	call   *0x40f1f4
408d71:	59                   	pop    %ecx
408d72:	85 c0                	test   %eax,%eax
408d74:	74 e5                	je     0x408d5b
408d76:	5d                   	pop    %ebp
408d77:	c3                   	ret
408d78:	e9 7f 03 00 00       	jmp    0x4090fc
408d7d:	8b ff                	mov    %edi,%edi
408d7f:	55                   	push   %ebp
408d80:	8b ec                	mov    %esp,%ebp
408d82:	33 c0                	xor    %eax,%eax
408d84:	39 45 08             	cmp    %eax,0x8(%ebp)
408d87:	74 11                	je     0x408d9a
408d89:	ff 75 08             	push   0x8(%ebp)
408d8c:	e8 c3 ff ff ff       	call   0x408d54
408d91:	59                   	pop    %ecx
408d92:	85 c0                	test   %eax,%eax
408d94:	0f 84 62 03 00 00    	je     0x4090fc
408d9a:	5d                   	pop    %ebp
408d9b:	c3                   	ret
408d9c:	8b ff                	mov    %edi,%edi
408d9e:	55                   	push   %ebp
408d9f:	8b ec                	mov    %esp,%ebp
408da1:	56                   	push   %esi
408da2:	ff 75 08             	push   0x8(%ebp)
408da5:	8b f1                	mov    %ecx,%esi
408da7:	83 66 10 00          	andl   $0x0,0x10(%esi)
408dab:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
408db2:	c6 06 00             	movb   $0x0,(%esi)
408db5:	e8 2e 06 00 00       	call   0x4093e8
408dba:	59                   	pop    %ecx
408dbb:	50                   	push   %eax
408dbc:	ff 75 08             	push   0x8(%ebp)
408dbf:	8b ce                	mov    %esi,%ecx
408dc1:	e8 45 04 00 00       	call   0x40920b
408dc6:	8b c6                	mov    %esi,%eax
408dc8:	5e                   	pop    %esi
408dc9:	5d                   	pop    %ebp
408dca:	c2 04 00             	ret    $0x4
408dcd:	cc                   	int3
408dce:	cc                   	int3
408dcf:	cc                   	int3
408dd0:	8b ff                	mov    %edi,%edi
408dd2:	55                   	push   %ebp
408dd3:	8b ec                	mov    %esp,%ebp
408dd5:	51                   	push   %ecx
408dd6:	56                   	push   %esi
408dd7:	ff 75 08             	push   0x8(%ebp)
408dda:	8b f1                	mov    %ecx,%esi
408ddc:	89 75 fc             	mov    %esi,-0x4(%ebp)
408ddf:	e8 9c 0f 00 00       	call   0x409d80
408de4:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
408dea:	8b c6                	mov    %esi,%eax
408dec:	5e                   	pop    %esi
408ded:	c9                   	leave
408dee:	c2 04 00             	ret    $0x4
408df1:	8b ff                	mov    %edi,%edi
408df3:	55                   	push   %ebp
408df4:	8b ec                	mov    %esp,%ebp
408df6:	51                   	push   %ecx
408df7:	56                   	push   %esi
408df8:	6a 01                	push   $0x1
408dfa:	8d 45 fc             	lea    -0x4(%ebp),%eax
408dfd:	c7 45 fc ec 28 40 00 	movl   $0x4028ec,-0x4(%ebp)
408e04:	50                   	push   %eax
408e05:	8b f1                	mov    %ecx,%esi
408e07:	e8 66 0f 00 00       	call   0x409d72
408e0c:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
408e12:	8b c6                	mov    %esi,%eax
408e14:	5e                   	pop    %esi
408e15:	c9                   	leave
408e16:	c3                   	ret
408e17:	cc                   	int3
408e18:	cc                   	int3
408e19:	cc                   	int3
408e1a:	cc                   	int3
408e1b:	cc                   	int3
408e1c:	cc                   	int3
408e1d:	cc                   	int3
408e1e:	cc                   	int3
408e1f:	cc                   	int3
408e20:	8b ff                	mov    %edi,%edi
408e22:	55                   	push   %ebp
408e23:	8b ec                	mov    %esp,%ebp
408e25:	51                   	push   %ecx
408e26:	56                   	push   %esi
408e27:	ff 75 08             	push   0x8(%ebp)
408e2a:	8b f1                	mov    %ecx,%esi
408e2c:	89 75 fc             	mov    %esi,-0x4(%ebp)
408e2f:	e8 4c 0f 00 00       	call   0x409d80
408e34:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
408e3a:	8b c6                	mov    %esi,%eax
408e3c:	5e                   	pop    %esi
408e3d:	c9                   	leave
408e3e:	c2 04 00             	ret    $0x4
408e41:	8b ff                	mov    %edi,%edi
408e43:	55                   	push   %ebp
408e44:	8b ec                	mov    %esp,%ebp
408e46:	51                   	push   %ecx
408e47:	8b 45 08             	mov    0x8(%ebp),%eax
408e4a:	56                   	push   %esi
408e4b:	8b f1                	mov    %ecx,%esi
408e4d:	89 75 fc             	mov    %esi,-0x4(%ebp)
408e50:	89 45 fc             	mov    %eax,-0x4(%ebp)
408e53:	8d 45 fc             	lea    -0x4(%ebp),%eax
408e56:	50                   	push   %eax
408e57:	e8 10 0f 00 00       	call   0x409d6c
408e5c:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
408e62:	8b c6                	mov    %esi,%eax
408e64:	5e                   	pop    %esi
408e65:	c9                   	leave
408e66:	c2 04 00             	ret    $0x4
408e69:	cc                   	int3
408e6a:	cc                   	int3
408e6b:	cc                   	int3
408e6c:	cc                   	int3
408e6d:	cc                   	int3
408e6e:	cc                   	int3
408e6f:	cc                   	int3
408e70:	c7 01 00 10 40 00    	movl   $0x401000,(%ecx)
408e76:	e9 0b 0f 00 00       	jmp    0x409d86
408e7b:	cc                   	int3
408e7c:	cc                   	int3
408e7d:	cc                   	int3
408e7e:	cc                   	int3
408e7f:	cc                   	int3
408e80:	e9 01 0f 00 00       	jmp    0x409d86
408e85:	8b ff                	mov    %edi,%edi
408e87:	55                   	push   %ebp
408e88:	8b ec                	mov    %esp,%ebp
408e8a:	8b 55 08             	mov    0x8(%ebp),%edx
408e8d:	8b 41 04             	mov    0x4(%ecx),%eax
408e90:	3b 42 04             	cmp    0x4(%edx),%eax
408e93:	75 0a                	jne    0x408e9f
408e95:	8b 01                	mov    (%ecx),%eax
408e97:	3b 02                	cmp    (%edx),%eax
408e99:	75 04                	jne    0x408e9f
408e9b:	b0 01                	mov    $0x1,%al
408e9d:	eb 02                	jmp    0x408ea1
408e9f:	32 c0                	xor    %al,%al
408ea1:	5d                   	pop    %ebp
408ea2:	c2 04 00             	ret    $0x4
408ea5:	cc                   	int3
408ea6:	cc                   	int3
408ea7:	cc                   	int3
408ea8:	cc                   	int3
408ea9:	cc                   	int3
408eaa:	cc                   	int3
408eab:	cc                   	int3
408eac:	cc                   	int3
408ead:	cc                   	int3
408eae:	cc                   	int3
408eaf:	cc                   	int3
408eb0:	8b ff                	mov    %edi,%edi
408eb2:	55                   	push   %ebp
408eb3:	8b ec                	mov    %esp,%ebp
408eb5:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
408eb9:	56                   	push   %esi
408eba:	8b f1                	mov    %ecx,%esi
408ebc:	c7 06 10 10 40 00    	movl   $0x401010,(%esi)
408ec2:	74 07                	je     0x408ecb
408ec4:	56                   	push   %esi
408ec5:	e8 80 09 00 00       	call   0x40984a
408eca:	59                   	pop    %ecx
408ecb:	8b c6                	mov    %esi,%eax
408ecd:	5e                   	pop    %esi
408ece:	5d                   	pop    %ebp
408ecf:	c2 04 00             	ret    $0x4
408ed2:	cc                   	int3
408ed3:	cc                   	int3
408ed4:	cc                   	int3
408ed5:	cc                   	int3
408ed6:	cc                   	int3
408ed7:	cc                   	int3
408ed8:	cc                   	int3
408ed9:	cc                   	int3
408eda:	cc                   	int3
408edb:	cc                   	int3
408edc:	cc                   	int3
408edd:	cc                   	int3
408ede:	cc                   	int3
408edf:	cc                   	int3
408ee0:	8b ff                	mov    %edi,%edi
408ee2:	55                   	push   %ebp
408ee3:	8b ec                	mov    %esp,%ebp
408ee5:	56                   	push   %esi
408ee6:	8b f1                	mov    %ecx,%esi
408ee8:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
408eee:	e8 93 0e 00 00       	call   0x409d86
408ef3:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
408ef7:	74 07                	je     0x408f00
408ef9:	56                   	push   %esi
408efa:	e8 4b 09 00 00       	call   0x40984a
408eff:	59                   	pop    %ecx
408f00:	8b c6                	mov    %esi,%eax
408f02:	5e                   	pop    %esi
408f03:	5d                   	pop    %ebp
408f04:	c2 04 00             	ret    $0x4
408f07:	cc                   	int3
408f08:	cc                   	int3
408f09:	cc                   	int3
408f0a:	cc                   	int3
408f0b:	cc                   	int3
408f0c:	cc                   	int3
408f0d:	cc                   	int3
408f0e:	cc                   	int3
408f0f:	cc                   	int3
408f10:	8b ff                	mov    %edi,%edi
408f12:	55                   	push   %ebp
408f13:	8b ec                	mov    %esp,%ebp
408f15:	56                   	push   %esi
408f16:	8b f1                	mov    %ecx,%esi
408f18:	e8 69 0e 00 00       	call   0x409d86
408f1d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
408f21:	74 07                	je     0x408f2a
408f23:	56                   	push   %esi
408f24:	e8 21 09 00 00       	call   0x40984a
408f29:	59                   	pop    %ecx
408f2a:	8b c6                	mov    %esi,%eax
408f2c:	5e                   	pop    %esi
408f2d:	5d                   	pop    %ebp
408f2e:	c2 04 00             	ret    $0x4
408f31:	6a 10                	push   $0x10
408f33:	b8 94 a6 40 00       	mov    $0x40a694,%eax
408f38:	e8 fa 0e 00 00       	call   0x409e37
408f3d:	8b f9                	mov    %ecx,%edi
408f3f:	89 7d e8             	mov    %edi,-0x18(%ebp)
408f42:	8b 75 08             	mov    0x8(%ebp),%esi
408f45:	83 ce 0f             	or     $0xf,%esi
408f48:	83 fe fe             	cmp    $0xfffffffe,%esi
408f4b:	76 05                	jbe    0x408f52
408f4d:	8b 75 08             	mov    0x8(%ebp),%esi
408f50:	eb 2a                	jmp    0x408f7c
408f52:	33 d2                	xor    %edx,%edx
408f54:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
408f5b:	8b c6                	mov    %esi,%eax
408f5d:	8b 5f 14             	mov    0x14(%edi),%ebx
408f60:	f7 75 ec             	divl   -0x14(%ebp)
408f63:	8b cb                	mov    %ebx,%ecx
408f65:	d1 e9                	shr    $1,%ecx
408f67:	3b c8                	cmp    %eax,%ecx
408f69:	76 11                	jbe    0x408f7c
408f6b:	6a fe                	push   $0xfffffffe
408f6d:	58                   	pop    %eax
408f6e:	2b c1                	sub    %ecx,%eax
408f70:	3b d8                	cmp    %eax,%ebx
408f72:	77 05                	ja     0x408f79
408f74:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
408f77:	eb 03                	jmp    0x408f7c
408f79:	6a fe                	push   $0xfffffffe
408f7b:	5e                   	pop    %esi
408f7c:	33 db                	xor    %ebx,%ebx
408f7e:	8d 46 01             	lea    0x1(%esi),%eax
408f81:	53                   	push   %ebx
408f82:	50                   	push   %eax
408f83:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408f86:	e8 f2 fd ff ff       	call   0x408d7d
408f8b:	59                   	pop    %ecx
408f8c:	59                   	pop    %ecx
408f8d:	eb 2c                	jmp    0x408fbb
408f8f:	8b 45 08             	mov    0x8(%ebp),%eax
408f92:	89 65 f0             	mov    %esp,-0x10(%ebp)
408f95:	89 45 ec             	mov    %eax,-0x14(%ebp)
408f98:	40                   	inc    %eax
408f99:	6a 00                	push   $0x0
408f9b:	50                   	push   %eax
408f9c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
408fa0:	e8 d8 fd ff ff       	call   0x408d7d
408fa5:	59                   	pop    %ecx
408fa6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408fa9:	b8 b0 8f 40 00       	mov    $0x408fb0,%eax
408fae:	59                   	pop    %ecx
408faf:	c3                   	ret
408fb0:	8b 7d e8             	mov    -0x18(%ebp),%edi
408fb3:	33 db                	xor    %ebx,%ebx
408fb5:	8b 75 ec             	mov    -0x14(%ebp),%esi
408fb8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408fbb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408fbe:	89 45 ec             	mov    %eax,-0x14(%ebp)
408fc1:	85 c9                	test   %ecx,%ecx
408fc3:	74 17                	je     0x408fdc
408fc5:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
408fc9:	72 04                	jb     0x408fcf
408fcb:	8b 17                	mov    (%edi),%edx
408fcd:	eb 02                	jmp    0x408fd1
408fcf:	8b d7                	mov    %edi,%edx
408fd1:	51                   	push   %ecx
408fd2:	52                   	push   %edx
408fd3:	50                   	push   %eax
408fd4:	e8 cd 0e 00 00       	call   0x409ea6
408fd9:	83 c4 0c             	add    $0xc,%esp
408fdc:	53                   	push   %ebx
408fdd:	6a 01                	push   $0x1
408fdf:	8b cf                	mov    %edi,%ecx
408fe1:	e8 d0 00 00 00       	call   0x4090b6
408fe6:	8b 45 ec             	mov    -0x14(%ebp),%eax
408fe9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408fec:	89 07                	mov    %eax,(%edi)
408fee:	89 77 14             	mov    %esi,0x14(%edi)
408ff1:	89 4f 10             	mov    %ecx,0x10(%edi)
408ff4:	83 fe 10             	cmp    $0x10,%esi
408ff7:	73 02                	jae    0x408ffb
408ff9:	8b c7                	mov    %edi,%eax
408ffb:	88 1c 08             	mov    %bl,(%eax,%ecx,1)
408ffe:	e8 99 0d 00 00       	call   0x409d9c
409003:	c2 08 00             	ret    $0x8
409006:	8b 4d e8             	mov    -0x18(%ebp),%ecx
409009:	33 db                	xor    %ebx,%ebx
40900b:	53                   	push   %ebx
40900c:	6a 01                	push   $0x1
40900e:	e8 a3 00 00 00       	call   0x4090b6
409013:	53                   	push   %ebx
409014:	53                   	push   %ebx
409015:	e8 7c 0d 00 00       	call   0x409d96
40901a:	cc                   	int3
40901b:	8b ff                	mov    %edi,%edi
40901d:	55                   	push   %ebp
40901e:	8b ec                	mov    %esp,%ebp
409020:	56                   	push   %esi
409021:	8b 75 08             	mov    0x8(%ebp),%esi
409024:	83 fe fe             	cmp    $0xfffffffe,%esi
409027:	77 4a                	ja     0x409073
409029:	39 71 14             	cmp    %esi,0x14(%ecx)
40902c:	73 0b                	jae    0x409039
40902e:	ff 71 10             	push   0x10(%ecx)
409031:	56                   	push   %esi
409032:	e8 fa fe ff ff       	call   0x408f31
409037:	eb 30                	jmp    0x409069