40dcd3:	57                   	push   %edi
40dcd4:	8b f9                	mov    %ecx,%edi
40dcd6:	74 33                	je     0x40dd0b
40dcd8:	8b ce                	mov    %esi,%ecx
40dcda:	e8 5a f6 ff ff       	call   0x40d339
40dcdf:	85 c0                	test   %eax,%eax
40dce1:	74 28                	je     0x40dd0b
40dce3:	6a 00                	push   $0x0
40dce5:	ff 75 2c             	push   0x2c(%ebp)
40dce8:	8b 4e 48             	mov    0x48(%esi),%ecx
40dceb:	ff 75 28             	push   0x28(%ebp)
40dcee:	ff 75 24             	push   0x24(%ebp)
40dcf1:	ff 75 20             	push   0x20(%ebp)
40dcf4:	ff 75 18             	push   0x18(%ebp)
40dcf7:	ff 75 14             	push   0x14(%ebp)
40dcfa:	ff 75 10             	push   0x10(%ebp)
40dcfd:	ff 75 0c             	push   0xc(%ebp)
40dd00:	ff 75 08             	push   0x8(%ebp)
40dd03:	57                   	push   %edi
40dd04:	e8 38 f8 ff ff       	call   0x40d541
40dd09:	eb 02                	jmp    0x40dd0d
40dd0b:	33 c0                	xor    %eax,%eax
40dd0d:	5f                   	pop    %edi
40dd0e:	5e                   	pop    %esi
40dd0f:	5d                   	pop    %ebp
40dd10:	c2 28 00             	ret    $0x28
40dd13:	56                   	push   %esi
40dd14:	8b f1                	mov    %ecx,%esi
40dd16:	e8 e1 f6 ff ff       	call   0x40d3fc
40dd1b:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40dd20:	74 07                	je     0x40dd29
40dd22:	56                   	push   %esi
40dd23:	e8 58 23 03 00       	call   0x440080
40dd28:	59                   	pop    %ecx
40dd29:	8b c6                	mov    %esi,%eax
40dd2b:	5e                   	pop    %esi
40dd2c:	c2 04 00             	ret    $0x4
40dd2f:	8b c1                	mov    %ecx,%eax
40dd31:	c3                   	ret
40dd32:	8b c1                	mov    %ecx,%eax
40dd34:	c3                   	ret
40dd35:	55                   	push   %ebp
40dd36:	8b ec                	mov    %esp,%ebp
40dd38:	83 ec 20             	sub    $0x20,%esp
40dd3b:	56                   	push   %esi
40dd3c:	ff 75 18             	push   0x18(%ebp)
40dd3f:	8d 45 e0             	lea    -0x20(%ebp),%eax
40dd42:	50                   	push   %eax
40dd43:	8b f1                	mov    %ecx,%esi
40dd45:	ff 15 44 07 4b 00    	call   *0x4b0744
40dd4b:	ff 75 2c             	push   0x2c(%ebp)
40dd4e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40dd51:	ff 75 28             	push   0x28(%ebp)
40dd54:	8b 45 e8             	mov    -0x18(%ebp),%eax
40dd57:	ff 75 24             	push   0x24(%ebp)
40dd5a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40dd5d:	ff 75 20             	push   0x20(%ebp)
40dd60:	2b c1                	sub    %ecx,%eax
40dd62:	ff 75 1c             	push   0x1c(%ebp)
40dd65:	89 45 f8             	mov    %eax,-0x8(%ebp)
40dd68:	8d 45 f8             	lea    -0x8(%ebp),%eax
40dd6b:	50                   	push   %eax
40dd6c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40dd6f:	50                   	push   %eax
40dd70:	ff 75 14             	push   0x14(%ebp)
40dd73:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40dd76:	ff 75 10             	push   0x10(%ebp)
40dd79:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40dd7c:	ff 75 0c             	push   0xc(%ebp)
40dd7f:	2b ca                	sub    %edx,%ecx
40dd81:	ff 75 08             	push   0x8(%ebp)
40dd84:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40dd87:	8b ce                	mov    %esi,%ecx
40dd89:	89 55 f4             	mov    %edx,-0xc(%ebp)
40dd8c:	e8 b0 f7 ff ff       	call   0x40d541
40dd91:	5e                   	pop    %esi
40dd92:	c9                   	leave
40dd93:	c2 28 00             	ret    $0x28
40dd96:	55                   	push   %ebp
40dd97:	8b ec                	mov    %esp,%ebp
40dd99:	83 ec 20             	sub    $0x20,%esp
40dd9c:	56                   	push   %esi
40dd9d:	ff 75 14             	push   0x14(%ebp)
40dda0:	8d 45 e0             	lea    -0x20(%ebp),%eax
40dda3:	50                   	push   %eax
40dda4:	8b f1                	mov    %ecx,%esi
40dda6:	ff 15 44 07 4b 00    	call   *0x4b0744
40ddac:	ff 75 28             	push   0x28(%ebp)
40ddaf:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40ddb2:	ff 75 24             	push   0x24(%ebp)
40ddb5:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ddb8:	ff 75 20             	push   0x20(%ebp)
40ddbb:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40ddbe:	ff 75 1c             	push   0x1c(%ebp)
40ddc1:	2b c1                	sub    %ecx,%eax
40ddc3:	ff 75 18             	push   0x18(%ebp)
40ddc6:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ddc9:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ddcc:	50                   	push   %eax
40ddcd:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ddd0:	50                   	push   %eax
40ddd1:	ff 75 10             	push   0x10(%ebp)
40ddd4:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ddd7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40ddda:	ff 75 0c             	push   0xc(%ebp)
40dddd:	2b ca                	sub    %edx,%ecx
40dddf:	ff 75 08             	push   0x8(%ebp)
40dde2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40dde5:	8b ce                	mov    %esi,%ecx
40dde7:	89 55 f4             	mov    %edx,-0xc(%ebp)
40ddea:	e8 db fe ff ff       	call   0x40dcca
40ddef:	5e                   	pop    %esi
40ddf0:	c9                   	leave
40ddf1:	c2 24 00             	ret    $0x24
40ddf4:	8b c1                	mov    %ecx,%eax
40ddf6:	c7 00 58 c4 48 00    	movl   $0x48c458,(%eax)
40ddfc:	c3                   	ret
40ddfd:	8b c1                	mov    %ecx,%eax
40ddff:	c3                   	ret
40de00:	55                   	push   %ebp
40de01:	8b ec                	mov    %esp,%ebp
40de03:	83 ec 14             	sub    $0x14,%esp
40de06:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
40de0b:	56                   	push   %esi
40de0c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40de0f:	8d 45 ec             	lea    -0x14(%ebp),%eax
40de12:	50                   	push   %eax
40de13:	ff 75 08             	push   0x8(%ebp)
40de16:	8b f1                	mov    %ecx,%esi
40de18:	e8 c2 ee 06 00       	call   0x47ccdf
40de1d:	85 c0                	test   %eax,%eax
40de1f:	7d 04                	jge    0x40de25
40de21:	33 c0                	xor    %eax,%eax
40de23:	eb 23                	jmp    0x40de48
40de25:	ff 75 28             	push   0x28(%ebp)
40de28:	8d 45 ec             	lea    -0x14(%ebp),%eax
40de2b:	ff 75 24             	push   0x24(%ebp)
40de2e:	8b ce                	mov    %esi,%ecx
40de30:	ff 75 20             	push   0x20(%ebp)
40de33:	ff 75 1c             	push   0x1c(%ebp)
40de36:	ff 75 18             	push   0x18(%ebp)
40de39:	ff 75 14             	push   0x14(%ebp)
40de3c:	ff 75 10             	push   0x10(%ebp)
40de3f:	ff 75 0c             	push   0xc(%ebp)
40de42:	50                   	push   %eax
40de43:	e8 4e ff ff ff       	call   0x40dd96
40de48:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40de4b:	5e                   	pop    %esi
40de4c:	e8 8d 9d 00 00       	call   0x417bde
40de51:	c9                   	leave
40de52:	c2 24 00             	ret    $0x24
40de55:	8b c1                	mov    %ecx,%eax
40de57:	c7 00 74 c4 48 00    	movl   $0x48c474,(%eax)
40de5d:	c3                   	ret
40de5e:	b8 da 35 48 00       	mov    $0x4835da,%eax
40de63:	e8 14 9e 00 00       	call   0x417c7c
40de68:	51                   	push   %ecx
40de69:	56                   	push   %esi
40de6a:	8b f1                	mov    %ecx,%esi
40de6c:	57                   	push   %edi
40de6d:	89 75 f0             	mov    %esi,-0x10(%ebp)
40de70:	e8 8f 42 03 00       	call   0x442104
40de75:	8b 45 08             	mov    0x8(%ebp),%eax
40de78:	33 ff                	xor    %edi,%edi
40de7a:	6a 0a                	push   $0xa
40de7c:	8d 4e 20             	lea    0x20(%esi),%ecx
40de7f:	89 7d fc             	mov    %edi,-0x4(%ebp)
40de82:	c7 06 a4 c3 48 00    	movl   $0x48c3a4,(%esi)
40de88:	89 46 1c             	mov    %eax,0x1c(%esi)
40de8b:	e8 51 0a 03 00       	call   0x43e8e1
40de90:	6a 0a                	push   $0xa
40de92:	8d 4e 3c             	lea    0x3c(%esi),%ecx
40de95:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40de99:	e8 f8 fd ff ff       	call   0x40dc96
40de9e:	83 4e 58 ff          	orl    $0xffffffff,0x58(%esi)
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