401e94:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
401e9a:	72 12                	jb     0x401eae
401e9c:	8b 56 fc             	mov    -0x4(%esi),%edx
401e9f:	83 c1 23             	add    $0x23,%ecx
401ea2:	2b f2                	sub    %edx,%esi
401ea4:	8d 46 fc             	lea    -0x4(%esi),%eax
401ea7:	83 f8 1f             	cmp    $0x1f,%eax
401eaa:	77 23                	ja     0x401ecf
401eac:	8b f2                	mov    %edx,%esi
401eae:	51                   	push   %ecx
401eaf:	56                   	push   %esi
401eb0:	e8 c9 0c 00 00       	call   0x402b7e
401eb5:	83 c4 08             	add    $0x8,%esp
401eb8:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
401ebe:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
401ec5:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
401ecc:	5e                   	pop    %esi
401ecd:	5f                   	pop    %edi
401ece:	c3                   	ret
401ecf:	e8 58 3e 00 00       	call   0x405d2c
401ed4:	cc                   	int3
401ed5:	cc                   	int3
401ed6:	cc                   	int3
401ed7:	cc                   	int3
401ed8:	cc                   	int3
401ed9:	cc                   	int3
401eda:	cc                   	int3
401edb:	cc                   	int3
401edc:	cc                   	int3
401edd:	cc                   	int3
401ede:	cc                   	int3
401edf:	cc                   	int3
401ee0:	56                   	push   %esi
401ee1:	8b f1                	mov    %ecx,%esi
401ee3:	8b 4e 14             	mov    0x14(%esi),%ecx
401ee6:	83 f9 08             	cmp    $0x8,%ecx
401ee9:	72 2d                	jb     0x401f18
401eeb:	8b 06                	mov    (%esi),%eax
401eed:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
401ef4:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
401efa:	72 12                	jb     0x401f0e
401efc:	8b 50 fc             	mov    -0x4(%eax),%edx
401eff:	83 c1 23             	add    $0x23,%ecx
401f02:	2b c2                	sub    %edx,%eax
401f04:	83 c0 fc             	add    $0xfffffffc,%eax
401f07:	83 f8 1f             	cmp    $0x1f,%eax
401f0a:	77 21                	ja     0x401f2d
401f0c:	8b c2                	mov    %edx,%eax
401f0e:	51                   	push   %ecx
401f0f:	50                   	push   %eax
401f10:	e8 69 0c 00 00       	call   0x402b7e
401f15:	83 c4 08             	add    $0x8,%esp
401f18:	33 c0                	xor    %eax,%eax
401f1a:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
401f21:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
401f28:	66 89 06             	mov    %ax,(%esi)
401f2b:	5e                   	pop    %esi
401f2c:	c3                   	ret
401f2d:	e8 fa 3d 00 00       	call   0x405d2c
401f32:	cc                   	int3
401f33:	cc                   	int3
401f34:	cc                   	int3
401f35:	cc                   	int3
401f36:	cc                   	int3
401f37:	cc                   	int3
401f38:	cc                   	int3
401f39:	cc                   	int3
401f3a:	cc                   	int3
401f3b:	cc                   	int3
401f3c:	cc                   	int3
401f3d:	cc                   	int3
401f3e:	cc                   	int3
401f3f:	cc                   	int3
401f40:	55                   	push   %ebp
401f41:	8b ec                	mov    %esp,%ebp
401f43:	8b 45 08             	mov    0x8(%ebp),%eax
401f46:	0f 57 c0             	xorps  %xmm0,%xmm0
401f49:	53                   	push   %ebx
401f4a:	56                   	push   %esi
401f4b:	8b f1                	mov    %ecx,%esi
401f4d:	89 45 08             	mov    %eax,0x8(%ebp)
401f50:	0f 11 06             	movups %xmm0,(%esi)
401f53:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
401f5a:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
401f61:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
401f65:	8b 58 10             	mov    0x10(%eax),%ebx
401f68:	72 05                	jb     0x401f6f
401f6a:	8b 00                	mov    (%eax),%eax
401f6c:	89 45 08             	mov    %eax,0x8(%ebp)
401f6f:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
401f75:	0f 87 b8 00 00 00    	ja     0x402033
401f7b:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
401f82:	83 fb 08             	cmp    $0x8,%ebx
401f85:	73 17                	jae    0x401f9e
401f87:	6a 10                	push   $0x10
401f89:	50                   	push   %eax
401f8a:	56                   	push   %esi
401f8b:	89 5e 10             	mov    %ebx,0x10(%esi)
401f8e:	e8 bd 34 00 00       	call   0x405450
401f93:	83 c4 0c             	add    $0xc,%esp
401f96:	8b c6                	mov    %esi,%eax
401f98:	5e                   	pop    %esi
401f99:	5b                   	pop    %ebx
401f9a:	5d                   	pop    %ebp
401f9b:	c2 04 00             	ret    $0x4
401f9e:	57                   	push   %edi
401f9f:	8b fb                	mov    %ebx,%edi
401fa1:	83 cf 07             	or     $0x7,%edi
401fa4:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
401faa:	76 0e                	jbe    0x401fba
401fac:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
401fb1:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
401fb6:	03 c0                	add    %eax,%eax
401fb8:	eb 1d                	jmp    0x401fd7
401fba:	b8 0a 00 00 00       	mov    $0xa,%eax
401fbf:	3b f8                	cmp    %eax,%edi
401fc1:	0f 42 f8             	cmovb  %eax,%edi
401fc4:	8d 47 01             	lea    0x1(%edi),%eax
401fc7:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
401fcc:	77 60                	ja     0x40202e
401fce:	03 c0                	add    %eax,%eax
401fd0:	3d 00 10 00 00       	cmp    $0x1000,%eax
401fd5:	72 1f                	jb     0x401ff6
401fd7:	8d 48 23             	lea    0x23(%eax),%ecx
401fda:	3b c8                	cmp    %eax,%ecx
401fdc:	76 50                	jbe    0x40202e
401fde:	51                   	push   %ecx
401fdf:	e8 cb 0b 00 00       	call   0x402baf
401fe4:	83 c4 04             	add    $0x4,%esp
401fe7:	85 c0                	test   %eax,%eax
401fe9:	74 4d                	je     0x402038
401feb:	8d 48 23             	lea    0x23(%eax),%ecx
401fee:	83 e1 e0             	and    $0xffffffe0,%ecx
401ff1:	89 41 fc             	mov    %eax,-0x4(%ecx)
401ff4:	eb 13                	jmp    0x402009
401ff6:	85 c0                	test   %eax,%eax
401ff8:	74 0d                	je     0x402007
401ffa:	50                   	push   %eax
401ffb:	e8 af 0b 00 00       	call   0x402baf
402000:	83 c4 04             	add    $0x4,%esp
402003:	8b c8                	mov    %eax,%ecx
402005:	eb 02                	jmp    0x402009
402007:	33 c9                	xor    %ecx,%ecx
402009:	8d 04 5d 02 00 00 00 	lea    0x2(,%ebx,2),%eax
402010:	89 0e                	mov    %ecx,(%esi)
402012:	50                   	push   %eax
402013:	ff 75 08             	push   0x8(%ebp)
402016:	89 5e 10             	mov    %ebx,0x10(%esi)
402019:	51                   	push   %ecx
40201a:	89 7e 14             	mov    %edi,0x14(%esi)
40201d:	e8 2e 34 00 00       	call   0x405450
402022:	83 c4 0c             	add    $0xc,%esp
402025:	8b c6                	mov    %esi,%eax
402027:	5f                   	pop    %edi
402028:	5e                   	pop    %esi
402029:	5b                   	pop    %ebx
40202a:	5d                   	pop    %ebp
40202b:	c2 04 00             	ret    $0x4
40202e:	e8 7d f0 ff ff       	call   0x4010b0
402033:	e8 18 f1 ff ff       	call   0x401150
402038:	e8 ef 3c 00 00       	call   0x405d2c
40203d:	cc                   	int3
40203e:	cc                   	int3
40203f:	cc                   	int3
402040:	55                   	push   %ebp
402041:	8b ec                	mov    %esp,%ebp
402043:	53                   	push   %ebx
402044:	8b 5d 08             	mov    0x8(%ebp),%ebx
402047:	56                   	push   %esi
402048:	8b f1                	mov    %ecx,%esi
40204a:	8b cb                	mov    %ebx,%ecx
40204c:	8d 51 02             	lea    0x2(%ecx),%edx
40204f:	90                   	nop
402050:	66 8b 01             	mov    (%ecx),%ax
402053:	83 c1 02             	add    $0x2,%ecx
402056:	66 85 c0             	test   %ax,%ax
402059:	75 f5                	jne    0x402050
40205b:	8b 46 14             	mov    0x14(%esi),%eax
40205e:	2b ca                	sub    %edx,%ecx
402060:	8b 56 10             	mov    0x10(%esi),%edx
402063:	2b c2                	sub    %edx,%eax
402065:	d1 f9                	sar    $1,%ecx
402067:	3b c8                	cmp    %eax,%ecx
402069:	77 36                	ja     0x4020a1
40206b:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40206f:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
402072:	57                   	push   %edi
402073:	89 45 08             	mov    %eax,0x8(%ebp)
402076:	8b fe                	mov    %esi,%edi
402078:	89 46 10             	mov    %eax,0x10(%esi)
40207b:	72 02                	jb     0x40207f
40207d:	8b 3e                	mov    (%esi),%edi
40207f:	03 c9                	add    %ecx,%ecx
402081:	8d 14 57             	lea    (%edi,%edx,2),%edx
402084:	51                   	push   %ecx
402085:	53                   	push   %ebx
402086:	52                   	push   %edx
402087:	e8 c4 33 00 00       	call   0x405450
40208c:	8b 45 08             	mov    0x8(%ebp),%eax
40208f:	83 c4 0c             	add    $0xc,%esp
402092:	33 c9                	xor    %ecx,%ecx
402094:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
402098:	8b c6                	mov    %esi,%eax
40209a:	5f                   	pop    %edi
40209b:	5e                   	pop    %esi
40209c:	5b                   	pop    %ebx
40209d:	5d                   	pop    %ebp
40209e:	c2 04 00             	ret    $0x4
4020a1:	51                   	push   %ecx
4020a2:	53                   	push   %ebx
4020a3:	ff 75 08             	push   0x8(%ebp)
4020a6:	51                   	push   %ecx
4020a7:	8b ce                	mov    %esi,%ecx
4020a9:	e8 72 03 00 00       	call   0x402420
4020ae:	5e                   	pop    %esi
4020af:	5b                   	pop    %ebx
4020b0:	5d                   	pop    %ebp
4020b1:	c2 04 00             	ret    $0x4
4020b4:	cc                   	int3
4020b5:	cc                   	int3
4020b6:	cc                   	int3
4020b7:	cc                   	int3
4020b8:	cc                   	int3
4020b9:	cc                   	int3
4020ba:	cc                   	int3
4020bb:	cc                   	int3
4020bc:	cc                   	int3
4020bd:	cc                   	int3
4020be:	cc                   	int3
4020bf:	cc                   	int3
4020c0:	55                   	push   %ebp
4020c1:	8b ec                	mov    %esp,%ebp
4020c3:	8b 45 0c             	mov    0xc(%ebp),%eax
4020c6:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
4020c9:	8b 45 08             	mov    0x8(%ebp),%eax
4020cc:	c1 e1 03             	shl    $0x3,%ecx
4020cf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4020d5:	72 12                	jb     0x4020e9
4020d7:	8b 50 fc             	mov    -0x4(%eax),%edx
4020da:	83 c1 23             	add    $0x23,%ecx
4020dd:	2b c2                	sub    %edx,%eax
4020df:	83 c0 fc             	add    $0xfffffffc,%eax
4020e2:	83 f8 1f             	cmp    $0x1f,%eax
4020e5:	77 10                	ja     0x4020f7
4020e7:	8b c2                	mov    %edx,%eax
4020e9:	51                   	push   %ecx
4020ea:	50                   	push   %eax
4020eb:	e8 8e 0a 00 00       	call   0x402b7e
4020f0:	83 c4 08             	add    $0x8,%esp
4020f3:	5d                   	pop    %ebp
4020f4:	c2 08 00             	ret    $0x8
4020f7:	e8 30 3c 00 00       	call   0x405d2c
4020fc:	cc                   	int3
4020fd:	cc                   	int3
4020fe:	cc                   	int3
4020ff:	cc                   	int3
402100:	68 c0 3d 41 00       	push   $0x413dc0
402105:	e8 54 0a 00 00       	call   0x402b5e
40210a:	cc                   	int3
40210b:	cc                   	int3
40210c:	cc                   	int3
40210d:	cc                   	int3
40210e:	cc                   	int3
40210f:	cc                   	int3
402110:	55                   	push   %ebp
402111:	8b ec                	mov    %esp,%ebp
402113:	51                   	push   %ecx
402114:	56                   	push   %esi
402115:	8b 75 0c             	mov    0xc(%ebp),%esi
402118:	8b c1                	mov    %ecx,%eax
40211a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40211d:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
402123:	0f 87 cd 00 00 00    	ja     0x4021f6
402129:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
402130:	83 fe 08             	cmp    $0x8,%esi
402133:	73 22                	jae    0x402157
402135:	89 70 10             	mov    %esi,0x10(%eax)
402138:	03 f6                	add    %esi,%esi
40213a:	56                   	push   %esi
40213b:	ff 75 08             	push   0x8(%ebp)
40213e:	50                   	push   %eax
40213f:	e8 0c 33 00 00       	call   0x405450
402144:	8b 45 fc             	mov    -0x4(%ebp),%eax
402147:	83 c4 0c             	add    $0xc,%esp
40214a:	33 c9                	xor    %ecx,%ecx
40214c:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
402150:	5e                   	pop    %esi
402151:	8b e5                	mov    %ebp,%esp
402153:	5d                   	pop    %ebp
402154:	c2 08 00             	ret    $0x8
402157:	53                   	push   %ebx
402158:	8b de                	mov    %esi,%ebx
40215a:	83 cb 07             	or     $0x7,%ebx
40215d:	57                   	push   %edi
40215e:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
402164:	76 0e                	jbe    0x402174
402166:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40216b:	bb fe ff ff 7f       	mov    $0x7ffffffe,%ebx
402170:	03 c9                	add    %ecx,%ecx
402172:	eb 1f                	jmp    0x402193
402174:	b9 0a 00 00 00       	mov    $0xa,%ecx
402179:	3b d9                	cmp    %ecx,%ebx
40217b:	0f 42 d9             	cmovb  %ecx,%ebx
40217e:	8d 4b 01             	lea    0x1(%ebx),%ecx
402181:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
402187:	77 68                	ja     0x4021f1
402189:	03 c9                	add    %ecx,%ecx
40218b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402191:	72 22                	jb     0x4021b5
402193:	8d 41 23             	lea    0x23(%ecx),%eax
402196:	3b c1                	cmp    %ecx,%eax
402198:	76 57                	jbe    0x4021f1
40219a:	50                   	push   %eax
40219b:	e8 0f 0a 00 00       	call   0x402baf
4021a0:	83 c4 04             	add    $0x4,%esp
4021a3:	85 c0                	test   %eax,%eax
4021a5:	74 54                	je     0x4021fb
4021a7:	8d 78 23             	lea    0x23(%eax),%edi
4021aa:	83 e7 e0             	and    $0xffffffe0,%edi
4021ad:	89 47 fc             	mov    %eax,-0x4(%edi)
4021b0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4021b3:	eb 16                	jmp    0x4021cb
4021b5:	85 c9                	test   %ecx,%ecx
4021b7:	74 10                	je     0x4021c9
4021b9:	51                   	push   %ecx
4021ba:	e8 f0 09 00 00       	call   0x402baf
4021bf:	8b f8                	mov    %eax,%edi
4021c1:	83 c4 04             	add    $0x4,%esp
4021c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4021c7:	eb 02                	jmp    0x4021cb
4021c9:	33 ff                	xor    %edi,%edi
4021cb:	89 70 10             	mov    %esi,0x10(%eax)
4021ce:	03 f6                	add    %esi,%esi
4021d0:	56                   	push   %esi
4021d1:	ff 75 08             	push   0x8(%ebp)
4021d4:	89 38                	mov    %edi,(%eax)
4021d6:	57                   	push   %edi
4021d7:	89 58 14             	mov    %ebx,0x14(%eax)
4021da:	e8 71 32 00 00       	call   0x405450
4021df:	83 c4 0c             	add    $0xc,%esp
4021e2:	33 c0                	xor    %eax,%eax
4021e4:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
4021e8:	5f                   	pop    %edi
4021e9:	5b                   	pop    %ebx
4021ea:	5e                   	pop    %esi
4021eb:	8b e5                	mov    %ebp,%esp
4021ed:	5d                   	pop    %ebp
4021ee:	c2 08 00             	ret    $0x8
4021f1:	e8 ba ee ff ff       	call   0x4010b0
4021f6:	e8 55 ef ff ff       	call   0x401150