402c40:	ff 15 14 e0 43 00    	call   *0x43e014
402c46:	85 c0                	test   %eax,%eax
402c48:	0f 84 90 00 00 00    	je     0x402cde
402c4e:	33 ff                	xor    %edi,%edi
402c50:	89 7d b0             	mov    %edi,-0x50(%ebp)
402c53:	3b 7d e0             	cmp    -0x20(%ebp),%edi
402c56:	0f 83 c5 00 00 00    	jae    0x402d21
402c5c:	8d 04 ff             	lea    (%edi,%edi,8),%eax
402c5f:	0f 10 0c 86          	movups (%esi,%eax,4),%xmm1
402c63:	0f 10 44 86 10       	movups 0x10(%esi,%eax,4),%xmm0
402c68:	0f 11 45 88          	movups %xmm0,-0x78(%ebp)
402c6c:	8b 44 86 20          	mov    0x20(%esi,%eax,4),%eax
402c70:	89 45 98             	mov    %eax,-0x68(%ebp)
402c73:	6a 24                	push   $0x24
402c75:	66 0f 7e c8          	movd   %xmm1,%eax
402c79:	50                   	push   %eax
402c7a:	ff 75 b4             	push   -0x4c(%ebp)
402c7d:	ff 15 0c e0 43 00    	call   *0x43e00c
402c83:	8b f0                	mov    %eax,%esi
402c85:	89 75 a0             	mov    %esi,-0x60(%ebp)
402c88:	85 f6                	test   %esi,%esi
402c8a:	74 52                	je     0x402cde
402c8c:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402c93:	8d 45 bc             	lea    -0x44(%ebp),%eax
402c96:	50                   	push   %eax
402c97:	6a 01                	push   $0x1
402c99:	56                   	push   %esi
402c9a:	ff 15 18 e0 43 00    	call   *0x43e018
402ca0:	85 c0                	test   %eax,%eax
402ca2:	74 3a                	je     0x402cde
402ca4:	83 7d c0 01          	cmpl   $0x1,-0x40(%ebp)
402ca8:	74 4b                	je     0x402cf5
402caa:	ff 75 d4             	push   -0x2c(%ebp)
402cad:	ff 15 50 e0 43 00    	call   *0x43e050
402cb3:	8d 45 b8             	lea    -0x48(%ebp),%eax
402cb6:	50                   	push   %eax
402cb7:	6a 24                	push   $0x24
402cb9:	8d 45 bc             	lea    -0x44(%ebp),%eax
402cbc:	50                   	push   %eax
402cbd:	6a 00                	push   $0x0
402cbf:	56                   	push   %esi
402cc0:	ff 15 08 e0 43 00    	call   *0x43e008
402cc6:	85 c0                	test   %eax,%eax
402cc8:	74 14                	je     0x402cde
402cca:	83 7d c0 01          	cmpl   $0x1,-0x40(%ebp)
402cce:	74 25                	je     0x402cf5
402cd0:	ff 15 44 e0 43 00    	call   *0x43e044
402cd6:	2b 45 a8             	sub    -0x58(%ebp),%eax
402cd9:	3b 45 a4             	cmp    -0x5c(%ebp),%eax
402cdc:	76 c6                	jbe    0x402ca4
402cde:	6a fe                	push   $0xfffffffe
402ce0:	8d 45 f0             	lea    -0x10(%ebp),%eax
402ce3:	50                   	push   %eax
402ce4:	68 14 50 45 00       	push   $0x455014
402ce9:	e8 42 b6 01 00       	call   0x41e330
402cee:	83 c4 0c             	add    $0xc,%esp
402cf1:	32 c0                	xor    %al,%al
402cf3:	eb 3a                	jmp    0x402d2f
402cf5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402cfc:	e8 18 00 00 00       	call   0x402d19
402d01:	47                   	inc    %edi
402d02:	89 7d b0             	mov    %edi,-0x50(%ebp)
402d05:	8b 75 ac             	mov    -0x54(%ebp),%esi
402d08:	e9 46 ff ff ff       	jmp    0x402c53
402d0d:	8b 7d b0             	mov    -0x50(%ebp),%edi
402d10:	8b 75 a0             	mov    -0x60(%ebp),%esi
402d13:	8b 45 9c             	mov    -0x64(%ebp),%eax
402d16:	89 45 b4             	mov    %eax,-0x4c(%ebp)
402d19:	56                   	push   %esi
402d1a:	ff 15 24 e0 43 00    	call   *0x43e024
402d20:	c3                   	ret
402d21:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402d28:	e8 21 00 00 00       	call   0x402d4e
402d2d:	b0 01                	mov    $0x1,%al
402d2f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402d32:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402d39:	59                   	pop    %ecx
402d3a:	5f                   	pop    %edi
402d3b:	5e                   	pop    %esi
402d3c:	5b                   	pop    %ebx
402d3d:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
402d40:	33 cd                	xor    %ebp,%ecx
402d42:	e8 63 6e 01 00       	call   0x419baa
402d47:	8b e5                	mov    %ebp,%esp
402d49:	5d                   	pop    %ebp
402d4a:	c3                   	ret
402d4b:	8b 75 ac             	mov    -0x54(%ebp),%esi
402d4e:	56                   	push   %esi
402d4f:	6a 00                	push   $0x0
402d51:	ff 15 48 e0 43 00    	call   *0x43e048
402d57:	50                   	push   %eax
402d58:	ff 15 54 e0 43 00    	call   *0x43e054
402d5e:	c3                   	ret
402d5f:	eb ce                	jmp    0x402d2f
402d61:	cc                   	int3
402d62:	cc                   	int3
402d63:	cc                   	int3
402d64:	cc                   	int3
402d65:	cc                   	int3
402d66:	cc                   	int3
402d67:	cc                   	int3
402d68:	cc                   	int3
402d69:	cc                   	int3
402d6a:	cc                   	int3
402d6b:	cc                   	int3
402d6c:	cc                   	int3
402d6d:	cc                   	int3
402d6e:	cc                   	int3
402d6f:	cc                   	int3
402d70:	55                   	push   %ebp
402d71:	8b ec                	mov    %esp,%ebp
402d73:	83 ec 14             	sub    $0x14,%esp
402d76:	8b 45 08             	mov    0x8(%ebp),%eax
402d79:	53                   	push   %ebx
402d7a:	56                   	push   %esi
402d7b:	8b f1                	mov    %ecx,%esi
402d7d:	89 45 f0             	mov    %eax,-0x10(%ebp)
402d80:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402d83:	57                   	push   %edi
402d84:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402d87:	8b 5e 14             	mov    0x14(%esi),%ebx
402d8a:	8b c3                	mov    %ebx,%eax
402d8c:	8b 56 10             	mov    0x10(%esi),%edx
402d8f:	2b c2                	sub    %edx,%eax
402d91:	89 55 fc             	mov    %edx,-0x4(%ebp)
402d94:	3b c8                	cmp    %eax,%ecx
402d96:	77 38                	ja     0x402dd0
402d98:	8d 04 11             	lea    (%ecx,%edx,1),%eax
402d9b:	8b fe                	mov    %esi,%edi
402d9d:	89 45 fc             	mov    %eax,-0x4(%ebp)
402da0:	89 46 10             	mov    %eax,0x10(%esi)
402da3:	83 fb 08             	cmp    $0x8,%ebx
402da6:	72 02                	jb     0x402daa
402da8:	8b 3e                	mov    (%esi),%edi
402daa:	03 c9                	add    %ecx,%ecx
402dac:	51                   	push   %ecx
402dad:	ff 75 f0             	push   -0x10(%ebp)
402db0:	8d 0c 57             	lea    (%edi,%edx,2),%ecx
402db3:	51                   	push   %ecx
402db4:	e8 c7 88 01 00       	call   0x41b680
402db9:	8b 45 fc             	mov    -0x4(%ebp),%eax
402dbc:	83 c4 0c             	add    $0xc,%esp
402dbf:	33 c9                	xor    %ecx,%ecx
402dc1:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
402dc5:	8b c6                	mov    %esi,%eax
402dc7:	5f                   	pop    %edi
402dc8:	5e                   	pop    %esi
402dc9:	5b                   	pop    %ebx
402dca:	8b e5                	mov    %ebp,%esp
402dcc:	5d                   	pop    %ebp
402dcd:	c2 08 00             	ret    $0x8
402dd0:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
402dd5:	2b c2                	sub    %edx,%eax
402dd7:	3b c1                	cmp    %ecx,%eax
402dd9:	0f 82 01 01 00 00    	jb     0x402ee0
402ddf:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
402de2:	8b f8                	mov    %eax,%edi
402de4:	89 45 f8             	mov    %eax,-0x8(%ebp)
402de7:	83 cf 07             	or     $0x7,%edi
402dea:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
402df0:	76 07                	jbe    0x402df9
402df2:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
402df7:	eb 1e                	jmp    0x402e17
402df9:	8b cb                	mov    %ebx,%ecx
402dfb:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
402e00:	d1 e9                	shr    $1,%ecx
402e02:	2b c1                	sub    %ecx,%eax
402e04:	3b d8                	cmp    %eax,%ebx
402e06:	76 07                	jbe    0x402e0f
402e08:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
402e0d:	eb 08                	jmp    0x402e17
402e0f:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
402e12:	3b f8                	cmp    %eax,%edi
402e14:	0f 42 f8             	cmovb  %eax,%edi
402e17:	8d 47 01             	lea    0x1(%edi),%eax
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)