402d23:	89 4d e0             	mov    %ecx,-0x20(%ebp)
402d26:	8d 41 04             	lea    0x4(%ecx),%eax
402d29:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
402d30:	50                   	push   %eax
402d31:	e8 63 1f 00 00       	call   0x404c99
402d36:	83 c4 04             	add    $0x4,%esp
402d39:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402d3d:	8b 75 e0             	mov    -0x20(%ebp),%esi
402d40:	74 09                	je     0x402d4b
402d42:	56                   	push   %esi
402d43:	e8 e1 08 00 00       	call   0x403629
402d48:	83 c4 04             	add    $0x4,%esp
402d4b:	8b 45 e8             	mov    -0x18(%ebp),%eax
402d4e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402d54:	89 f0                	mov    %esi,%eax
402d56:	83 c4 14             	add    $0x14,%esp
402d59:	5e                   	pop    %esi
402d5a:	5f                   	pop    %edi
402d5b:	5b                   	pop    %ebx
402d5c:	5d                   	pop    %ebp
402d5d:	c2 04 00             	ret    $0x4
402d60:	55                   	push   %ebp
402d61:	50                   	push   %eax
402d62:	83 c5 0c             	add    $0xc,%ebp
402d65:	e8 ff 1c 00 00       	call   0x404a69
402d6a:	cc                   	int3
402d6b:	cc                   	int3
402d6c:	cc                   	int3
402d6d:	cc                   	int3
402d6e:	cc                   	int3
402d6f:	cc                   	int3
402d70:	8b 49 04             	mov    0x4(%ecx),%ecx
402d73:	85 c9                	test   %ecx,%ecx
402d75:	b8 a4 94 41 00       	mov    $0x4194a4,%eax
402d7a:	0f 45 c1             	cmovne %ecx,%eax
402d7d:	c3                   	ret
402d7e:	cc                   	int3
402d7f:	cc                   	int3
402d80:	55                   	push   %ebp
402d81:	89 e5                	mov    %esp,%ebp
402d83:	53                   	push   %ebx
402d84:	57                   	push   %edi
402d85:	56                   	push   %esi
402d86:	83 ec 1c             	sub    $0x1c,%esp
402d89:	8b 7d 08             	mov    0x8(%ebp),%edi
402d8c:	89 65 e4             	mov    %esp,-0x1c(%ebp)
402d8f:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
402d96:	8d 45 e8             	lea    -0x18(%ebp),%eax
402d99:	c7 45 ec 80 35 40 00 	movl   $0x403580,-0x14(%ebp)
402da0:	64 8b 15 00 00 00 00 	mov    %fs:0x0,%edx
402da7:	89 55 e8             	mov    %edx,-0x18(%ebp)
402daa:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402db0:	8b 51 10             	mov    0x10(%ecx),%edx
402db3:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
402db8:	29 d0                	sub    %edx,%eax
402dba:	39 f8                	cmp    %edi,%eax
402dbc:	0f 82 a0 01 00 00    	jb     0x402f62
402dc2:	89 55 d8             	mov    %edx,-0x28(%ebp)
402dc5:	01 d7                	add    %edx,%edi
402dc7:	89 f8                	mov    %edi,%eax
402dc9:	83 c8 07             	or     $0x7,%eax
402dcc:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
402dd1:	0f 87 86 01 00 00    	ja     0x402f5d
402dd7:	8b 71 14             	mov    0x14(%ecx),%esi
402dda:	89 f3                	mov    %esi,%ebx
402ddc:	d1 eb                	shr    $1,%ebx
402dde:	ba fe ff ff 7f       	mov    $0x7ffffffe,%edx
402de3:	29 da                	sub    %ebx,%edx
402de5:	39 f2                	cmp    %esi,%edx
402de7:	0f 82 70 01 00 00    	jb     0x402f5d
402ded:	01 f3                	add    %esi,%ebx
402def:	39 d8                	cmp    %ebx,%eax
402df1:	0f 47 d8             	cmova  %eax,%ebx
402df4:	89 da                	mov    %ebx,%edx
402df6:	42                   	inc    %edx
402df7:	0f 88 60 01 00 00    	js     0x402f5d
402dfd:	8d 04 12             	lea    (%edx,%edx,1),%eax
402e00:	81 fa 00 08 00 00    	cmp    $0x800,%edx
402e06:	89 4d dc             	mov    %ecx,-0x24(%ebp)
402e09:	72 29                	jb     0x402e34
402e0b:	81 fa ef ff ff 7f    	cmp    $0x7fffffef,%edx
402e11:	0f 83 46 01 00 00    	jae    0x402f5d
402e17:	83 c0 23             	add    $0x23,%eax
402e1a:	50                   	push   %eax
402e1b:	e8 d9 07 00 00       	call   0x4035f9
402e20:	8b 4d dc             	mov    -0x24(%ebp),%ecx
402e23:	83 c4 04             	add    $0x4,%esp
402e26:	8d 50 23             	lea    0x23(%eax),%edx
402e29:	83 e2 e0             	and    $0xffffffe0,%edx
402e2c:	89 55 e0             	mov    %edx,-0x20(%ebp)
402e2f:	89 42 fc             	mov    %eax,-0x4(%edx)
402e32:	eb 1c                	jmp    0x402e50
402e34:	85 d2                	test   %edx,%edx
402e36:	74 11                	je     0x402e49
402e38:	50                   	push   %eax
402e39:	e8 bb 07 00 00       	call   0x4035f9
402e3e:	8b 4d dc             	mov    -0x24(%ebp),%ecx
402e41:	83 c4 04             	add    $0x4,%esp
402e44:	89 45 e0             	mov    %eax,-0x20(%ebp)
402e47:	eb 07                	jmp    0x402e50
402e49:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
402e50:	89 79 10             	mov    %edi,0x10(%ecx)
402e53:	89 59 14             	mov    %ebx,0x14(%ecx)
402e56:	8b 45 10             	mov    0x10(%ebp),%eax
402e59:	83 fe 08             	cmp    $0x8,%esi
402e5c:	0f 82 8f 00 00 00    	jb     0x402ef1
402e62:	8b 39                	mov    (%ecx),%edi
402e64:	01 c0                	add    %eax,%eax
402e66:	50                   	push   %eax
402e67:	57                   	push   %edi
402e68:	8b 5d e0             	mov    -0x20(%ebp),%ebx
402e6b:	53                   	push   %ebx
402e6c:	e8 bf 14 00 00       	call   0x404330
402e71:	83 c4 0c             	add    $0xc,%esp
402e74:	8b 45 10             	mov    0x10(%ebp),%eax
402e77:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
402e7a:	8b 45 1c             	mov    0x1c(%ebp),%eax
402e7d:	01 c0                	add    %eax,%eax
402e7f:	50                   	push   %eax
402e80:	ff 75 18             	push   0x18(%ebp)
402e83:	53                   	push   %ebx
402e84:	e8 a7 14 00 00       	call   0x404330
402e89:	83 c4 0c             	add    $0xc,%esp
402e8c:	8b 45 14             	mov    0x14(%ebp),%eax
402e8f:	8b 4d 10             	mov    0x10(%ebp),%ecx
402e92:	01 c8                	add    %ecx,%eax
402e94:	8b 55 d8             	mov    -0x28(%ebp),%edx
402e97:	29 c2                	sub    %eax,%edx
402e99:	8d 04 4f             	lea    (%edi,%ecx,2),%eax
402e9c:	8b 4d 14             	mov    0x14(%ebp),%ecx
402e9f:	8d 04 48             	lea    (%eax,%ecx,2),%eax
402ea2:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
402ea5:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
402ea8:	8d 54 12 02          	lea    0x2(%edx,%edx,1),%edx
402eac:	52                   	push   %edx
402ead:	50                   	push   %eax
402eae:	51                   	push   %ecx
402eaf:	e8 7c 14 00 00       	call   0x404330
402eb4:	83 c4 0c             	add    $0xc,%esp
402eb7:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
402eba:	83 c1 02             	add    $0x2,%ecx
402ebd:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402ec3:	72 1a                	jb     0x402edf
402ec5:	8b 47 fc             	mov    -0x4(%edi),%eax
402ec8:	83 c7 fc             	add    $0xfffffffc,%edi
402ecb:	29 c7                	sub    %eax,%edi
402ecd:	83 ff 20             	cmp    $0x20,%edi
402ed0:	0f 83 91 00 00 00    	jae    0x402f67
402ed6:	01 f6                	add    %esi,%esi
402ed8:	83 c6 25             	add    $0x25,%esi
402edb:	89 f1                	mov    %esi,%ecx
402edd:	89 c7                	mov    %eax,%edi
402edf:	8b 5d e0             	mov    -0x20(%ebp),%ebx
402ee2:	51                   	push   %ecx
402ee3:	57                   	push   %edi
402ee4:	e8 02 07 00 00       	call   0x4035eb
402ee9:	83 c4 08             	add    $0x8,%esp
402eec:	8b 7d dc             	mov    -0x24(%ebp),%edi
402eef:	eb 55                	jmp    0x402f46
402ef1:	01 c0                	add    %eax,%eax
402ef3:	50                   	push   %eax
402ef4:	51                   	push   %ecx
402ef5:	8b 5d e0             	mov    -0x20(%ebp),%ebx
402ef8:	53                   	push   %ebx
402ef9:	89 cf                	mov    %ecx,%edi
402efb:	e8 30 14 00 00       	call   0x404330
402f00:	83 c4 0c             	add    $0xc,%esp
402f03:	8b 45 10             	mov    0x10(%ebp),%eax
402f06:	8d 34 43             	lea    (%ebx,%eax,2),%esi
402f09:	8b 45 1c             	mov    0x1c(%ebp),%eax
402f0c:	01 c0                	add    %eax,%eax
402f0e:	50                   	push   %eax
402f0f:	ff 75 18             	push   0x18(%ebp)
402f12:	56                   	push   %esi
402f13:	e8 18 14 00 00       	call   0x404330
402f18:	83 c4 0c             	add    $0xc,%esp
402f1b:	8b 45 14             	mov    0x14(%ebp),%eax
402f1e:	8b 4d 10             	mov    0x10(%ebp),%ecx
402f21:	01 c8                	add    %ecx,%eax
402f23:	8b 55 d8             	mov    -0x28(%ebp),%edx
402f26:	29 c2                	sub    %eax,%edx
402f28:	8d 04 4f             	lea    (%edi,%ecx,2),%eax
402f2b:	8b 4d 14             	mov    0x14(%ebp),%ecx
402f2e:	8d 04 48             	lea    (%eax,%ecx,2),%eax
402f31:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
402f34:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
402f37:	8d 54 12 02          	lea    0x2(%edx,%edx,1),%edx
402f3b:	52                   	push   %edx
402f3c:	50                   	push   %eax
402f3d:	51                   	push   %ecx
402f3e:	e8 ed 13 00 00       	call   0x404330
402f43:	83 c4 0c             	add    $0xc,%esp
402f46:	89 1f                	mov    %ebx,(%edi)
402f48:	8b 45 e8             	mov    -0x18(%ebp),%eax
402f4b:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402f51:	89 f8                	mov    %edi,%eax
402f53:	83 c4 1c             	add    $0x1c,%esp
402f56:	5e                   	pop    %esi
402f57:	5f                   	pop    %edi
402f58:	5b                   	pop    %ebx
402f59:	5d                   	pop    %ebp
402f5a:	c2 18 00             	ret    $0x18
402f5d:	e8 3e fb ff ff       	call   0x402aa0
402f62:	e8 29 fb ff ff       	call   0x402a90
402f67:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
402f6e:	e8 66 45 00 00       	call   0x4074d9
402f73:	66 66 66 66 2e 0f 1f 	data16 data16 data16 nopw %cs:0x0(%eax,%eax,1)
402f7a:	84 00 00 00 00 00
402f80:	55                   	push   %ebp
402f81:	83 ec 0c             	sub    $0xc,%esp
402f84:	83 c5 0c             	add    $0xc,%ebp
402f87:	e8 dd 1a 00 00       	call   0x404a69
402f8c:	cc                   	int3
402f8d:	cc                   	int3
402f8e:	cc                   	int3
402f8f:	cc                   	int3
402f90:	68 b6 94 41 00       	push   $0x4194b6
402f95:	e8 6f 13 00 00       	call   0x404309
402f9a:	cc                   	int3
402f9b:	cc                   	int3
402f9c:	cc                   	int3
402f9d:	cc                   	int3
402f9e:	cc                   	int3
402f9f:	cc                   	int3
402fa0:	b8 28 1a 42 00       	mov    $0x421a28,%eax
402fa5:	c3                   	ret
402fa6:	cc                   	int3
402fa7:	cc                   	int3
402fa8:	cc                   	int3
402fa9:	cc                   	int3
402faa:	cc                   	int3
402fab:	cc                   	int3
402fac:	cc                   	int3
402fad:	cc                   	int3
402fae:	cc                   	int3
402faf:	cc                   	int3
402fb0:	55                   	push   %ebp
402fb1:	53                   	push   %ebx
402fb2:	57                   	push   %edi
402fb3:	56                   	push   %esi
402fb4:	8b 5c 24 18          	mov    0x18(%esp),%ebx
402fb8:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
402fbe:	0f 83 a6 00 00 00    	jae    0x40306a
402fc4:	89 ce                	mov    %ecx,%esi
402fc6:	83 fb 07             	cmp    $0x7,%ebx
402fc9:	77 20                	ja     0x402feb
402fcb:	89 5e 10             	mov    %ebx,0x10(%esi)
402fce:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
402fd5:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
402fd8:	50                   	push   %eax
402fd9:	ff 74 24 18          	push   0x18(%esp)
402fdd:	56                   	push   %esi
402fde:	e8 4d 13 00 00       	call   0x404330
402fe3:	83 c4 0c             	add    $0xc,%esp
402fe6:	8d 04 5e             	lea    (%esi,%ebx,2),%eax
402fe9:	eb 73                	jmp    0x40305e
402feb:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
402ff2:	89 d8                	mov    %ebx,%eax
402ff4:	83 c8 07             	or     $0x7,%eax
402ff7:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
402ffc:	77 71                	ja     0x40306f
402ffe:	83 f8 0b             	cmp    $0xb,%eax
403001:	bd 0a 00 00 00       	mov    $0xa,%ebp
403006:	0f 43 e8             	cmovae %eax,%ebp
403009:	89 e8                	mov    %ebp,%eax
40300b:	01 e8                	add    %ebp,%eax
40300d:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
403013:	72 1f                	jb     0x403034
403015:	81 fd ee ff ff 7f    	cmp    $0x7fffffee,%ebp
40301b:	73 52                	jae    0x40306f
40301d:	83 c0 25             	add    $0x25,%eax
403020:	50                   	push   %eax
403021:	e8 d3 05 00 00       	call   0x4035f9
403026:	83 c4 04             	add    $0x4,%esp
403029:	8d 78 23             	lea    0x23(%eax),%edi
40302c:	83 e7 e0             	and    $0xffffffe0,%edi
40302f:	89 47 fc             	mov    %eax,-0x4(%edi)
403032:	eb 0e                	jmp    0x403042
403034:	83 c0 02             	add    $0x2,%eax
403037:	50                   	push   %eax
403038:	e8 bc 05 00 00       	call   0x4035f9
40303d:	83 c4 04             	add    $0x4,%esp
403040:	89 c7                	mov    %eax,%edi
403042:	89 3e                	mov    %edi,(%esi)
403044:	89 5e 10             	mov    %ebx,0x10(%esi)
403047:	89 6e 14             	mov    %ebp,0x14(%esi)
40304a:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
40304d:	50                   	push   %eax
40304e:	ff 74 24 18          	push   0x18(%esp)
403052:	57                   	push   %edi
403053:	e8 d8 12 00 00       	call   0x404330
403058:	83 c4 0c             	add    $0xc,%esp
40305b:	8d 04 5f             	lea    (%edi,%ebx,2),%eax
40305e:	66 c7 00 00 00       	movw   $0x0,(%eax)
403063:	5e                   	pop    %esi
403064:	5f                   	pop    %edi
403065:	5b                   	pop    %ebx
403066:	5d                   	pop    %ebp
403067:	c2 08 00             	ret    $0x8
40306a:	e8 21 fa ff ff       	call   0x402a90
40306f:	e8 2c fa ff ff       	call   0x402aa0
403074:	cc                   	int3
403075:	cc                   	int3
403076:	cc                   	int3
403077:	cc                   	int3
403078:	cc                   	int3
403079:	cc                   	int3
40307a:	cc                   	int3
40307b:	cc                   	int3
40307c:	cc                   	int3
40307d:	cc                   	int3
40307e:	cc                   	int3
40307f:	cc                   	int3
403080:	83 ec 0c             	sub    $0xc,%esp
403083:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
40308a:	00
40308b:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
403092:	00
403093:	c7 04 24 d4 94 41 00 	movl   $0x4194d4,(%esp)
40309a:	89 e0                	mov    %esp,%eax
40309c:	68 18 f9 41 00       	push   $0x41f918
4030a1:	50                   	push   %eax
4030a2:	e8 23 1b 00 00       	call   0x404bca
4030a7:	cc                   	int3
4030a8:	cc                   	int3
4030a9:	cc                   	int3
4030aa:	cc                   	int3
4030ab:	cc                   	int3
4030ac:	cc                   	int3
4030ad:	cc                   	int3
4030ae:	cc                   	int3
4030af:	cc                   	int3
4030b0:	55                   	push   %ebp
4030b1:	89 e5                	mov    %esp,%ebp
4030b3:	53                   	push   %ebx
4030b4:	57                   	push   %edi
4030b5:	56                   	push   %esi
4030b6:	83 ec 14             	sub    $0x14,%esp
4030b9:	8b 45 08             	mov    0x8(%ebp),%eax
4030bc:	89 65 e4             	mov    %esp,-0x1c(%ebp)
4030bf:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
4030c6:	8d 75 e8             	lea    -0x18(%ebp),%esi
4030c9:	c7 45 ec 90 35 40 00 	movl   $0x403590,-0x14(%ebp)
4030d0:	64 8b 15 00 00 00 00 	mov    %fs:0x0,%edx
4030d7:	89 55 e8             	mov    %edx,-0x18(%ebp)
4030da:	64 89 35 00 00 00 00 	mov    %esi,%fs:0x0
4030e1:	c7 01 88 94 41 00    	movl   $0x419488,(%ecx)
4030e7:	8d 51 04             	lea    0x4(%ecx),%edx
4030ea:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
4030f1:	89 4d e0             	mov    %ecx,-0x20(%ebp)