40cc4a:	0f b7 05 80 26 43 00 	movzwl 0x432680,%eax
40cc51:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40cc57:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40cc5a:	89 45 dc             	mov    %eax,-0x24(%ebp)
40cc5d:	8d 46 68             	lea    0x68(%esi),%eax
40cc60:	89 45 e0             	mov    %eax,-0x20(%ebp)
40cc63:	8b 46 14             	mov    0x14(%esi),%eax
40cc66:	89 45 d8             	mov    %eax,-0x28(%ebp)
40cc69:	8d 43 01             	lea    0x1(%ebx),%eax
40cc6c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40cc6f:	33 c0                	xor    %eax,%eax
40cc71:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
40cc78:	40                   	inc    %eax
40cc79:	89 45 d0             	mov    %eax,-0x30(%ebp)
40cc7c:	8b 46 10             	mov    0x10(%esi),%eax
40cc7f:	89 45 ec             	mov    %eax,-0x14(%ebp)
40cc82:	48                   	dec    %eax
40cc83:	03 c1                	add    %ecx,%eax
40cc85:	89 45 f4             	mov    %eax,-0xc(%ebp)
40cc88:	33 c0                	xor    %eax,%eax
40cc8a:	85 d2                	test   %edx,%edx
40cc8c:	7e 7d                	jle    0x40cd0b
40cc8e:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40cc91:	40                   	inc    %eax
40cc92:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40cc95:	66 3b 0d 3c 13 41 00 	cmp    0x41133c,%cx
40cc9c:	77 6a                	ja     0x40cd08
40cc9e:	a1 48 26 43 00       	mov    0x432648,%eax
40cca3:	0f b7 c9             	movzwl %cx,%ecx
40cca6:	8d 14 48             	lea    (%eax,%ecx,2),%edx
40cca9:	8b 0d 14 19 43 00    	mov    0x431914,%ecx
40ccaf:	66 8b 02             	mov    (%edx),%ax
40ccb2:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
40ccb6:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ccb9:	50                   	push   %eax
40ccba:	e8 03 f6 ff ff       	call   0x40c2c2
40ccbf:	8b 55 e0             	mov    -0x20(%ebp),%edx
40ccc2:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ccc5:	51                   	push   %ecx
40ccc6:	6a 01                	push   $0x1
40ccc8:	50                   	push   %eax
40ccc9:	8b 12                	mov    (%edx),%edx
40cccb:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ccce:	03 55 ec             	add    -0x14(%ebp),%edx
40ccd1:	8b cf                	mov    %edi,%ecx
40ccd3:	50                   	push   %eax
40ccd4:	6a 06                	push   $0x6
40ccd6:	ff 75 d8             	push   -0x28(%ebp)
40ccd9:	e8 ab 33 00 00       	call   0x410089
40ccde:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40cce1:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
40cce5:	41                   	inc    %ecx
40cce6:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40cce9:	66 3b 0d 38 13 41 00 	cmp    0x411338,%cx
40ccf0:	77 38                	ja     0x40cd2a
40ccf2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ccf5:	01 45 ec             	add    %eax,-0x14(%ebp)
40ccf8:	01 45 f4             	add    %eax,-0xc(%ebp)
40ccfb:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40cd01:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40cd04:	3b c2                	cmp    %edx,%eax
40cd06:	7c 89                	jl     0x40cc91
40cd08:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40cd0b:	01 5d d8             	add    %ebx,-0x28(%ebp)
40cd0e:	01 5d f0             	add    %ebx,-0x10(%ebp)
40cd11:	01 5d f8             	add    %ebx,-0x8(%ebp)
40cd14:	8b 45 d0             	mov    -0x30(%ebp),%eax
40cd17:	83 f8 0a             	cmp    $0xa,%eax
40cd1a:	0f 8c 58 ff ff ff    	jl     0x40cc78
40cd20:	ff 75 cc             	push   -0x34(%ebp)
40cd23:	57                   	push   %edi
40cd24:	ff 15 ac 30 43 00    	call   *0x4330ac
40cd2a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cd2d:	5f                   	pop    %edi
40cd2e:	5e                   	pop    %esi
40cd2f:	33 cd                	xor    %ebp,%ecx
40cd31:	5b                   	pop    %ebx
40cd32:	e8 f9 36 00 00       	call   0x410430
40cd37:	c9                   	leave
40cd38:	c3                   	ret
40cd39:	8b ff                	mov    %edi,%edi
40cd3b:	55                   	push   %ebp
40cd3c:	8b ec                	mov    %esp,%ebp
40cd3e:	83 ec 1c             	sub    $0x1c,%esp
40cd41:	a1 64 10 41 00       	mov    0x411064,%eax
40cd46:	33 c5                	xor    %ebp,%eax
40cd48:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cd4b:	8b 45 0c             	mov    0xc(%ebp),%eax
40cd4e:	53                   	push   %ebx
40cd4f:	56                   	push   %esi
40cd50:	8b 31                	mov    (%ecx),%esi
40cd52:	8b da                	mov    %edx,%ebx
40cd54:	57                   	push   %edi
40cd55:	8b 79 04             	mov    0x4(%ecx),%edi
40cd58:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40cd5b:	33 c9                	xor    %ecx,%ecx
40cd5d:	85 c0                	test   %eax,%eax
40cd5f:	0f 95 c1             	setne  %cl
40cd62:	83 c1 05             	add    $0x5,%ecx
40cd65:	51                   	push   %ecx
40cd66:	ff 15 0c 32 43 00    	call   *0x43320c
40cd6c:	50                   	push   %eax
40cd6d:	ff 15 5c 30 43 00    	call   *0x43305c
40cd73:	50                   	push   %eax
40cd74:	53                   	push   %ebx
40cd75:	ff 15 ac 30 43 00    	call   *0x4330ac
40cd7b:	66 8b 4d 08          	mov    0x8(%ebp),%cx
40cd7f:	66 2b 0d 80 26 43 00 	sub    0x432680,%cx
40cd86:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40cd89:	0f b7 c1             	movzwl %cx,%eax
40cd8c:	8d 4e ff             	lea    -0x1(%esi),%ecx
40cd8f:	99                   	cltd
40cd90:	f7 3d b0 10 41 00    	idivl  0x4110b0
40cd96:	68 21 00 f0 00       	push   $0xf00021
40cd9b:	0f af c7             	imul   %edi,%eax
40cd9e:	0f af d6             	imul   %esi,%edx
40cda1:	6a 01                	push   $0x1
40cda3:	83 c2 02             	add    $0x2,%edx
40cda6:	03 ca                	add    %edx,%ecx
40cda8:	89 55 ec             	mov    %edx,-0x14(%ebp)
40cdab:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40cdae:	8d 48 02             	lea    0x2(%eax),%ecx
40cdb1:	8d 47 ff             	lea    -0x1(%edi),%eax
40cdb4:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40cdb7:	03 c1                	add    %ecx,%eax
40cdb9:	4e                   	dec    %esi
40cdba:	56                   	push   %esi
40cdbb:	89 45 f8             	mov    %eax,-0x8(%ebp)
40cdbe:	8d 41 fe             	lea    -0x2(%ecx),%eax
40cdc1:	50                   	push   %eax
40cdc2:	52                   	push   %edx
40cdc3:	53                   	push   %ebx
40cdc4:	ff 15 58 30 43 00    	call   *0x433058
40cdca:	8b 45 f8             	mov    -0x8(%ebp),%eax
40cdcd:	68 21 00 f0 00       	push   $0xf00021
40cdd2:	6a 01                	push   $0x1
40cdd4:	56                   	push   %esi
40cdd5:	40                   	inc    %eax
40cdd6:	50                   	push   %eax
40cdd7:	ff 75 ec             	push   -0x14(%ebp)
40cdda:	53                   	push   %ebx
40cddb:	ff 15 58 30 43 00    	call   *0x433058
40cde1:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cde4:	8d 77 ff             	lea    -0x1(%edi),%esi
40cde7:	bf 21 00 f0 00       	mov    $0xf00021,%edi
40cdec:	83 c0 fe             	add    $0xfffffffe,%eax
40cdef:	57                   	push   %edi
40cdf0:	56                   	push   %esi
40cdf1:	6a 01                	push   $0x1
40cdf3:	ff 75 f0             	push   -0x10(%ebp)
40cdf6:	50                   	push   %eax
40cdf7:	53                   	push   %ebx
40cdf8:	ff 15 58 30 43 00    	call   *0x433058
40cdfe:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ce01:	57                   	push   %edi
40ce02:	56                   	push   %esi
40ce03:	6a 01                	push   $0x1
40ce05:	ff 75 f0             	push   -0x10(%ebp)
40ce08:	40                   	inc    %eax
40ce09:	50                   	push   %eax
40ce0a:	53                   	push   %ebx
40ce0b:	ff 15 58 30 43 00    	call   *0x433058
40ce11:	6a 05                	push   $0x5
40ce13:	ff 15 54 30 43 00    	call   *0x433054
40ce19:	50                   	push   %eax
40ce1a:	53                   	push   %ebx
40ce1b:	ff 15 ac 30 43 00    	call   *0x4330ac
40ce21:	50                   	push   %eax
40ce22:	ff 15 b4 30 43 00    	call   *0x4330b4
40ce28:	8b 75 e8             	mov    -0x18(%ebp),%esi
40ce2b:	8b 7d 10             	mov    0x10(%ebp),%edi
40ce2e:	3b 7e 40             	cmp    0x40(%esi),%edi
40ce31:	74 0e                	je     0x40ce41
40ce33:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ce36:	50                   	push   %eax
40ce37:	53                   	push   %ebx
40ce38:	ff 15 38 32 43 00    	call   *0x433238
40ce3e:	89 7e 40             	mov    %edi,0x40(%esi)
40ce41:	ff 75 e4             	push   -0x1c(%ebp)
40ce44:	53                   	push   %ebx
40ce45:	ff 15 ac 30 43 00    	call   *0x4330ac
40ce4b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ce4e:	5f                   	pop    %edi
40ce4f:	5e                   	pop    %esi
40ce50:	33 cd                	xor    %ebp,%ecx
40ce52:	5b                   	pop    %ebx
40ce53:	e8 d8 35 00 00       	call   0x410430
40ce58:	c9                   	leave
40ce59:	c2 0c 00             	ret    $0xc
40ce5c:	8b ff                	mov    %edi,%edi
40ce5e:	55                   	push   %ebp
40ce5f:	8b ec                	mov    %esp,%ebp
40ce61:	81 ec 88 00 00 00    	sub    $0x88,%esp
40ce67:	a1 64 10 41 00       	mov    0x411064,%eax
40ce6c:	33 c5                	xor    %ebp,%eax
40ce6e:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ce71:	53                   	push   %ebx
40ce72:	56                   	push   %esi
40ce73:	8b f1                	mov    %ecx,%esi
40ce75:	0f b7 da             	movzwl %dx,%ebx
40ce78:	83 65 ac 00          	andl   $0x0,-0x54(%ebp)
40ce7c:	83 65 b0 00          	andl   $0x0,-0x50(%ebp)
40ce80:	57                   	push   %edi
40ce81:	8b 46 60             	mov    0x60(%esi),%eax
40ce84:	8b 4e 28             	mov    0x28(%esi),%ecx
40ce87:	89 45 d8             	mov    %eax,-0x28(%ebp)
40ce8a:	8b 46 18             	mov    0x18(%esi),%eax
40ce8d:	89 45 e0             	mov    %eax,-0x20(%ebp)
40ce90:	8b 46 1c             	mov    0x1c(%esi),%eax
40ce93:	89 45 dc             	mov    %eax,-0x24(%ebp)
40ce96:	89 4d d0             	mov    %ecx,-0x30(%ebp)
40ce99:	33 c8                	xor    %eax,%ecx
40ce9b:	8b 46 24             	mov    0x24(%esi),%eax
40ce9e:	89 45 90             	mov    %eax,-0x70(%ebp)
40cea1:	66 8b c3             	mov    %bx,%ax
40cea4:	66 2b 05 80 26 43 00 	sub    0x432680,%ax
40ceab:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
40ceae:	8b 0d b0 10 41 00    	mov    0x4110b0,%ecx
40ceb4:	66 03 c1             	add    %cx,%ax
40ceb7:	0f b7 c0             	movzwl %ax,%eax
40ceba:	99                   	cltd
40cebb:	f7 f9                	idiv   %ecx
40cebd:	8b 0e                	mov    (%esi),%ecx
40cebf:	8b 7e 20             	mov    0x20(%esi),%edi
40cec2:	0f af ca             	imul   %edx,%ecx
40cec5:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
40cec8:	89 7d 8c             	mov    %edi,-0x74(%ebp)
40cecb:	03 4e 2c             	add    0x2c(%esi),%ecx
40cece:	48                   	dec    %eax
40cecf:	0f af 46 04          	imul   0x4(%esi),%eax
40ced3:	89 4d c8             	mov    %ecx,-0x38(%ebp)
40ced6:	03 46 30             	add    0x30(%esi),%eax
40ced9:	89 45 cc             	mov    %eax,-0x34(%ebp)
40cedc:	66 3b 1d 38 13 41 00 	cmp    0x411338,%bx
40cee3:	0f 87 dc 03 00 00    	ja     0x40d2c5
40cee9:	66 3b 5e 54          	cmp    0x54(%esi),%bx
40ceed:	75 0e                	jne    0x40cefd
40ceef:	85 ff                	test   %edi,%edi
40cef1:	74 0a                	je     0x40cefd
40cef3:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40cef7:	0f 84 c8 03 00 00    	je     0x40d2c5
40cefd:	ff 35 10 19 43 00    	push   0x431910
40cf03:	ff 15 f0 32 43 00    	call   *0x4332f0
40cf09:	ff 76 58             	push   0x58(%esi)
40cf0c:	8b f8                	mov    %eax,%edi
40cf0e:	ff 75 d8             	push   -0x28(%ebp)
40cf11:	ff 15 ac 30 43 00    	call   *0x4330ac
40cf17:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40cf1d:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40cf23:	85 c9                	test   %ecx,%ecx
40cf25:	74 1f                	je     0x40cf46
40cf27:	66 3b 1d 38 13 41 00 	cmp    0x411338,%bx
40cf2e:	77 16                	ja     0x40cf46
40cf30:	8d 45 ac             	lea    -0x54(%ebp),%eax
40cf33:	50                   	push   %eax
40cf34:	0f b7 c3             	movzwl %bx,%eax
40cf37:	6a 01                	push   $0x1
40cf39:	8d 04 41             	lea    (%ecx,%eax,2),%eax
40cf3c:	50                   	push   %eax
40cf3d:	ff 75 d8             	push   -0x28(%ebp)
40cf40:	ff 15 50 30 43 00    	call   *0x433050
40cf46:	ff 15 d4 30 43 00    	call   *0x4330d4
40cf4c:	25 ff 03 00 00       	and    $0x3ff,%eax
40cf51:	66 83 f8 04          	cmp    $0x4,%ax
40cf55:	8b 45 e0             	mov    -0x20(%ebp),%eax
40cf58:	75 1d                	jne    0x40cf77
40cf5a:	2b 45 ac             	sub    -0x54(%ebp),%eax
40cf5d:	99                   	cltd
40cf5e:	2b c2                	sub    %edx,%eax
40cf60:	8b d8                	mov    %eax,%ebx
40cf62:	8b 45 dc             	mov    -0x24(%ebp),%eax
40cf65:	2b 45 b0             	sub    -0x50(%ebp),%eax
40cf68:	99                   	cltd
40cf69:	2b c2                	sub    %edx,%eax
40cf6b:	d1 fb                	sar    $1,%ebx
40cf6d:	d1 f8                	sar    $1,%eax
40cf6f:	83 eb 02             	sub    $0x2,%ebx
40cf72:	83 e8 02             	sub    $0x2,%eax
40cf75:	eb 17                	jmp    0x40cf8e
40cf77:	2b 45 ac             	sub    -0x54(%ebp),%eax
40cf7a:	99                   	cltd
40cf7b:	2b c2                	sub    %edx,%eax
40cf7d:	8b d8                	mov    %eax,%ebx
40cf7f:	8b 45 dc             	mov    -0x24(%ebp),%eax
40cf82:	2b 45 b0             	sub    -0x50(%ebp),%eax
40cf85:	99                   	cltd
40cf86:	2b c2                	sub    %edx,%eax
40cf88:	d1 fb                	sar    $1,%ebx
40cf8a:	d1 f8                	sar    $1,%eax
40cf8c:	4b                   	dec    %ebx
40cf8d:	48                   	dec    %eax
40cf8e:	6a 06                	push   $0x6
40cf90:	89 45 b8             	mov    %eax,-0x48(%ebp)
40cf93:	ff 15 0c 32 43 00    	call   *0x43320c
40cf99:	50                   	push   %eax
40cf9a:	6a 01                	push   $0x1
40cf9c:	6a 00                	push   $0x0
40cf9e:	ff 15 7c 30 43 00    	call   *0x43307c
40cfa4:	50                   	push   %eax
40cfa5:	57                   	push   %edi
40cfa6:	ff 15 ac 30 43 00    	call   *0x4330ac
40cfac:	ff 76 58             	push   0x58(%esi)
40cfaf:	89 45 84             	mov    %eax,-0x7c(%ebp)
40cfb2:	57                   	push   %edi
40cfb3:	ff 15 ac 30 43 00    	call   *0x4330ac
40cfb9:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40cfbc:	68 20 00 cc 00       	push   $0xcc0020
40cfc1:	51                   	push   %ecx
40cfc2:	ff 75 c8             	push   -0x38(%ebp)
40cfc5:	89 45 80             	mov    %eax,-0x80(%ebp)
40cfc8:	57                   	push   %edi
40cfc9:	ff 75 dc             	push   -0x24(%ebp)
40cfcc:	ff 75 e0             	push   -0x20(%ebp)
40cfcf:	ff 75 c4             	push   -0x3c(%ebp)
40cfd2:	6a 00                	push   $0x0
40cfd4:	ff 75 d8             	push   -0x28(%ebp)
40cfd7:	ff 15 4c 30 43 00    	call   *0x43304c
40cfdd:	6a 08                	push   $0x8
40cfdf:	ff 15 0c 32 43 00    	call   *0x43320c
40cfe5:	50                   	push   %eax
40cfe6:	57                   	push   %edi
40cfe7:	ff 15 80 30 43 00    	call   *0x433080
40cfed:	6a 05                	push   $0x5
40cfef:	ff 15 0c 32 43 00    	call   *0x43320c
40cff5:	50                   	push   %eax
40cff6:	57                   	push   %edi
40cff7:	ff 15 94 30 43 00    	call   *0x433094
40cffd:	6a 02                	push   $0x2
40cfff:	57                   	push   %edi
40d000:	ff 15 6c 30 43 00    	call   *0x43306c
40d006:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
40d00a:	0f 84 34 01 00 00    	je     0x40d144
40d010:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d013:	2b 45 90             	sub    -0x70(%ebp),%eax
40d016:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40d019:	2b 4d 8c             	sub    -0x74(%ebp),%ecx
40d01c:	89 45 bc             	mov    %eax,-0x44(%ebp)
40d01f:	8b c1                	mov    %ecx,%eax
40d021:	99                   	cltd
40d022:	33 c2                	xor    %edx,%eax
40d024:	89 4d 88             	mov    %ecx,-0x78(%ebp)
40d027:	2b c2                	sub    %edx,%eax
40d029:	8b 55 e0             	mov    -0x20(%ebp),%edx
40d02c:	2b d0                	sub    %eax,%edx
40d02e:	8b 45 bc             	mov    -0x44(%ebp),%eax
40d031:	89 55 9c             	mov    %edx,-0x64(%ebp)
40d034:	99                   	cltd
40d035:	33 c2                	xor    %edx,%eax
40d037:	2b c2                	sub    %edx,%eax
40d039:	8b 55 dc             	mov    -0x24(%ebp),%edx