40df31:	c3                   	ret
40df32:	8b c0                	mov    %eax,%eax
40df34:	8b 50 18             	mov    0x18(%eax),%edx
40df37:	52                   	push   %edx
40df38:	8b 40 10             	mov    0x10(%eax),%eax
40df3b:	50                   	push   %eax
40df3c:	e8 0f 8c ff ff       	call   0x406b50
40df41:	c3                   	ret
40df42:	8b c0                	mov    %eax,%eax
40df44:	8b 50 18             	mov    0x18(%eax),%edx
40df47:	52                   	push   %edx
40df48:	8b 40 14             	mov    0x14(%eax),%eax
40df4b:	50                   	push   %eax
40df4c:	e8 ff 8b ff ff       	call   0x406b50
40df51:	c3                   	ret
40df52:	8b c0                	mov    %eax,%eax
40df54:	53                   	push   %ebx
40df55:	56                   	push   %esi
40df56:	57                   	push   %edi
40df57:	55                   	push   %ebp
40df58:	83 c4 f8             	add    $0xfffffff8,%esp
40df5b:	8b e8                	mov    %eax,%ebp
40df5d:	b3 01                	mov    $0x1,%bl
40df5f:	e8 9c 8a ff ff       	call   0x406a00
40df64:	8b f8                	mov    %eax,%edi
40df66:	3b 7d 24             	cmp    0x24(%ebp),%edi
40df69:	0f 84 84 00 00 00    	je     0x40dff3
40df6f:	8b c5                	mov    %ebp,%eax
40df71:	e8 9a ff ff ff       	call   0x40df10
40df76:	8b 45 28             	mov    0x28(%ebp),%eax
40df79:	89 44 24 04          	mov    %eax,0x4(%esp)
40df7d:	8b d4                	mov    %esp,%edx
40df7f:	8b 45 20             	mov    0x20(%ebp),%eax
40df82:	e8 01 fe ff ff       	call   0x40dd88
40df87:	8b 04 24             	mov    (%esp),%eax
40df8a:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40df8e:	0f 97 c3             	seta   %bl
40df91:	84 db                	test   %bl,%bl
40df93:	74 24                	je     0x40dfb9
40df95:	8d 45 0c             	lea    0xc(%ebp),%eax
40df98:	e8 4f fd ff ff       	call   0x40dcec
40df9d:	eb 1a                	jmp    0x40dfb9
40df9f:	8d 45 0c             	lea    0xc(%ebp),%eax
40dfa2:	ba ff ff 00 00       	mov    $0xffff,%edx
40dfa7:	e8 60 fd ff ff       	call   0x40dd0c
40dfac:	8b f0                	mov    %eax,%esi
40dfae:	85 f6                	test   %esi,%esi
40dfb0:	74 07                	je     0x40dfb9
40dfb2:	8b c5                	mov    %ebp,%eax
40dfb4:	e8 8b ff ff ff       	call   0x40df44
40dfb9:	8d 45 0c             	lea    0xc(%ebp),%eax
40dfbc:	ba 01 00 ff ff       	mov    $0xffff0001,%edx
40dfc1:	e8 46 fd ff ff       	call   0x40dd0c
40dfc6:	3d ff ff 00 00       	cmp    $0xffff,%eax
40dfcb:	75 d2                	jne    0x40df9f
40dfcd:	8b c5                	mov    %ebp,%eax
40dfcf:	e8 3c ff ff ff       	call   0x40df10
40dfd4:	84 db                	test   %bl,%bl
40dfd6:	74 08                	je     0x40dfe0
40dfd8:	8d 45 0c             	lea    0xc(%ebp),%eax
40dfdb:	e8 18 fd ff ff       	call   0x40dcf8
40dfe0:	89 7d 24             	mov    %edi,0x24(%ebp)
40dfe3:	8d 45 28             	lea    0x28(%ebp),%eax
40dfe6:	e8 01 fd ff ff       	call   0x40dcec
40dfeb:	48                   	dec    %eax
40dfec:	3b 44 24 04          	cmp    0x4(%esp),%eax
40dff0:	0f 94 c3             	sete   %bl
40dff3:	ff 45 1c             	incl   0x1c(%ebp)
40dff6:	8b c3                	mov    %ebx,%eax
40dff8:	59                   	pop    %ecx
40dff9:	5a                   	pop    %edx
40dffa:	5d                   	pop    %ebp
40dffb:	5f                   	pop    %edi
40dffc:	5e                   	pop    %esi
40dffd:	5b                   	pop    %ebx
40dffe:	c3                   	ret
40dfff:	90                   	nop
40e000:	53                   	push   %ebx
40e001:	51                   	push   %ecx
40e002:	8b d8                	mov    %eax,%ebx
40e004:	8b d4                	mov    %esp,%edx
40e006:	8b 43 20             	mov    0x20(%ebx),%eax
40e009:	e8 7a fd ff ff       	call   0x40dd88
40e00e:	ff 4b 1c             	decl   0x1c(%ebx)
40e011:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
40e015:	75 20                	jne    0x40e037
40e017:	33 c0                	xor    %eax,%eax
40e019:	89 43 24             	mov    %eax,0x24(%ebx)
40e01c:	8d 43 0c             	lea    0xc(%ebx),%eax
40e01f:	ba ff ff 00 00       	mov    $0xffff,%edx
40e024:	e8 e3 fc ff ff       	call   0x40dd0c
40e029:	8b c3                	mov    %ebx,%eax
40e02b:	e8 f8 fe ff ff       	call   0x40df28
40e030:	8b c3                	mov    %ebx,%eax
40e032:	e8 e5 fe ff ff       	call   0x40df1c
40e037:	8b 04 24             	mov    (%esp),%eax
40e03a:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40e03e:	75 0a                	jne    0x40e04a
40e040:	8b d4                	mov    %esp,%edx
40e042:	8b 43 20             	mov    0x20(%ebx),%eax
40e045:	e8 b6 fd ff ff       	call   0x40de00
40e04a:	5a                   	pop    %edx
40e04b:	5b                   	pop    %ebx
40e04c:	c3                   	ret
40e04d:	8d 40 00             	lea    0x0(%eax),%eax
40e050:	53                   	push   %ebx
40e051:	56                   	push   %esi
40e052:	57                   	push   %edi
40e053:	51                   	push   %ecx
40e054:	8b f8                	mov    %eax,%edi
40e056:	8b d4                	mov    %esp,%edx
40e058:	8b 47 20             	mov    0x20(%edi),%eax
40e05b:	e8 28 fd ff ff       	call   0x40dd88
40e060:	8b 04 24             	mov    (%esp),%eax
40e063:	ff 40 0c             	incl   0xc(%eax)
40e066:	8b 04 24             	mov    (%esp),%eax
40e069:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
40e06d:	0f 97 c3             	seta   %bl
40e070:	e8 8b 89 ff ff       	call   0x406a00
40e075:	3b 47 24             	cmp    0x24(%edi),%eax
40e078:	74 40                	je     0x40e0ba
40e07a:	84 db                	test   %bl,%bl
40e07c:	75 3c                	jne    0x40e0ba
40e07e:	8b c7                	mov    %edi,%eax
40e080:	e8 af fe ff ff       	call   0x40df34
40e085:	eb 27                	jmp    0x40e0ae
40e087:	8d 47 0c             	lea    0xc(%edi),%eax
40e08a:	e8 5d fc ff ff       	call   0x40dcec
40e08f:	8b f0                	mov    %eax,%esi
40e091:	81 fe ff ff 00 00    	cmp    $0xffff,%esi
40e097:	75 07                	jne    0x40e0a0
40e099:	8b c7                	mov    %edi,%eax
40e09b:	e8 88 fe ff ff       	call   0x40df28
40e0a0:	6a 00                	push   $0x0
40e0a2:	e8 e9 fa ff ff       	call   0x40db90
40e0a7:	8b c7                	mov    %edi,%eax
40e0a9:	e8 86 fe ff ff       	call   0x40df34
40e0ae:	8d 47 0c             	lea    0xc(%edi),%eax
40e0b1:	e8 42 fc ff ff       	call   0x40dcf8
40e0b6:	85 c0                	test   %eax,%eax
40e0b8:	7e cd                	jle    0x40e087
40e0ba:	5a                   	pop    %edx
40e0bb:	5f                   	pop    %edi
40e0bc:	5e                   	pop    %esi
40e0bd:	5b                   	pop    %ebx
40e0be:	c3                   	ret
40e0bf:	90                   	nop
40e0c0:	53                   	push   %ebx
40e0c1:	51                   	push   %ecx
40e0c2:	8b d8                	mov    %eax,%ebx
40e0c4:	8b d4                	mov    %esp,%edx
40e0c6:	8b 43 20             	mov    0x20(%ebx),%eax
40e0c9:	e8 ba fc ff ff       	call   0x40dd88
40e0ce:	8b 04 24             	mov    (%esp),%eax
40e0d1:	ff 48 0c             	decl   0xc(%eax)
40e0d4:	8b 04 24             	mov    (%esp),%eax
40e0d7:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40e0db:	75 48                	jne    0x40e125
40e0dd:	8b d4                	mov    %esp,%edx
40e0df:	8b 43 20             	mov    0x20(%ebx),%eax
40e0e2:	e8 19 fd ff ff       	call   0x40de00
40e0e7:	e8 14 89 ff ff       	call   0x406a00
40e0ec:	3b 43 24             	cmp    0x24(%ebx),%eax
40e0ef:	74 34                	je     0x40e125
40e0f1:	8d 43 0c             	lea    0xc(%ebx),%eax
40e0f4:	e8 f3 fb ff ff       	call   0x40dcec
40e0f9:	8b c8                	mov    %eax,%ecx
40e0fb:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
40e101:	75 09                	jne    0x40e10c
40e103:	8b c3                	mov    %ebx,%eax
40e105:	e8 1e fe ff ff       	call   0x40df28
40e10a:	eb 19                	jmp    0x40e125
40e10c:	85 c9                	test   %ecx,%ecx
40e10e:	7f 15                	jg     0x40e125
40e110:	8b c1                	mov    %ecx,%eax
40e112:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40e117:	99                   	cltd
40e118:	f7 f9                	idiv   %ecx
40e11a:	85 d2                	test   %edx,%edx
40e11c:	75 07                	jne    0x40e125
40e11e:	8b c3                	mov    %ebx,%eax
40e120:	e8 03 fe ff ff       	call   0x40df28
40e125:	5a                   	pop    %edx
40e126:	5b                   	pop    %ebx
40e127:	c3                   	ret
40e128:	8b 10                	mov    (%eax),%edx
40e12a:	33 c9                	xor    %ecx,%ecx
40e12c:	89 08                	mov    %ecx,(%eax)
40e12e:	8b c2                	mov    %edx,%eax
40e130:	e8 e7 57 ff ff       	call   0x40391c
40e135:	c3                   	ret
40e136:	8b c0                	mov    %eax,%eax
40e138:	53                   	push   %ebx
40e139:	56                   	push   %esi
40e13a:	57                   	push   %edi
40e13b:	8b f9                	mov    %ecx,%edi
40e13d:	8b f2                	mov    %edx,%esi
40e13f:	8b d8                	mov    %eax,%ebx
40e141:	85 db                	test   %ebx,%ebx
40e143:	74 0b                	je     0x40e150
40e145:	57                   	push   %edi
40e146:	56                   	push   %esi
40e147:	53                   	push   %ebx
40e148:	8b 03                	mov    (%ebx),%eax
40e14a:	ff 10                	call   *(%eax)
40e14c:	85 c0                	test   %eax,%eax
40e14e:	74 04                	je     0x40e154
40e150:	33 c0                	xor    %eax,%eax
40e152:	eb 02                	jmp    0x40e156
40e154:	b0 01                	mov    $0x1,%al
40e156:	5f                   	pop    %edi
40e157:	5e                   	pop    %esi
40e158:	5b                   	pop    %ebx
40e159:	c3                   	ret
40e15a:	8b c0                	mov    %eax,%eax
40e15c:	55                   	push   %ebp
40e15d:	8b ec                	mov    %esp,%ebp
40e15f:	6a 00                	push   $0x0
40e161:	53                   	push   %ebx
40e162:	56                   	push   %esi
40e163:	57                   	push   %edi
40e164:	8b f9                	mov    %ecx,%edi
40e166:	8b f2                	mov    %edx,%esi
40e168:	8b d8                	mov    %eax,%ebx
40e16a:	33 c0                	xor    %eax,%eax
40e16c:	55                   	push   %ebp
40e16d:	68 d3 e1 40 00       	push   $0x40e1d3
40e172:	64 ff 30             	push   %fs:(%eax)
40e175:	64 89 20             	mov    %esp,%fs:(%eax)
40e178:	85 db                	test   %ebx,%ebx
40e17a:	74 39                	je     0x40e1b5
40e17c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e17f:	e8 f4 7f ff ff       	call   0x406178
40e184:	8b c8                	mov    %eax,%ecx
40e186:	ba e4 e1 40 00       	mov    $0x40e1e4,%edx
40e18b:	8b c3                	mov    %ebx,%eax
40e18d:	e8 3e 58 ff ff       	call   0x4039d0
40e192:	84 c0                	test   %al,%al
40e194:	74 10                	je     0x40e1a6
40e196:	8b cf                	mov    %edi,%ecx
40e198:	8b d6                	mov    %esi,%edx
40e19a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e19d:	e8 96 ff ff ff       	call   0x40e138
40e1a2:	84 c0                	test   %al,%al
40e1a4:	75 13                	jne    0x40e1b9
40e1a6:	8b cf                	mov    %edi,%ecx
40e1a8:	8b d6                	mov    %esi,%edx
40e1aa:	8b c3                	mov    %ebx,%eax
40e1ac:	e8 1f 58 ff ff       	call   0x4039d0
40e1b1:	84 c0                	test   %al,%al
40e1b3:	75 04                	jne    0x40e1b9
40e1b5:	33 c0                	xor    %eax,%eax
40e1b7:	eb 02                	jmp    0x40e1bb
40e1b9:	b0 01                	mov    $0x1,%al
40e1bb:	8b d8                	mov    %eax,%ebx
40e1bd:	33 c0                	xor    %eax,%eax
40e1bf:	5a                   	pop    %edx
40e1c0:	59                   	pop    %ecx
40e1c1:	59                   	pop    %ecx
40e1c2:	64 89 10             	mov    %edx,%fs:(%eax)
40e1c5:	68 da e1 40 00       	push   $0x40e1da
40e1ca:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e1cd:	e8 a6 7f ff ff       	call   0x406178
40e1d2:	c3                   	ret
40e1d3:	e9 d8 5e ff ff       	jmp    0x4040b0
40e1d8:	eb f0                	jmp    0x40e1ca
40e1da:	8b c3                	mov    %ebx,%eax
40e1dc:	5f                   	pop    %edi
40e1dd:	5e                   	pop    %esi
40e1de:	5b                   	pop    %ebx
40e1df:	59                   	pop    %ecx
40e1e0:	5d                   	pop    %ebp
40e1e1:	c3                   	ret
40e1ea:	00 00                	add    %al,(%eax)
40e1ec:	c0 00 00             	rolb   $0x0,(%eax)
40e1ef:	00 00                	add    %al,(%eax)
40e1f1:	00 00                	add    %al,(%eax)
40e1f3:	46                   	inc    %esi
40e1f4:	55                   	push   %ebp
40e1f5:	8b ec                	mov    %esp,%ebp
40e1f7:	83 c4 f4             	add    $0xfffffff4,%esp
40e1fa:	53                   	push   %ebx
40e1fb:	8b d8                	mov    %eax,%ebx
40e1fd:	52                   	push   %edx
40e1fe:	e8 0d 89 ff ff       	call   0x406b10
40e203:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e206:	33 c0                	xor    %eax,%eax
40e208:	55                   	push   %ebp
40e209:	68 66 e2 40 00       	push   $0x40e266
40e20e:	64 ff 30             	push   %fs:(%eax)
40e211:	64 89 20             	mov    %esp,%fs:(%eax)
40e214:	d9 7d fe             	fnstcw -0x2(%ebp)
40e217:	33 c0                	xor    %eax,%eax
40e219:	55                   	push   %ebp
40e21a:	68 48 e2 40 00       	push   $0x40e248
40e21f:	64 ff 30             	push   %fs:(%eax)
40e222:	64 89 20             	mov    %esp,%fs:(%eax)
40e225:	8b c3                	mov    %ebx,%eax
40e227:	e8 e0 69 ff ff       	call   0x404c0c
40e22c:	50                   	push   %eax
40e22d:	e8 9e 88 ff ff       	call   0x406ad0
40e232:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e235:	33 c0                	xor    %eax,%eax
40e237:	5a                   	pop    %edx
40e238:	59                   	pop    %ecx
40e239:	59                   	pop    %ecx
40e23a:	64 89 10             	mov    %edx,%fs:(%eax)
40e23d:	68 4f e2 40 00       	push   $0x40e24f
40e242:	db e2                	fnclex
40e244:	d9 6d fe             	fldcw  -0x2(%ebp)
40e247:	c3                   	ret
40e248:	e9 63 5e ff ff       	jmp    0x4040b0
40e24d:	eb f3                	jmp    0x40e242
40e24f:	33 c0                	xor    %eax,%eax
40e251:	5a                   	pop    %edx
40e252:	59                   	pop    %ecx
40e253:	59                   	pop    %ecx
40e254:	64 89 10             	mov    %edx,%fs:(%eax)
40e257:	68 6d e2 40 00       	push   $0x40e26d
40e25c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e25f:	50                   	push   %eax
40e260:	e8 ab 88 ff ff       	call   0x406b10
40e265:	c3                   	ret
40e266:	e9 45 5e ff ff       	jmp    0x4040b0
40e26b:	eb ef                	jmp    0x40e25c
40e26d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e270:	5b                   	pop    %ebx
40e271:	8b e5                	mov    %ebp,%esp
40e273:	5d                   	pop    %ebp
40e274:	c3                   	ret
40e275:	8d 40 00             	lea    0x0(%eax),%eax
40e278:	1d 00 00 00 00       	sbb    $0x0,%eax
40e27d:	ba 49 00 a0 76       	mov    $0x76a00049,%edx
40e282:	4a                   	dec    %edx
40e283:	00 f8                	add    %bh,%al
40e285:	b9 49 00 98 75       	mov    $0x75980049,%ecx
40e28a:	4a                   	dec    %edx
40e28b:	00 f0                	add    %dh,%al
40e28d:	b9 49 00 d0 73       	mov    $0x73d00049,%ecx
40e292:	4a                   	dec    %edx
40e293:	00 e8                	add    %ch,%al
40e295:	b9 49 00 f0 76       	mov    $0x76f00049,%ecx
40e29a:	4a                   	dec    %edx
40e29b:	00 e0                	add    %ah,%al
40e29d:	b9 49 00 28 77       	mov    $0x77280049,%ecx
40e2a2:	4a                   	dec    %edx
40e2a3:	00 d8                	add    %bl,%al
40e2a5:	b9 49 00 b4 74       	mov    $0x74b40049,%ecx
40e2aa:	4a                   	dec    %edx
40e2ab:	00 d0                	add    %dl,%al