40dea2:	83 4e 5c ff          	orl    $0xffffffff,0x5c(%esi)
40dea6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40dea9:	89 7e 60             	mov    %edi,0x60(%esi)
40deac:	89 7e 64             	mov    %edi,0x64(%esi)
40deaf:	89 7e 68             	mov    %edi,0x68(%esi)
40deb2:	89 7e 6c             	mov    %edi,0x6c(%esi)
40deb5:	89 7e 70             	mov    %edi,0x70(%esi)
40deb8:	c7 46 74 74 c4 48 00 	movl   $0x48c474,0x74(%esi)
40debf:	c7 46 78 58 c4 48 00 	movl   $0x48c458,0x78(%esi)
40dec6:	5f                   	pop    %edi
40dec7:	8b c6                	mov    %esi,%eax
40dec9:	5e                   	pop    %esi
40deca:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ded1:	c9                   	leave
40ded2:	c2 04 00             	ret    $0x4
40ded5:	b8 f4 35 48 00       	mov    $0x4835f4,%eax
40deda:	e8 9d 9d 00 00       	call   0x417c7c
40dedf:	83 ec 14             	sub    $0x14,%esp
40dee2:	56                   	push   %esi
40dee3:	57                   	push   %edi
40dee4:	8b 7d 0c             	mov    0xc(%ebp),%edi
40dee7:	8d 87 cc 02 00 00    	lea    0x2cc(%edi),%eax
40deed:	83 f8 0f             	cmp    $0xf,%eax
40def0:	8b f1                	mov    %ecx,%esi
40def2:	0f 87 8f 01 00 00    	ja     0x40e087
40def8:	0f b6 80 c1 e0 40 00 	movzbl 0x40e0c1(%eax),%eax
40deff:	ff 24 85 99 e0 40 00 	jmp    *0x40e099(,%eax,4)
40df06:	8b 45 10             	mov    0x10(%ebp),%eax
40df09:	66 83 48 08 ff       	orw    $0xffff,0x8(%eax)
40df0e:	66 c7 00 0b 00       	movw   $0xb,(%eax)
40df13:	e9 6a 01 00 00       	jmp    0x40e082
40df18:	8b 45 10             	mov    0x10(%ebp),%eax
40df1b:	66 83 60 08 00       	andw   $0x0,0x8(%eax)
40df20:	66 c7 00 0b 00       	movw   $0xb,(%eax)
40df25:	e9 58 01 00 00       	jmp    0x40e082
40df2a:	8b 45 10             	mov    0x10(%ebp),%eax
40df2d:	66 c7 00 02 00       	movw   $0x2,(%eax)
40df32:	66 c7 40 08 01 00    	movw   $0x1,0x8(%eax)
40df38:	e9 45 01 00 00       	jmp    0x40e082
40df3d:	83 7e 58 ff          	cmpl   $0xffffffff,0x58(%esi)
40df41:	75 41                	jne    0x40df84
40df43:	ff 76 1c             	push   0x1c(%esi)
40df46:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40df49:	e8 4d 15 04 00       	call   0x44f49b
40df4e:	8b 46 1c             	mov    0x1c(%esi),%eax
40df51:	8b 40 1c             	mov    0x1c(%eax),%eax
40df54:	50                   	push   %eax
40df55:	ff 75 e4             	push   -0x1c(%ebp)
40df58:	68 38 01 00 00       	push   $0x138
40df5d:	50                   	push   %eax
40df5e:	ff 15 98 08 4b 00    	call   *0x4b0898
40df64:	ff 75 e8             	push   -0x18(%ebp)
40df67:	ff 15 60 ff 4a 00    	call   *0x4aff60
40df6d:	ff 75 e8             	push   -0x18(%ebp)
40df70:	89 46 58             	mov    %eax,0x58(%esi)
40df73:	ff 15 64 ff 4a 00    	call   *0x4aff64
40df79:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40df7c:	89 46 5c             	mov    %eax,0x5c(%esi)
40df7f:	e8 72 15 04 00       	call   0x44f4f6
40df84:	81 ff 43 fd ff ff    	cmp    $0xfffffd43,%edi
40df8a:	8b 45 10             	mov    0x10(%ebp),%eax
40df8d:	66 c7 00 03 00       	movw   $0x3,(%eax)
40df92:	75 05                	jne    0x40df99
40df94:	8b 76 58             	mov    0x58(%esi),%esi
40df97:	eb 03                	jmp    0x40df9c
40df99:	8b 76 5c             	mov    0x5c(%esi),%esi
40df9c:	89 70 08             	mov    %esi,0x8(%eax)
40df9f:	e9 de 00 00 00       	jmp    0x40e082
40dfa4:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
40dfa8:	75 1a                	jne    0x40dfc4
40dfaa:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40dfad:	e8 5c f3 ff ff       	call   0x40d30e
40dfb2:	50                   	push   %eax
40dfb3:	8b ce                	mov    %esi,%ecx
40dfb5:	e8 e4 f6 ff ff       	call   0x40d69e
40dfba:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
40dfbe:	0f 84 c3 00 00 00    	je     0x40e087
40dfc4:	8b 7d 10             	mov    0x10(%ebp),%edi
40dfc7:	66 c7 07 09 00       	movw   $0x9,(%edi)
40dfcc:	8b 46 60             	mov    0x60(%esi),%eax
40dfcf:	8b 08                	mov    (%eax),%ecx
40dfd1:	50                   	push   %eax
40dfd2:	ff 51 04             	call   *0x4(%ecx)
40dfd5:	8b 46 60             	mov    0x60(%esi),%eax
40dfd8:	89 47 08             	mov    %eax,0x8(%edi)
40dfdb:	e9 a2 00 00 00       	jmp    0x40e082
40dfe0:	8b 75 10             	mov    0x10(%ebp),%esi
40dfe3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dfe6:	66 c7 06 0b 00       	movw   $0xb,(%esi)
40dfeb:	e8 c0 07 00 00       	call   0x40e7b0
40dff0:	f7 d8                	neg    %eax
40dff2:	1b c0                	sbb    %eax,%eax
40dff4:	66 89 46 08          	mov    %ax,0x8(%esi)
40dff8:	e9 85 00 00 00       	jmp    0x40e082
40dffd:	8b 75 10             	mov    0x10(%ebp),%esi
40e000:	66 c7 06 03 00       	movw   $0x3,(%esi)
40e005:	ff 15 ac 03 4b 00    	call   *0x4b03ac
40e00b:	89 46 08             	mov    %eax,0x8(%esi)
40e00e:	eb 72                	jmp    0x40e082
40e010:	e8 e1 21 03 00       	call   0x4401f6
40e015:	8b 10                	mov    (%eax),%edx
40e017:	8b c8                	mov    %eax,%ecx
40e019:	ff 52 0c             	call   *0xc(%edx)
40e01c:	8d 70 10             	lea    0x10(%eax),%esi
40e01f:	89 75 0c             	mov    %esi,0xc(%ebp)
40e022:	8b 7d 10             	mov    0x10(%ebp),%edi
40e025:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e029:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40e02c:	66 c7 07 08 00       	movw   $0x8,(%edi)
40e031:	e8 20 ee 05 00       	call   0x46ce56
40e036:	89 47 08             	mov    %eax,0x8(%edi)
40e039:	8d 4e f0             	lea    -0x10(%esi),%ecx
40e03c:	eb 3f                	jmp    0x40e07d
40e03e:	e8 b3 21 03 00       	call   0x4401f6
40e043:	8b 10                	mov    (%eax),%edx
40e045:	8b c8                	mov    %eax,%ecx
40e047:	ff 52 0c             	call   *0xc(%edx)
40e04a:	83 c0 10             	add    $0x10,%eax
40e04d:	89 45 0c             	mov    %eax,0xc(%ebp)
40e050:	68 c0 f1 00 00       	push   $0xf1c0
40e055:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40e058:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40e05f:	e8 9a 31 ff ff       	call   0x4011fe
40e064:	8b 75 10             	mov    0x10(%ebp),%esi
40e067:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40e06a:	66 c7 06 08 00       	movw   $0x8,(%esi)
40e06f:	e8 e2 ed 05 00       	call   0x46ce56
40e074:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e077:	89 46 08             	mov    %eax,0x8(%esi)
40e07a:	83 c1 f0             	add    $0xfffffff0,%ecx
40e07d:	e8 d0 32 ff ff       	call   0x401352
40e082:	33 c0                	xor    %eax,%eax
40e084:	40                   	inc    %eax
40e085:	eb 02                	jmp    0x40e089
40e087:	33 c0                	xor    %eax,%eax
40e089:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e08c:	5f                   	pop    %edi
40e08d:	5e                   	pop    %esi
40e08e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e095:	c9                   	leave
40e096:	c2 0c 00             	ret    $0xc
40e099:	2a df                	sub    %bh,%bl
40e09b:	40                   	inc    %eax
40e09c:	00 06                	add    %al,(%esi)
40e09e:	df 40 00             	filds  0x0(%eax)
40e0a1:	e0 df                	loopne 0x40e082
40e0a3:	40                   	inc    %eax
40e0a4:	00 18                	add    %bl,(%eax)
40e0a6:	df 40 00             	filds  0x0(%eax)
40e0a9:	3e e0 40             	loopne,pt 0x40e0ec
40e0ac:	00 fd                	add    %bh,%ch
40e0ae:	df 40 00             	filds  0x0(%eax)
40e0b1:	3d df 40 00 a4       	cmp    $0xa40040df,%eax
40e0b6:	df 40 00             	filds  0x0(%eax)
40e0b9:	10 e0                	adc    %ah,%al
40e0bb:	40                   	inc    %eax
40e0bc:	00 87 e0 40 00 00    	add    %al,0x40e0(%edi)
40e0c2:	01 01                	add    %eax,(%ecx)
40e0c4:	02 03                	add    (%ebx),%al
40e0c6:	03 03                	add    (%ebx),%eax
40e0c8:	01 09                	add    %ecx,(%ecx)
40e0ca:	04 01                	add    $0x1,%al
40e0cc:	05 06 07 08 06       	add    $0x6080706,%eax
40e0d1:	8b c1                	mov    %ecx,%eax
40e0d3:	33 c9                	xor    %ecx,%ecx
40e0d5:	89 08                	mov    %ecx,(%eax)
40e0d7:	89 48 04             	mov    %ecx,0x4(%eax)
40e0da:	89 48 08             	mov    %ecx,0x8(%eax)
40e0dd:	c3                   	ret
40e0de:	c3                   	ret
40e0df:	8b 41 04             	mov    0x4(%ecx),%eax
40e0e2:	c3                   	ret
40e0e3:	8b 01                	mov    (%ecx),%eax
40e0e5:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40e0e9:	8b 04 c8             	mov    (%eax,%ecx,8),%eax
40e0ec:	c2 04 00             	ret    $0x4
40e0ef:	8b 01                	mov    (%ecx),%eax
40e0f1:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40e0f5:	8a 44 c8 04          	mov    0x4(%eax,%ecx,8),%al
40e0f9:	c2 04 00             	ret    $0x4
40e0fc:	8b 41 08             	mov    0x8(%ecx),%eax
40e0ff:	c3                   	ret
40e100:	b8 fe 35 48 00       	mov    $0x4835fe,%eax
40e105:	e8 72 9b 00 00       	call   0x417c7c
40e10a:	51                   	push   %ecx
40e10b:	51                   	push   %ecx
40e10c:	8b 45 08             	mov    0x8(%ebp),%eax
40e10f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e113:	53                   	push   %ebx
40e114:	56                   	push   %esi
40e115:	8b f1                	mov    %ecx,%esi
40e117:	83 26 00             	andl   $0x0,(%esi)
40e11a:	57                   	push   %edi
40e11b:	89 46 04             	mov    %eax,0x4(%esi)
40e11e:	c1 e0 03             	shl    $0x3,%eax
40e121:	89 65 f0             	mov    %esp,-0x10(%ebp)
40e124:	50                   	push   %eax
40e125:	89 75 ec             	mov    %esi,-0x14(%ebp)
40e128:	e8 28 1f 03 00       	call   0x440055
40e12d:	59                   	pop    %ecx
40e12e:	89 06                	mov    %eax,(%esi)
40e130:	eb 11                	jmp    0x40e143
40e132:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e135:	e8 df 1d 03 00       	call   0x43ff19
40e13a:	b8 40 e1 40 00       	mov    $0x40e140,%eax
40e13f:	c3                   	ret
40e140:	8b 75 ec             	mov    -0x14(%ebp),%esi
40e143:	8b 06                	mov    (%esi),%eax
40e145:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e148:	f7 d8                	neg    %eax
40e14a:	1b c0                	sbb    %eax,%eax
40e14c:	5f                   	pop    %edi
40e14d:	25 f2 ff f8 7f       	and    $0x7ff8fff2,%eax
40e152:	5e                   	pop    %esi
40e153:	05 0e 00 07 80       	add    $0x8007000e,%eax
40e158:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e15f:	5b                   	pop    %ebx
40e160:	c9                   	leave
40e161:	c2 04 00             	ret    $0x4
40e164:	55                   	push   %ebp
40e165:	8b ec                	mov    %esp,%ebp
40e167:	8b 45 18             	mov    0x18(%ebp),%eax
40e16a:	8b 10                	mov    (%eax),%edx
40e16c:	53                   	push   %ebx
40e16d:	56                   	push   %esi
40e16e:	8b 75 08             	mov    0x8(%ebp),%esi
40e171:	57                   	push   %edi
40e172:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e175:	33 c9                	xor    %ecx,%ecx
40e177:	39 4e 24             	cmp    %ecx,0x24(%esi)
40e17a:	6a 00                	push   $0x0
40e17c:	ff 75 10             	push   0x10(%ebp)
40e17f:	0f 95 c1             	setne  %cl
40e182:	ff 75 14             	push   0x14(%ebp)
40e185:	56                   	push   %esi
40e186:	57                   	push   %edi
40e187:	8d 4c 09 02          	lea    0x2(%ecx,%ecx,1),%ecx
40e18b:	51                   	push   %ecx
40e18c:	50                   	push   %eax
40e18d:	ff 52 10             	call   *0x10(%edx)
40e190:	85 ff                	test   %edi,%edi
40e192:	8b d8                	mov    %eax,%ebx
40e194:	76 11                	jbe    0x40e1a7
40e196:	83 c6 14             	add    $0x14,%esi
40e199:	ff 36                	push   (%esi)
40e19b:	e8 e0 1e 03 00       	call   0x440080
40e1a0:	83 c6 34             	add    $0x34,%esi
40e1a3:	4f                   	dec    %edi
40e1a4:	59                   	pop    %ecx
40e1a5:	75 f2                	jne    0x40e199
40e1a7:	5f                   	pop    %edi
40e1a8:	5e                   	pop    %esi
40e1a9:	8b c3                	mov    %ebx,%eax
40e1ab:	5b                   	pop    %ebx
40e1ac:	5d                   	pop    %ebp
40e1ad:	c3                   	ret
40e1ae:	55                   	push   %ebp
40e1af:	8b ec                	mov    %esp,%ebp
40e1b1:	8b 45 08             	mov    0x8(%ebp),%eax
40e1b4:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e1b7:	56                   	push   %esi
40e1b8:	0f b7 f1             	movzwl %cx,%esi
40e1bb:	c1 ee 0e             	shr    $0xe,%esi
40e1be:	33 d2                	xor    %edx,%edx
40e1c0:	42                   	inc    %edx
40e1c1:	23 f2                	and    %edx,%esi
40e1c3:	89 70 20             	mov    %esi,0x20(%eax)
40e1c6:	8b 75 30             	mov    0x30(%ebp),%esi
40e1c9:	89 70 14             	mov    %esi,0x14(%eax)
40e1cc:	8b 75 20             	mov    0x20(%ebp),%esi
40e1cf:	89 70 24             	mov    %esi,0x24(%eax)
40e1d2:	8b 75 0c             	mov    0xc(%ebp),%esi
40e1d5:	66 89 48 30          	mov    %cx,0x30(%eax)
40e1d9:	8a 4d 18             	mov    0x18(%ebp),%cl
40e1dc:	89 30                	mov    %esi,(%eax)
40e1de:	8b 75 24             	mov    0x24(%ebp),%esi
40e1e1:	88 48 32             	mov    %cl,0x32(%eax)
40e1e4:	8a 4d 1c             	mov    0x1c(%ebp),%cl
40e1e7:	89 70 04             	mov    %esi,0x4(%eax)
40e1ea:	8b 75 14             	mov    0x14(%ebp),%esi
40e1ed:	88 48 33             	mov    %cl,0x33(%eax)
40e1f0:	33 c9                	xor    %ecx,%ecx
40e1f2:	89 50 1c             	mov    %edx,0x1c(%eax)
40e1f5:	8b 55 28             	mov    0x28(%ebp),%edx
40e1f8:	3b d1                	cmp    %ecx,%edx
40e1fa:	89 70 28             	mov    %esi,0x28(%eax)
40e1fd:	89 48 2c             	mov    %ecx,0x2c(%eax)
40e200:	89 48 08             	mov    %ecx,0x8(%eax)
40e203:	89 48 0c             	mov    %ecx,0xc(%eax)
40e206:	89 48 10             	mov    %ecx,0x10(%eax)
40e209:	89 48 18             	mov    %ecx,0x18(%eax)
40e20c:	5e                   	pop    %esi
40e20d:	74 0a                	je     0x40e219
40e20f:	c7 40 1c 03 00 00 00 	movl   $0x3,0x1c(%eax)
40e216:	89 50 08             	mov    %edx,0x8(%eax)
40e219:	8b 55 2c             	mov    0x2c(%ebp),%edx
40e21c:	3b d1                	cmp    %ecx,%edx
40e21e:	74 07                	je     0x40e227
40e220:	83 48 1c 04          	orl    $0x4,0x1c(%eax)
40e224:	89 50 0c             	mov    %edx,0xc(%eax)
40e227:	5d                   	pop    %ebp
40e228:	c3                   	ret
40e229:	c2 04 00             	ret    $0x4
40e22c:	8b 54 24 04          	mov    0x4(%esp),%edx
40e230:	8b c1                	mov    %ecx,%eax
40e232:	33 c9                	xor    %ecx,%ecx
40e234:	89 50 20             	mov    %edx,0x20(%eax)
40e237:	8b 54 24 08          	mov    0x8(%esp),%edx
40e23b:	89 08                	mov    %ecx,(%eax)
40e23d:	89 48 04             	mov    %ecx,0x4(%eax)
40e240:	89 48 08             	mov    %ecx,0x8(%eax)
40e243:	89 48 0c             	mov    %ecx,0xc(%eax)
40e246:	89 48 14             	mov    %ecx,0x14(%eax)
40e249:	89 48 18             	mov    %ecx,0x18(%eax)
40e24c:	89 50 24             	mov    %edx,0x24(%eax)
40e24f:	89 48 10             	mov    %ecx,0x10(%eax)
40e252:	c2 08 00             	ret    $0x8
40e255:	53                   	push   %ebx
40e256:	56                   	push   %esi
40e257:	57                   	push   %edi
40e258:	8b 3d f0 0a 4b 00    	mov    0x4b0af0,%edi
40e25e:	8b f1                	mov    %ecx,%esi
40e260:	ff 76 14             	push   0x14(%esi)
40e263:	ff d7                	call   *%edi
40e265:	ff 76 18             	push   0x18(%esi)
40e268:	33 db                	xor    %ebx,%ebx
40e26a:	89 5e 14             	mov    %ebx,0x14(%esi)
40e26d:	ff d7                	call   *%edi
40e26f:	ff 76 08             	push   0x8(%esi)
40e272:	89 5e 18             	mov    %ebx,0x18(%esi)
40e275:	e8 06 1e 03 00       	call   0x440080
40e27a:	ff 76 10             	push   0x10(%esi)
40e27d:	89 5e 08             	mov    %ebx,0x8(%esi)
40e280:	e8 fb 1d 03 00       	call   0x440080
40e285:	59                   	pop    %ecx
40e286:	59                   	pop    %ecx
40e287:	5f                   	pop    %edi
40e288:	89 5e 10             	mov    %ebx,0x10(%esi)
40e28b:	89 5e 0c             	mov    %ebx,0xc(%esi)
40e28e:	5e                   	pop    %esi
40e28f:	5b                   	pop    %ebx
40e290:	c3                   	ret
40e291:	8b 41 0c             	mov    0xc(%ecx),%eax
40e294:	c3                   	ret
40e295:	8b 44 24 04          	mov    0x4(%esp),%eax
40e299:	8b 51 14             	mov    0x14(%ecx),%edx
40e29c:	8d 04 40             	lea    (%eax,%eax,2),%eax
40e29f:	c1 e0 04             	shl    $0x4,%eax
40e2a2:	8b 44 10 04          	mov    0x4(%eax,%edx,1),%eax
40e2a6:	03 41 08             	add    0x8(%ecx),%eax