402e1a:	8b ce                	mov    %esi,%ecx
402e1c:	50                   	push   %eax
402e1d:	e8 8e 02 00 00       	call   0x4030b0
402e22:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402e25:	89 4e 10             	mov    %ecx,0x10(%esi)
402e28:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402e2b:	89 7e 14             	mov    %edi,0x14(%esi)
402e2e:	89 45 ec             	mov    %eax,-0x14(%ebp)
402e31:	8d 14 09             	lea    (%ecx,%ecx,1),%edx
402e34:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402e37:	52                   	push   %edx
402e38:	8d 3c 09             	lea    (%ecx,%ecx,1),%edi
402e3b:	89 7d f4             	mov    %edi,-0xc(%ebp)
402e3e:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
402e41:	8b 7d f8             	mov    -0x8(%ebp),%edi
402e44:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402e47:	8d 0c 78             	lea    (%eax,%edi,2),%ecx
402e4a:	8b 7d f4             	mov    -0xc(%ebp),%edi
402e4d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
402e50:	83 fb 08             	cmp    $0x8,%ebx
402e53:	72 5d                	jb     0x402eb2
402e55:	8b 3e                	mov    (%esi),%edi
402e57:	57                   	push   %edi
402e58:	50                   	push   %eax
402e59:	e8 22 88 01 00       	call   0x41b680
402e5e:	ff 75 f4             	push   -0xc(%ebp)
402e61:	ff 75 f0             	push   -0x10(%ebp)
402e64:	ff 75 fc             	push   -0x4(%ebp)
402e67:	e8 14 88 01 00       	call   0x41b680
402e6c:	8b 45 f8             	mov    -0x8(%ebp),%eax
402e6f:	33 c9                	xor    %ecx,%ecx
402e71:	83 c4 18             	add    $0x18,%esp
402e74:	66 89 08             	mov    %cx,(%eax)
402e77:	8d 0c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ecx
402e7e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402e84:	72 12                	jb     0x402e98
402e86:	8b 57 fc             	mov    -0x4(%edi),%edx
402e89:	83 c1 23             	add    $0x23,%ecx
402e8c:	2b fa                	sub    %edx,%edi
402e8e:	8d 47 fc             	lea    -0x4(%edi),%eax
402e91:	83 f8 1f             	cmp    $0x1f,%eax
402e94:	77 4f                	ja     0x402ee5
402e96:	8b fa                	mov    %edx,%edi
402e98:	51                   	push   %ecx
402e99:	57                   	push   %edi
402e9a:	e8 19 6d 01 00       	call   0x419bb8
402e9f:	8b 45 ec             	mov    -0x14(%ebp),%eax
402ea2:	83 c4 08             	add    $0x8,%esp
402ea5:	89 06                	mov    %eax,(%esi)
402ea7:	8b c6                	mov    %esi,%eax
402ea9:	5f                   	pop    %edi
402eaa:	5e                   	pop    %esi
402eab:	5b                   	pop    %ebx
402eac:	8b e5                	mov    %ebp,%esp
402eae:	5d                   	pop    %ebp
402eaf:	c2 08 00             	ret    $0x8
402eb2:	56                   	push   %esi
402eb3:	50                   	push   %eax
402eb4:	e8 c7 87 01 00       	call   0x41b680
402eb9:	57                   	push   %edi
402eba:	ff 75 f0             	push   -0x10(%ebp)
402ebd:	ff 75 fc             	push   -0x4(%ebp)
402ec0:	e8 bb 87 01 00       	call   0x41b680
402ec5:	8b 45 f8             	mov    -0x8(%ebp),%eax
402ec8:	83 c4 18             	add    $0x18,%esp
402ecb:	33 c9                	xor    %ecx,%ecx
402ecd:	66 89 08             	mov    %cx,(%eax)
402ed0:	8b 45 ec             	mov    -0x14(%ebp),%eax
402ed3:	89 06                	mov    %eax,(%esi)
402ed5:	8b c6                	mov    %esi,%eax
402ed7:	5f                   	pop    %edi
402ed8:	5e                   	pop    %esi
402ed9:	5b                   	pop    %ebx
402eda:	8b e5                	mov    %ebp,%esp
402edc:	5d                   	pop    %ebp
402edd:	c2 08 00             	ret    $0x8
402ee0:	e8 7b e4 ff ff       	call   0x401360
402ee5:	e8 a9 ca 01 00       	call   0x41f993
402eea:	cc                   	int3
402eeb:	cc                   	int3
402eec:	cc                   	int3
402eed:	cc                   	int3
402eee:	cc                   	int3
402eef:	cc                   	int3
402ef0:	55                   	push   %ebp
402ef1:	8b ec                	mov    %esp,%ebp
402ef3:	83 ec 0c             	sub    $0xc,%esp
402ef6:	8b 45 0c             	mov    0xc(%ebp),%eax
402ef9:	8b 55 08             	mov    0x8(%ebp),%edx
402efc:	53                   	push   %ebx
402efd:	56                   	push   %esi
402efe:	57                   	push   %edi
402eff:	8b f9                	mov    %ecx,%edi
402f01:	89 55 f4             	mov    %edx,-0xc(%ebp)
402f04:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f07:	8b 5f 14             	mov    0x14(%edi),%ebx
402f0a:	3b c3                	cmp    %ebx,%eax
402f0c:	77 32                	ja     0x402f40
402f0e:	89 7d fc             	mov    %edi,-0x4(%ebp)
402f11:	83 fb 08             	cmp    $0x8,%ebx
402f14:	72 05                	jb     0x402f1b
402f16:	8b 0f                	mov    (%edi),%ecx
402f18:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402f1b:	8d 34 00             	lea    (%eax,%eax,1),%esi
402f1e:	89 47 10             	mov    %eax,0x10(%edi)
402f21:	56                   	push   %esi
402f22:	52                   	push   %edx
402f23:	51                   	push   %ecx
402f24:	e8 57 87 01 00       	call   0x41b680
402f29:	8b 45 fc             	mov    -0x4(%ebp),%eax
402f2c:	83 c4 0c             	add    $0xc,%esp
402f2f:	33 c9                	xor    %ecx,%ecx
402f31:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
402f35:	8b c7                	mov    %edi,%eax
402f37:	5f                   	pop    %edi
402f38:	5e                   	pop    %esi
402f39:	5b                   	pop    %ebx
402f3a:	8b e5                	mov    %ebp,%esp
402f3c:	5d                   	pop    %ebp
402f3d:	c2 08 00             	ret    $0x8
402f40:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
402f45:	0f 87 a9 00 00 00    	ja     0x402ff4
402f4b:	8b f0                	mov    %eax,%esi
402f4d:	83 ce 07             	or     $0x7,%esi
402f50:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
402f56:	76 07                	jbe    0x402f5f
402f58:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
402f5d:	eb 1e                	jmp    0x402f7d
402f5f:	8b cb                	mov    %ebx,%ecx
402f61:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
402f66:	d1 e9                	shr    $1,%ecx
402f68:	2b c1                	sub    %ecx,%eax
402f6a:	3b d8                	cmp    %eax,%ebx
402f6c:	76 07                	jbe    0x402f75
402f6e:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
402f73:	eb 08                	jmp    0x402f7d
402f75:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
402f78:	3b f0                	cmp    %eax,%esi
402f7a:	0f 42 f0             	cmovb  %eax,%esi
402f7d:	8d 46 01             	lea    0x1(%esi),%eax
402f80:	8b cf                	mov    %edi,%ecx
402f82:	50                   	push   %eax
402f83:	e8 28 01 00 00       	call   0x4030b0
402f88:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402f8b:	89 77 14             	mov    %esi,0x14(%edi)
402f8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
402f91:	89 4f 10             	mov    %ecx,0x10(%edi)
402f94:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
402f97:	56                   	push   %esi
402f98:	ff 75 f4             	push   -0xc(%ebp)
402f9b:	50                   	push   %eax
402f9c:	e8 df 86 01 00       	call   0x41b680
402fa1:	8b 45 fc             	mov    -0x4(%ebp),%eax
402fa4:	33 c9                	xor    %ecx,%ecx
402fa6:	83 c4 0c             	add    $0xc,%esp
402fa9:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
402fad:	83 fb 08             	cmp    $0x8,%ebx
402fb0:	72 30                	jb     0x402fe2
402fb2:	8b 07                	mov    (%edi),%eax
402fb4:	8d 1c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ebx
402fbb:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402fc1:	72 12                	jb     0x402fd5
402fc3:	8b 48 fc             	mov    -0x4(%eax),%ecx
402fc6:	83 c3 23             	add    $0x23,%ebx
402fc9:	2b c1                	sub    %ecx,%eax
402fcb:	83 c0 fc             	add    $0xfffffffc,%eax
402fce:	83 f8 1f             	cmp    $0x1f,%eax
402fd1:	77 1c                	ja     0x402fef
402fd3:	8b c1                	mov    %ecx,%eax
402fd5:	53                   	push   %ebx
402fd6:	50                   	push   %eax
402fd7:	e8 dc 6b 01 00       	call   0x419bb8
402fdc:	8b 45 fc             	mov    -0x4(%ebp),%eax
402fdf:	83 c4 08             	add    $0x8,%esp
402fe2:	89 07                	mov    %eax,(%edi)
402fe4:	8b c7                	mov    %edi,%eax
402fe6:	5f                   	pop    %edi
402fe7:	5e                   	pop    %esi
402fe8:	5b                   	pop    %ebx
402fe9:	8b e5                	mov    %ebp,%esp
402feb:	5d                   	pop    %ebp
402fec:	c2 08 00             	ret    $0x8
402fef:	e8 9f c9 01 00       	call   0x41f993
402ff4:	e8 67 e3 ff ff       	call   0x401360
402ff9:	cc                   	int3
402ffa:	cc                   	int3
402ffb:	cc                   	int3
402ffc:	cc                   	int3
402ffd:	cc                   	int3
402ffe:	cc                   	int3
402fff:	cc                   	int3
403000:	55                   	push   %ebp
403001:	8b ec                	mov    %esp,%ebp
403003:	83 ec 08             	sub    $0x8,%esp
403006:	8b 45 08             	mov    0x8(%ebp),%eax
403009:	53                   	push   %ebx
40300a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40300d:	89 45 f8             	mov    %eax,-0x8(%ebp)
403010:	56                   	push   %esi
403011:	57                   	push   %edi
403012:	8b f9                	mov    %ecx,%edi
403014:	89 7d fc             	mov    %edi,-0x4(%ebp)
403017:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
40301d:	77 7f                	ja     0x40309e
40301f:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
403026:	83 fb 08             	cmp    $0x8,%ebx
403029:	73 20                	jae    0x40304b
40302b:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
40302e:	89 5f 10             	mov    %ebx,0x10(%edi)
403031:	56                   	push   %esi
403032:	50                   	push   %eax
403033:	57                   	push   %edi
403034:	e8 47 86 01 00       	call   0x41b680
403039:	83 c4 0c             	add    $0xc,%esp
40303c:	33 c0                	xor    %eax,%eax
40303e:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
403042:	5f                   	pop    %edi
403043:	5e                   	pop    %esi
403044:	5b                   	pop    %ebx
403045:	8b e5                	mov    %ebp,%esp
403047:	5d                   	pop    %ebp
403048:	c2 08 00             	ret    $0x8
40304b:	8b f3                	mov    %ebx,%esi
40304d:	83 ce 07             	or     $0x7,%esi
403050:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
403056:	76 07                	jbe    0x40305f
403058:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40305d:	eb 0a                	jmp    0x403069
40305f:	b8 0a 00 00 00       	mov    $0xa,%eax
403064:	3b f0                	cmp    %eax,%esi
403066:	0f 42 f0             	cmovb  %eax,%esi
403069:	8d 46 01             	lea    0x1(%esi),%eax
40306c:	50                   	push   %eax
40306d:	e8 3e 00 00 00       	call   0x4030b0
403072:	8b f8                	mov    %eax,%edi
403074:	8b 45 fc             	mov    -0x4(%ebp),%eax
403077:	89 70 14             	mov    %esi,0x14(%eax)
40307a:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
40307d:	56                   	push   %esi
40307e:	ff 75 f8             	push   -0x8(%ebp)
403081:	89 38                	mov    %edi,(%eax)
403083:	57                   	push   %edi
403084:	89 58 10             	mov    %ebx,0x10(%eax)
403087:	e8 f4 85 01 00       	call   0x41b680
40308c:	83 c4 0c             	add    $0xc,%esp
40308f:	33 c0                	xor    %eax,%eax
403091:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
403095:	5f                   	pop    %edi
403096:	5e                   	pop    %esi
403097:	5b                   	pop    %ebx
403098:	8b e5                	mov    %ebp,%esp
40309a:	5d                   	pop    %ebp
40309b:	c2 08 00             	ret    $0x8
40309e:	e8 bd e2 ff ff       	call   0x401360
4030a3:	cc                   	int3
4030a4:	cc                   	int3
4030a5:	cc                   	int3
4030a6:	cc                   	int3
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:	8b ec                	mov    %esp,%ebp
4030b3:	8b 45 08             	mov    0x8(%ebp),%eax
4030b6:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
4030bb:	77 43                	ja     0x403100
4030bd:	03 c0                	add    %eax,%eax
4030bf:	3d 00 10 00 00       	cmp    $0x1000,%eax
4030c4:	72 23                	jb     0x4030e9
4030c6:	8d 48 23             	lea    0x23(%eax),%ecx
4030c9:	3b c8                	cmp    %eax,%ecx
4030cb:	76 33                	jbe    0x403100
4030cd:	51                   	push   %ecx
4030ce:	e8 f3 6a 01 00       	call   0x419bc6
4030d3:	8b c8                	mov    %eax,%ecx
4030d5:	83 c4 04             	add    $0x4,%esp
4030d8:	85 c9                	test   %ecx,%ecx
4030da:	74 29                	je     0x403105
4030dc:	8d 41 23             	lea    0x23(%ecx),%eax
4030df:	83 e0 e0             	and    $0xffffffe0,%eax
4030e2:	89 48 fc             	mov    %ecx,-0x4(%eax)
4030e5:	5d                   	pop    %ebp
4030e6:	c2 04 00             	ret    $0x4
4030e9:	85 c0                	test   %eax,%eax
4030eb:	74 0d                	je     0x4030fa
4030ed:	50                   	push   %eax
4030ee:	e8 d3 6a 01 00       	call   0x419bc6
4030f3:	83 c4 04             	add    $0x4,%esp
4030f6:	5d                   	pop    %ebp
4030f7:	c2 04 00             	ret    $0x4
4030fa:	33 c0                	xor    %eax,%eax
4030fc:	5d                   	pop    %ebp
4030fd:	c2 04 00             	ret    $0x4
403100:	e8 bb e1 ff ff       	call   0x4012c0
403105:	e8 89 c8 01 00       	call   0x41f993
40310a:	cc                   	int3
40310b:	cc                   	int3
40310c:	cc                   	int3
40310d:	cc                   	int3
40310e:	cc                   	int3
40310f:	cc                   	int3
403110:	55                   	push   %ebp
403111:	8b ec                	mov    %esp,%ebp
403113:	6a ff                	push   $0xffffffff
403115:	68 e7 b7 43 00       	push   $0x43b7e7
40311a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403120:	50                   	push   %eax
403121:	83 ec 38             	sub    $0x38,%esp
403124:	a1 14 50 45 00       	mov    0x455014,%eax
403129:	33 c5                	xor    %ebp,%eax
40312b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40312e:	53                   	push   %ebx
40312f:	56                   	push   %esi
403130:	50                   	push   %eax
403131:	8d 45 f4             	lea    -0xc(%ebp),%eax
403134:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40313a:	8b d1                	mov    %ecx,%edx
40313c:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
403143:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40314a:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
403151:	8d 72 02             	lea    0x2(%edx),%esi
403154:	66 8b 02             	mov    (%edx),%ax
403157:	83 c2 02             	add    $0x2,%edx
40315a:	66 85 c0             	test   %ax,%ax
40315d:	75 f5                	jne    0x403154
40315f:	2b d6                	sub    %esi,%edx
403161:	d1 fa                	sar    $1,%edx
403163:	52                   	push   %edx
403164:	51                   	push   %ecx
403165:	8d 4d c0             	lea    -0x40(%ebp),%ecx
403168:	e8 93 fe ff ff       	call   0x403000
40316d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
403174:	33 c0                	xor    %eax,%eax
403176:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40317d:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
403184:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40318b:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40318f:	50                   	push   %eax
403190:	68 54 9f 44 00       	push   $0x449f54
403195:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403198:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40319c:	e8 4f fd ff ff       	call   0x402ef0
4031a1:	8d 55 d8             	lea    -0x28(%ebp),%edx
4031a4:	8d 4d c0             	lea    -0x40(%ebp),%ecx