40c96a:	69 c6 e8 03 00 00    	imul   $0x3e8,%esi,%eax
40c970:	c1 eb 09             	shr    $0x9,%ebx
40c973:	89 74 24 28          	mov    %esi,0x28(%esp)
40c977:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
40c97b:	2b c8                	sub    %eax,%ecx
40c97d:	66 89 4c 24 30       	mov    %cx,0x30(%esp)
40c982:	8d 44 24 20          	lea    0x20(%esp),%eax
40c986:	89 74 24 20          	mov    %esi,0x20(%esp)
40c98a:	50                   	push   %eax
40c98b:	8d 44 24 40          	lea    0x40(%esp),%eax
40c98f:	89 5c 24 28          	mov    %ebx,0x28(%esp)
40c993:	50                   	push   %eax
40c994:	89 b7 f8 00 00 00    	mov    %esi,0xf8(%edi)
40c99a:	89 9f fc 00 00 00    	mov    %ebx,0xfc(%edi)
40c9a0:	e8 21 84 01 00       	call   0x424dc6
40c9a5:	8d 44 24 44          	lea    0x44(%esp),%eax
40c9a9:	50                   	push   %eax
40c9aa:	68 a0 ef 44 00       	push   $0x44efa0
40c9af:	8d 44 24 70          	lea    0x70(%esp),%eax
40c9b3:	68 00 01 00 00       	push   $0x100
40c9b8:	50                   	push   %eax
40c9b9:	e8 11 96 01 00       	call   0x425fcf
40c9be:	0f b7 44 24 48       	movzwl 0x48(%esp),%eax
40c9c3:	50                   	push   %eax
40c9c4:	8d 44 24 7c          	lea    0x7c(%esp),%eax
40c9c8:	50                   	push   %eax
40c9c9:	68 ac ef 44 00       	push   $0x44efac
40c9ce:	68 00 01 00 00       	push   $0x100
40c9d3:	ff 74 24 3c          	push   0x3c(%esp)
40c9d7:	e8 44 7d ff ff       	call   0x404720
40c9dc:	8b 8c 24 90 02 00 00 	mov    0x290(%esp),%ecx
40c9e3:	83 c4 2c             	add    $0x2c,%esp
40c9e6:	5f                   	pop    %edi
40c9e7:	5e                   	pop    %esi
40c9e8:	5b                   	pop    %ebx
40c9e9:	33 cc                	xor    %esp,%ecx
40c9eb:	e8 ba d1 00 00       	call   0x419baa
40c9f0:	8b e5                	mov    %ebp,%esp
40c9f2:	5d                   	pop    %ebp
40c9f3:	c2 0c 00             	ret    $0xc
40c9f6:	cc                   	int3
40c9f7:	cc                   	int3
40c9f8:	cc                   	int3
40c9f9:	cc                   	int3
40c9fa:	cc                   	int3
40c9fb:	cc                   	int3
40c9fc:	cc                   	int3
40c9fd:	cc                   	int3
40c9fe:	cc                   	int3
40c9ff:	cc                   	int3
40ca00:	55                   	push   %ebp
40ca01:	8b ec                	mov    %esp,%ebp
40ca03:	6a ff                	push   $0xffffffff
40ca05:	68 b5 c4 43 00       	push   $0x43c4b5
40ca0a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ca10:	50                   	push   %eax
40ca11:	81 ec 80 03 00 00    	sub    $0x380,%esp
40ca17:	a1 14 50 45 00       	mov    0x455014,%eax
40ca1c:	33 c5                	xor    %ebp,%eax
40ca1e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40ca21:	56                   	push   %esi
40ca22:	57                   	push   %edi
40ca23:	50                   	push   %eax
40ca24:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ca27:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ca2d:	8b f9                	mov    %ecx,%edi
40ca2f:	8b 45 14             	mov    0x14(%ebp),%eax
40ca32:	8b 75 2c             	mov    0x2c(%ebp),%esi
40ca35:	8b ce                	mov    %esi,%ecx
40ca37:	89 85 e4 fc ff ff    	mov    %eax,-0x31c(%ebp)
40ca3d:	8b 45 18             	mov    0x18(%ebp),%eax
40ca40:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40ca46:	8b 45 1c             	mov    0x1c(%ebp),%eax
40ca49:	8d 51 02             	lea    0x2(%ecx),%edx
40ca4c:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40ca52:	8b 45 20             	mov    0x20(%ebp),%eax
40ca55:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40ca5b:	8b 45 24             	mov    0x24(%ebp),%eax
40ca5e:	89 85 d4 fc ff ff    	mov    %eax,-0x32c(%ebp)
40ca64:	8b 45 28             	mov    0x28(%ebp),%eax
40ca67:	89 85 1c fd ff ff    	mov    %eax,-0x2e4(%ebp)
40ca6d:	8b 45 30             	mov    0x30(%ebp),%eax
40ca70:	89 85 00 fd ff ff    	mov    %eax,-0x300(%ebp)
40ca76:	c7 85 d8 fd ff ff 00 	movl   $0x0,-0x228(%ebp)
40ca7d:	00 00 00
40ca80:	c7 85 e8 fd ff ff 00 	movl   $0x0,-0x218(%ebp)
40ca87:	00 00 00
40ca8a:	c7 85 ec fd ff ff 00 	movl   $0x0,-0x214(%ebp)
40ca91:	00 00 00
40ca94:	66 8b 01             	mov    (%ecx),%ax
40ca97:	83 c1 02             	add    $0x2,%ecx
40ca9a:	66 85 c0             	test   %ax,%ax
40ca9d:	75 f5                	jne    0x40ca94
40ca9f:	2b ca                	sub    %edx,%ecx
40caa1:	d1 f9                	sar    $1,%ecx
40caa3:	51                   	push   %ecx
40caa4:	56                   	push   %esi
40caa5:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
40caab:	e8 50 65 ff ff       	call   0x403000
40cab0:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40cab6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40cabd:	50                   	push   %eax
40cabe:	ff 75 0c             	push   0xc(%ebp)
40cac1:	8b cf                	mov    %edi,%ecx
40cac3:	ff 75 08             	push   0x8(%ebp)
40cac6:	e8 d5 fd ff ff       	call   0x40c8a0
40cacb:	68 bc ef 44 00       	push   $0x44efbc
40cad0:	56                   	push   %esi
40cad1:	e8 d6 e8 00 00       	call   0x41b3ac
40cad6:	83 c4 08             	add    $0x8,%esp
40cad9:	85 c0                	test   %eax,%eax
40cadb:	74 2d                	je     0x40cb0a
40cadd:	68 c4 ef 44 00       	push   $0x44efc4
40cae2:	50                   	push   %eax
40cae3:	e8 c4 e8 00 00       	call   0x41b3ac
40cae8:	83 c4 08             	add    $0x8,%esp
40caeb:	85 c0                	test   %eax,%eax
40caed:	74 1b                	je     0x40cb0a
40caef:	6a 27                	push   $0x27
40caf1:	68 d0 ef 44 00       	push   $0x44efd0
40caf6:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
40cafc:	e8 ef 63 ff ff       	call   0x402ef0
40cb01:	6a 04                	push   $0x4
40cb03:	68 44 f0 44 00       	push   $0x44f044
40cb08:	eb 65                	jmp    0x40cb6f
40cb0a:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40cb10:	8b cf                	mov    %edi,%ecx
40cb12:	50                   	push   %eax
40cb13:	56                   	push   %esi
40cb14:	e8 f7 9e 00 00       	call   0x416a10
40cb19:	8b 45 10             	mov    0x10(%ebp),%eax
40cb1c:	83 c0 f6             	add    $0xfffffff6,%eax
40cb1f:	83 f8 3c             	cmp    $0x3c,%eax
40cb22:	77 44                	ja     0x40cb68
40cb24:	0f b6 80 54 d6 40 00 	movzbl 0x40d654(%eax),%eax
40cb2b:	ff 24 85 34 d6 40 00 	jmp    *0x40d634(,%eax,4)
40cb32:	6a 05                	push   $0x5
40cb34:	68 2c f0 44 00       	push   $0x44f02c
40cb39:	eb 34                	jmp    0x40cb6f
40cb3b:	6a 05                	push   $0x5
40cb3d:	68 38 f0 44 00       	push   $0x44f038
40cb42:	eb 2b                	jmp    0x40cb6f
40cb44:	6a 04                	push   $0x4
40cb46:	68 50 f0 44 00       	push   $0x44f050
40cb4b:	eb 22                	jmp    0x40cb6f
40cb4d:	6a 05                	push   $0x5
40cb4f:	68 5c f0 44 00       	push   $0x44f05c
40cb54:	eb 19                	jmp    0x40cb6f
40cb56:	6a 05                	push   $0x5
40cb58:	68 68 f0 44 00       	push   $0x44f068
40cb5d:	eb 10                	jmp    0x40cb6f
40cb5f:	6a 04                	push   $0x4
40cb61:	68 74 f0 44 00       	push   $0x44f074
40cb66:	eb 07                	jmp    0x40cb6f
40cb68:	6a 03                	push   $0x3
40cb6a:	68 80 f0 44 00       	push   $0x44f080
40cb6f:	8d 8d e8 fc ff ff    	lea    -0x318(%ebp),%ecx
40cb75:	c7 85 e8 fc ff ff 00 	movl   $0x0,-0x318(%ebp)
40cb7c:	00 00 00
40cb7f:	c7 85 f8 fc ff ff 00 	movl   $0x0,-0x308(%ebp)
40cb86:	00 00 00
40cb89:	c7 85 fc fc ff ff 00 	movl   $0x0,-0x304(%ebp)
40cb90:	00 00 00
40cb93:	e8 68 64 ff ff       	call   0x403000
40cb98:	8d 77 1c             	lea    0x1c(%edi),%esi
40cb9b:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40cb9f:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
40cba5:	89 b5 20 fd ff ff    	mov    %esi,-0x2e0(%ebp)
40cbab:	8d 51 02             	lea    0x2(%ecx),%edx
40cbae:	66 90                	xchg   %ax,%ax
40cbb0:	66 8b 01             	mov    (%ecx),%ax
40cbb3:	83 c1 02             	add    $0x2,%ecx
40cbb6:	66 85 c0             	test   %ax,%ax
40cbb9:	75 f5                	jne    0x40cbb0
40cbbb:	2b ca                	sub    %edx,%ecx
40cbbd:	8d 7e 10             	lea    0x10(%esi),%edi
40cbc0:	8b 17                	mov    (%edi),%edx
40cbc2:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40cbc7:	d1 f9                	sar    $1,%ecx
40cbc9:	2b c2                	sub    %edx,%eax
40cbcb:	89 bd 24 fd ff ff    	mov    %edi,-0x2dc(%ebp)
40cbd1:	3b c1                	cmp    %ecx,%eax
40cbd3:	0f 82 44 0a 00 00    	jb     0x40d61d
40cbd9:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40cbdd:	8b c6                	mov    %esi,%eax
40cbdf:	72 02                	jb     0x40cbe3
40cbe1:	8b 06                	mov    (%esi),%eax
40cbe3:	52                   	push   %edx
40cbe4:	50                   	push   %eax
40cbe5:	51                   	push   %ecx
40cbe6:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40cbec:	50                   	push   %eax
40cbed:	51                   	push   %ecx
40cbee:	ff b5 1c fd ff ff    	push   -0x2e4(%ebp)
40cbf4:	8d 8d 04 fd ff ff    	lea    -0x2fc(%ebp),%ecx
40cbfa:	e8 f1 86 ff ff       	call   0x4052f0
40cbff:	6a 01                	push   $0x1
40cc01:	68 24 f0 44 00       	push   $0x44f024
40cc06:	8d 8d 04 fd ff ff    	lea    -0x2fc(%ebp),%ecx
40cc0c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40cc10:	e8 5b 61 ff ff       	call   0x402d70
40cc15:	33 c9                	xor    %ecx,%ecx
40cc17:	0f 10 00             	movups (%eax),%xmm0
40cc1a:	0f 11 85 a4 fc ff ff 	movups %xmm0,-0x35c(%ebp)
40cc21:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
40cc26:	66 0f d6 85 b4 fc ff 	movq   %xmm0,-0x34c(%ebp)
40cc2d:	ff
40cc2e:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
40cc35:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
40cc3c:	66 89 08             	mov    %cx,(%eax)
40cc3f:	8d 85 e8 fc ff ff    	lea    -0x318(%ebp),%eax
40cc45:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40cc49:	50                   	push   %eax
40cc4a:	8d 85 a4 fc ff ff    	lea    -0x35c(%ebp),%eax
40cc50:	50                   	push   %eax
40cc51:	ff b5 1c fd ff ff    	push   -0x2e4(%ebp)
40cc57:	8d 8d 74 fc ff ff    	lea    -0x38c(%ebp),%ecx
40cc5d:	e8 7e 32 00 00       	call   0x40fee0
40cc62:	6a 01                	push   $0x1
40cc64:	68 20 f0 44 00       	push   $0x44f020
40cc69:	8d 8d 74 fc ff ff    	lea    -0x38c(%ebp),%ecx
40cc6f:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40cc73:	e8 f8 60 ff ff       	call   0x402d70
40cc78:	c7 85 bc fc ff ff 00 	movl   $0x0,-0x344(%ebp)
40cc7f:	00 00 00
40cc82:	33 c9                	xor    %ecx,%ecx
40cc84:	c7 85 cc fc ff ff 00 	movl   $0x0,-0x334(%ebp)
40cc8b:	00 00 00
40cc8e:	c7 85 d0 fc ff ff 00 	movl   $0x0,-0x330(%ebp)
40cc95:	00 00 00
40cc98:	0f 10 00             	movups (%eax),%xmm0
40cc9b:	0f 11 85 bc fc ff ff 	movups %xmm0,-0x344(%ebp)
40cca2:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
40cca7:	66 0f d6 85 cc fc ff 	movq   %xmm0,-0x334(%ebp)
40ccae:	ff
40ccaf:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
40ccb6:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
40ccbd:	66 89 08             	mov    %cx,(%eax)
40ccc0:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40ccc4:	8b c6                	mov    %esi,%eax
40ccc6:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40ccca:	72 02                	jb     0x40ccce
40cccc:	8b 06                	mov    (%esi),%eax
40ccce:	ff 37                	push   (%edi)
40ccd0:	8d 8d bc fc ff ff    	lea    -0x344(%ebp),%ecx
40ccd6:	50                   	push   %eax
40ccd7:	e8 94 60 ff ff       	call   0x402d70
40ccdc:	33 c9                	xor    %ecx,%ecx
40ccde:	0f 10 08             	movups (%eax),%xmm1
40cce1:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
40cce6:	0f 11 8d 8c fc ff ff 	movups %xmm1,-0x374(%ebp)
40cced:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
40ccf4:	66 0f d6 85 9c fc ff 	movq   %xmm0,-0x364(%ebp)
40ccfb:	ff
40ccfc:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
40cd03:	66 89 08             	mov    %cx,(%eax)
40cd06:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40cd0a:	8d 8d 8c fc ff ff    	lea    -0x374(%ebp),%ecx
40cd10:	83 bd a0 fc ff ff 08 	cmpl   $0x8,-0x360(%ebp)
40cd17:	ff b5 9c fc ff ff    	push   -0x364(%ebp)
40cd1d:	66 0f 7e c8          	movd   %xmm1,%eax
40cd21:	0f 43 c8             	cmovae %eax,%ecx
40cd24:	51                   	push   %ecx
40cd25:	8b 8d 00 fd ff ff    	mov    -0x300(%ebp),%ecx
40cd2b:	e8 40 60 ff ff       	call   0x402d70
40cd30:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40cd34:	8b 8d a0 fc ff ff    	mov    -0x360(%ebp),%ecx
40cd3a:	83 f9 08             	cmp    $0x8,%ecx
40cd3d:	72 35                	jb     0x40cd74
40cd3f:	8b 95 8c fc ff ff    	mov    -0x374(%ebp),%edx
40cd45:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40cd4c:	8b c2                	mov    %edx,%eax
40cd4e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40cd54:	72 14                	jb     0x40cd6a
40cd56:	8b 50 fc             	mov    -0x4(%eax),%edx
40cd59:	83 c1 23             	add    $0x23,%ecx
40cd5c:	2b c2                	sub    %edx,%eax
40cd5e:	83 c0 fc             	add    $0xfffffffc,%eax
40cd61:	83 f8 1f             	cmp    $0x1f,%eax
40cd64:	0f 87 b8 08 00 00    	ja     0x40d622
40cd6a:	51                   	push   %ecx
40cd6b:	52                   	push   %edx
40cd6c:	e8 47 ce 00 00       	call   0x419bb8
40cd71:	83 c4 08             	add    $0x8,%esp
40cd74:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40cd78:	8b 8d d0 fc ff ff    	mov    -0x330(%ebp),%ecx
40cd7e:	83 f9 08             	cmp    $0x8,%ecx
40cd81:	72 35                	jb     0x40cdb8
40cd83:	8b 95 bc fc ff ff    	mov    -0x344(%ebp),%edx
40cd89:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40cd90:	8b c2                	mov    %edx,%eax
40cd92:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40cd98:	72 14                	jb     0x40cdae
40cd9a:	8b 50 fc             	mov    -0x4(%eax),%edx
40cd9d:	83 c1 23             	add    $0x23,%ecx
40cda0:	2b c2                	sub    %edx,%eax
40cda2:	83 c0 fc             	add    $0xfffffffc,%eax
40cda5:	83 f8 1f             	cmp    $0x1f,%eax
40cda8:	0f 87 74 08 00 00    	ja     0x40d622
40cdae:	51                   	push   %ecx
40cdaf:	52                   	push   %edx
40cdb0:	e8 03 ce 00 00       	call   0x419bb8
40cdb5:	83 c4 08             	add    $0x8,%esp
40cdb8:	33 c0                	xor    %eax,%eax
40cdba:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40cdbe:	8b 8d 88 fc ff ff    	mov    -0x378(%ebp),%ecx
40cdc4:	c7 85 cc fc ff ff 00 	movl   $0x0,-0x334(%ebp)
40cdcb:	00 00 00
40cdce:	c7 85 d0 fc ff ff 07 	movl   $0x7,-0x330(%ebp)
40cdd5:	00 00 00
40cdd8:	66 89 85 bc fc ff ff 	mov    %ax,-0x344(%ebp)
40cddf:	83 f9 08             	cmp    $0x8,%ecx
40cde2:	72 35                	jb     0x40ce19
40cde4:	8b 95 74 fc ff ff    	mov    -0x38c(%ebp),%edx
40cdea:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40cdf1:	8b c2                	mov    %edx,%eax
40cdf3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40cdf9:	72 14                	jb     0x40ce0f
40cdfb:	8b 50 fc             	mov    -0x4(%eax),%edx
40cdfe:	83 c1 23             	add    $0x23,%ecx
40ce01:	2b c2                	sub    %edx,%eax
40ce03:	83 c0 fc             	add    $0xfffffffc,%eax
40ce06:	83 f8 1f             	cmp    $0x1f,%eax
40ce09:	0f 87 13 08 00 00    	ja     0x40d622
40ce0f:	51                   	push   %ecx
40ce10:	52                   	push   %edx
40ce11:	e8 a2 cd 00 00       	call   0x419bb8
40ce16:	83 c4 08             	add    $0x8,%esp
40ce19:	33 c0                	xor    %eax,%eax
40ce1b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40ce1f:	8b 8d b8 fc ff ff    	mov    -0x348(%ebp),%ecx
40ce25:	c7 85 84 fc ff ff 00 	movl   $0x0,-0x37c(%ebp)
40ce2c:	00 00 00
40ce2f:	c7 85 88 fc ff ff 07 	movl   $0x7,-0x378(%ebp)
40ce36:	00 00 00
40ce39:	66 89 85 74 fc ff ff 	mov    %ax,-0x38c(%ebp)
40ce40:	83 f9 08             	cmp    $0x8,%ecx
40ce43:	72 35                	jb     0x40ce7a
40ce45:	8b 95 a4 fc ff ff    	mov    -0x35c(%ebp),%edx
40ce4b:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40ce52:	8b c2                	mov    %edx,%eax
40ce54:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40ce5a:	72 14                	jb     0x40ce70
40ce5c:	8b 50 fc             	mov    -0x4(%eax),%edx
40ce5f:	83 c1 23             	add    $0x23,%ecx
40ce62:	2b c2                	sub    %edx,%eax
40ce64:	83 c0 fc             	add    $0xfffffffc,%eax
40ce67:	83 f8 1f             	cmp    $0x1f,%eax
40ce6a:	0f 87 b2 07 00 00    	ja     0x40d622
40ce70:	51                   	push   %ecx