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
40d03c:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40d03f:	29 45 e4             	sub    %eax,-0x1c(%ebp)
40d042:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
40d046:	0f 8e da 00 00 00    	jle    0x40d126
40d04c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
40d050:	0f 8e d0 00 00 00    	jle    0x40d126
40d056:	85 c9                	test   %ecx,%ecx
40d058:	79 0f                	jns    0x40d069
40d05a:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40d05d:	f7 d9                	neg    %ecx
40d05f:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
40d062:	33 c9                	xor    %ecx,%ecx
40d064:	89 4d c0             	mov    %ecx,-0x40(%ebp)
40d067:	eb 0b                	jmp    0x40d074
40d069:	89 4d c0             	mov    %ecx,-0x40(%ebp)
40d06c:	33 c9                	xor    %ecx,%ecx
40d06e:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40d071:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
40d074:	8b 45 bc             	mov    -0x44(%ebp),%eax
40d077:	85 c0                	test   %eax,%eax
40d079:	79 10                	jns    0x40d08b
40d07b:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
40d07e:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40d081:	2b c8                	sub    %eax,%ecx
40d083:	89 45 a0             	mov    %eax,-0x60(%ebp)
40d086:	89 4d 98             	mov    %ecx,-0x68(%ebp)
40d089:	eb 0c                	jmp    0x40d097
40d08b:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40d08e:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d091:	89 4d a0             	mov    %ecx,-0x60(%ebp)
40d094:	89 45 98             	mov    %eax,-0x68(%ebp)
40d097:	8b 45 c0             	mov    -0x40(%ebp),%eax
40d09a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40d09d:	03 4d a4             	add    -0x5c(%ebp),%ecx
40d0a0:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d0a3:	8b 45 e0             	mov    -0x20(%ebp),%eax
40d0a6:	03 45 a8             	add    -0x58(%ebp),%eax
40d0a9:	68 20 00 cc 00       	push   $0xcc0020
40d0ae:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d0b1:	8b 45 a0             	mov    -0x60(%ebp),%eax
40d0b4:	03 45 d0             	add    -0x30(%ebp),%eax
40d0b7:	51                   	push   %ecx
40d0b8:	ff 75 c0             	push   -0x40(%ebp)
40d0bb:	03 c2                	add    %edx,%eax
40d0bd:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40d0c0:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d0c3:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d0c6:	50                   	push   %eax
40d0c7:	ff 75 e4             	push   -0x1c(%ebp)
40d0ca:	ff 75 9c             	push   -0x64(%ebp)
40d0cd:	ff 75 98             	push   -0x68(%ebp)
40d0d0:	ff 75 94             	push   -0x6c(%ebp)
40d0d3:	50                   	push   %eax
40d0d4:	ff 15 4c 30 43 00    	call   *0x43304c
40d0da:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40d0dd:	0f b7 c8             	movzwl %ax,%ecx
40d0e0:	a1 48 26 43 00       	mov    0x432648,%eax
40d0e5:	8d 14 48             	lea    (%eax,%ecx,2),%edx
40d0e8:	8b 0d 10 19 43 00    	mov    0x431910,%ecx
40d0ee:	66 8b 02             	mov    (%edx),%ax
40d0f1:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40d0f5:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d0f8:	50                   	push   %eax
40d0f9:	e8 c4 f1 ff ff       	call   0x40c2c2
40d0fe:	8b 55 88             	mov    -0x78(%ebp),%edx
40d101:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d104:	51                   	push   %ecx
40d105:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40d108:	6a 01                	push   $0x1
40d10a:	50                   	push   %eax
40d10b:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d10e:	50                   	push   %eax
40d10f:	8b 45 b8             	mov    -0x48(%ebp),%eax
40d112:	8d 14 1a             	lea    (%edx,%ebx,1),%edx
40d115:	03 45 bc             	add    -0x44(%ebp),%eax
40d118:	03 45 d0             	add    -0x30(%ebp),%eax
40d11b:	6a 06                	push   $0x6
40d11d:	50                   	push   %eax
40d11e:	e8 66 2f 00 00       	call   0x410089
40d123:	8b 55 dc             	mov    -0x24(%ebp),%edx
40d126:	68 20 00 cc 00       	push   $0xcc0020
40d12b:	ff 75 d0             	push   -0x30(%ebp)
40d12e:	6a 00                	push   $0x0
40d130:	ff 75 d8             	push   -0x28(%ebp)
40d133:	52                   	push   %edx
40d134:	ff 75 e0             	push   -0x20(%ebp)
40d137:	ff 75 90             	push   -0x70(%ebp)
40d13a:	ff 75 8c             	push   -0x74(%ebp)
40d13d:	57                   	push   %edi
40d13e:	ff 15 4c 30 43 00    	call   *0x43304c
40d144:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40d147:	8b 45 e0             	mov    -0x20(%ebp),%eax
40d14a:	8b 55 cc             	mov    -0x34(%ebp),%edx
40d14d:	83 c0 fe             	add    $0xfffffffe,%eax
40d150:	03 c1                	add    %ecx,%eax
40d152:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40d155:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d158:	8b 45 dc             	mov    -0x24(%ebp),%eax
40d15b:	6a 00                	push   $0x0
40d15d:	52                   	push   %edx
40d15e:	83 c0 fe             	add    $0xfffffffe,%eax
40d161:	89 4e 20             	mov    %ecx,0x20(%esi)
40d164:	51                   	push   %ecx
40d165:	03 c2                	add    %edx,%eax
40d167:	89 55 ec             	mov    %edx,-0x14(%ebp)
40d16a:	57                   	push   %edi
40d16b:	89 56 24             	mov    %edx,0x24(%esi)
40d16e:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d171:	ff 15 88 30 43 00    	call   *0x433088
40d177:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d17a:	48                   	dec    %eax
40d17b:	50                   	push   %eax
40d17c:	ff 75 e8             	push   -0x18(%ebp)
40d17f:	57                   	push   %edi
40d180:	ff 15 84 30 43 00    	call   *0x433084
40d186:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d189:	48                   	dec    %eax
40d18a:	50                   	push   %eax
40d18b:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d18e:	48                   	dec    %eax
40d18f:	50                   	push   %eax
40d190:	57                   	push   %edi
40d191:	ff 15 84 30 43 00    	call   *0x433084
40d197:	ff 75 ec             	push   -0x14(%ebp)
40d19a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d19d:	48                   	dec    %eax
40d19e:	50                   	push   %eax
40d19f:	57                   	push   %edi
40d1a0:	ff 15 84 30 43 00    	call   *0x433084
40d1a6:	ff 75 ec             	push   -0x14(%ebp)
40d1a9:	ff 75 e8             	push   -0x18(%ebp)
40d1ac:	57                   	push   %edi
40d1ad:	ff 15 84 30 43 00    	call   *0x433084
40d1b3:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d1b6:	6a 00                	push   $0x0
40d1b8:	40                   	inc    %eax
40d1b9:	50                   	push   %eax
40d1ba:	ff 75 f0             	push   -0x10(%ebp)
40d1bd:	57                   	push   %edi
40d1be:	ff 15 88 30 43 00    	call   *0x433088
40d1c4:	ff 75 f4             	push   -0xc(%ebp)
40d1c7:	ff 75 f0             	push   -0x10(%ebp)
40d1ca:	57                   	push   %edi
40d1cb:	ff 15 84 30 43 00    	call   *0x433084
40d1d1:	ff 75 f4             	push   -0xc(%ebp)
40d1d4:	ff 75 e8             	push   -0x18(%ebp)
40d1d7:	57                   	push   %edi
40d1d8:	ff 15 84 30 43 00    	call   *0x433084
40d1de:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d1e1:	6a 00                	push   $0x0
40d1e3:	83 c0 02             	add    $0x2,%eax
40d1e6:	50                   	push   %eax
40d1e7:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d1ea:	40                   	inc    %eax
40d1eb:	50                   	push   %eax
40d1ec:	57                   	push   %edi
40d1ed:	ff 15 88 30 43 00    	call   *0x433088
40d1f3:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d1f6:	40                   	inc    %eax
40d1f7:	50                   	push   %eax
40d1f8:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d1fb:	40                   	inc    %eax
40d1fc:	50                   	push   %eax
40d1fd:	57                   	push   %edi
40d1fe:	ff 15 84 30 43 00    	call   *0x433084
40d204:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d207:	40                   	inc    %eax
40d208:	50                   	push   %eax
40d209:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d20c:	40                   	inc    %eax
40d20d:	50                   	push   %eax
40d20e:	57                   	push   %edi
40d20f:	ff 15 84 30 43 00    	call   *0x433084
40d215:	ff 45 e8             	incl   -0x18(%ebp)
40d218:	ff 45 ec             	incl   -0x14(%ebp)