40cf72:	8b c0                	mov    %eax,%eax
40cf74:	8b 50 18             	mov    0x18(%eax),%edx
40cf77:	52                   	push   %edx
40cf78:	8b 40 14             	mov    0x14(%eax),%eax
40cf7b:	50                   	push   %eax
40cf7c:	e8 47 92 ff ff       	call   0x4061c8
40cf81:	c3                   	ret
40cf82:	8b c0                	mov    %eax,%eax
40cf84:	53                   	push   %ebx
40cf85:	56                   	push   %esi
40cf86:	57                   	push   %edi
40cf87:	55                   	push   %ebp
40cf88:	51                   	push   %ecx
40cf89:	8b f8                	mov    %eax,%edi
40cf8b:	b3 01                	mov    $0x1,%bl
40cf8d:	e8 c6 90 ff ff       	call   0x406058
40cf92:	8b f0                	mov    %eax,%esi
40cf94:	3b 77 24             	cmp    0x24(%edi),%esi
40cf97:	74 7c                	je     0x40d015
40cf99:	8b c7                	mov    %edi,%eax
40cf9b:	e8 a0 ff ff ff       	call   0x40cf40
40cfa0:	8b 6f 28             	mov    0x28(%edi),%ebp
40cfa3:	8b d4                	mov    %esp,%edx
40cfa5:	8b 47 20             	mov    0x20(%edi),%eax
40cfa8:	e8 0f fe ff ff       	call   0x40cdbc
40cfad:	8b 04 24             	mov    (%esp),%eax
40cfb0:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40cfb4:	0f 97 c3             	seta   %bl
40cfb7:	84 db                	test   %bl,%bl
40cfb9:	74 22                	je     0x40cfdd
40cfbb:	8d 47 0c             	lea    0xc(%edi),%eax
40cfbe:	e8 69 fd ff ff       	call   0x40cd2c
40cfc3:	eb 18                	jmp    0x40cfdd
40cfc5:	8d 47 0c             	lea    0xc(%edi),%eax
40cfc8:	ba ff ff 00 00       	mov    $0xffff,%edx
40cfcd:	e8 7a fd ff ff       	call   0x40cd4c
40cfd2:	85 c0                	test   %eax,%eax
40cfd4:	74 07                	je     0x40cfdd
40cfd6:	8b c7                	mov    %edi,%eax
40cfd8:	e8 97 ff ff ff       	call   0x40cf74
40cfdd:	8d 47 0c             	lea    0xc(%edi),%eax
40cfe0:	ba 01 00 ff ff       	mov    $0xffff0001,%edx
40cfe5:	e8 62 fd ff ff       	call   0x40cd4c
40cfea:	3d ff ff 00 00       	cmp    $0xffff,%eax
40cfef:	75 d4                	jne    0x40cfc5
40cff1:	8b c7                	mov    %edi,%eax
40cff3:	e8 48 ff ff ff       	call   0x40cf40
40cff8:	84 db                	test   %bl,%bl
40cffa:	74 08                	je     0x40d004
40cffc:	8d 47 0c             	lea    0xc(%edi),%eax
40cfff:	e8 34 fd ff ff       	call   0x40cd38
40d004:	89 77 24             	mov    %esi,0x24(%edi)
40d007:	8d 47 28             	lea    0x28(%edi),%eax
40d00a:	e8 1d fd ff ff       	call   0x40cd2c
40d00f:	48                   	dec    %eax
40d010:	3b c5                	cmp    %ebp,%eax
40d012:	0f 94 c3             	sete   %bl
40d015:	ff 47 1c             	incl   0x1c(%edi)
40d018:	8b c3                	mov    %ebx,%eax
40d01a:	5a                   	pop    %edx
40d01b:	5d                   	pop    %ebp
40d01c:	5f                   	pop    %edi
40d01d:	5e                   	pop    %esi
40d01e:	5b                   	pop    %ebx
40d01f:	c3                   	ret
40d020:	53                   	push   %ebx
40d021:	51                   	push   %ecx
40d022:	8b d8                	mov    %eax,%ebx
40d024:	8b d4                	mov    %esp,%edx
40d026:	8b 43 20             	mov    0x20(%ebx),%eax
40d029:	e8 8e fd ff ff       	call   0x40cdbc
40d02e:	ff 4b 1c             	decl   0x1c(%ebx)
40d031:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
40d035:	75 20                	jne    0x40d057
40d037:	33 c0                	xor    %eax,%eax
40d039:	89 43 24             	mov    %eax,0x24(%ebx)
40d03c:	8d 43 0c             	lea    0xc(%ebx),%eax
40d03f:	ba ff ff 00 00       	mov    $0xffff,%edx
40d044:	e8 03 fd ff ff       	call   0x40cd4c
40d049:	8b c3                	mov    %ebx,%eax
40d04b:	e8 08 ff ff ff       	call   0x40cf58
40d050:	8b c3                	mov    %ebx,%eax
40d052:	e8 f5 fe ff ff       	call   0x40cf4c
40d057:	8b 04 24             	mov    (%esp),%eax
40d05a:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d05e:	75 0a                	jne    0x40d06a
40d060:	8b d4                	mov    %esp,%edx
40d062:	8b 43 20             	mov    0x20(%ebx),%eax
40d065:	e8 ca fd ff ff       	call   0x40ce34
40d06a:	5a                   	pop    %edx
40d06b:	5b                   	pop    %ebx
40d06c:	c3                   	ret
40d06d:	8d 40 00             	lea    0x0(%eax),%eax
40d070:	53                   	push   %ebx
40d071:	56                   	push   %esi
40d072:	51                   	push   %ecx
40d073:	8b f0                	mov    %eax,%esi
40d075:	8b d4                	mov    %esp,%edx
40d077:	8b 46 20             	mov    0x20(%esi),%eax
40d07a:	e8 3d fd ff ff       	call   0x40cdbc
40d07f:	8b 04 24             	mov    (%esp),%eax
40d082:	ff 40 0c             	incl   0xc(%eax)
40d085:	8b 04 24             	mov    (%esp),%eax
40d088:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
40d08c:	0f 97 c3             	seta   %bl
40d08f:	e8 c4 8f ff ff       	call   0x406058
40d094:	3b 46 24             	cmp    0x24(%esi),%eax
40d097:	74 3d                	je     0x40d0d6
40d099:	84 db                	test   %bl,%bl
40d09b:	75 39                	jne    0x40d0d6
40d09d:	8b c6                	mov    %esi,%eax
40d09f:	e8 c0 fe ff ff       	call   0x40cf64
40d0a4:	eb 24                	jmp    0x40d0ca
40d0a6:	8d 46 0c             	lea    0xc(%esi),%eax
40d0a9:	e8 7e fc ff ff       	call   0x40cd2c
40d0ae:	3d ff ff 00 00       	cmp    $0xffff,%eax
40d0b3:	75 07                	jne    0x40d0bc
40d0b5:	8b c6                	mov    %esi,%eax
40d0b7:	e8 9c fe ff ff       	call   0x40cf58
40d0bc:	6a 00                	push   $0x0
40d0be:	e8 1d fb ff ff       	call   0x40cbe0
40d0c3:	8b c6                	mov    %esi,%eax
40d0c5:	e8 9a fe ff ff       	call   0x40cf64
40d0ca:	8d 46 0c             	lea    0xc(%esi),%eax
40d0cd:	e8 66 fc ff ff       	call   0x40cd38
40d0d2:	85 c0                	test   %eax,%eax
40d0d4:	7e d0                	jle    0x40d0a6
40d0d6:	5a                   	pop    %edx
40d0d7:	5e                   	pop    %esi
40d0d8:	5b                   	pop    %ebx
40d0d9:	c3                   	ret
40d0da:	8b c0                	mov    %eax,%eax
40d0dc:	53                   	push   %ebx
40d0dd:	51                   	push   %ecx
40d0de:	8b d8                	mov    %eax,%ebx
40d0e0:	8b d4                	mov    %esp,%edx
40d0e2:	8b 43 20             	mov    0x20(%ebx),%eax
40d0e5:	e8 d2 fc ff ff       	call   0x40cdbc
40d0ea:	8b 04 24             	mov    (%esp),%eax
40d0ed:	ff 48 0c             	decl   0xc(%eax)
40d0f0:	8b 04 24             	mov    (%esp),%eax
40d0f3:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d0f7:	75 48                	jne    0x40d141
40d0f9:	8b d4                	mov    %esp,%edx
40d0fb:	8b 43 20             	mov    0x20(%ebx),%eax
40d0fe:	e8 31 fd ff ff       	call   0x40ce34
40d103:	e8 50 8f ff ff       	call   0x406058
40d108:	3b 43 24             	cmp    0x24(%ebx),%eax
40d10b:	74 34                	je     0x40d141
40d10d:	8d 43 0c             	lea    0xc(%ebx),%eax
40d110:	e8 17 fc ff ff       	call   0x40cd2c
40d115:	8b c8                	mov    %eax,%ecx
40d117:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
40d11d:	75 09                	jne    0x40d128
40d11f:	8b c3                	mov    %ebx,%eax
40d121:	e8 32 fe ff ff       	call   0x40cf58
40d126:	eb 19                	jmp    0x40d141
40d128:	85 c9                	test   %ecx,%ecx
40d12a:	7f 15                	jg     0x40d141
40d12c:	8b c1                	mov    %ecx,%eax
40d12e:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40d133:	99                   	cltd
40d134:	f7 f9                	idiv   %ecx
40d136:	85 d2                	test   %edx,%edx
40d138:	75 07                	jne    0x40d141
40d13a:	8b c3                	mov    %ebx,%eax
40d13c:	e8 17 fe ff ff       	call   0x40cf58
40d141:	5a                   	pop    %edx
40d142:	5b                   	pop    %ebx
40d143:	c3                   	ret
40d144:	8b 10                	mov    (%eax),%edx
40d146:	33 c9                	xor    %ecx,%ecx
40d148:	89 08                	mov    %ecx,(%eax)
40d14a:	8b c2                	mov    %edx,%eax
40d14c:	e8 1b 61 ff ff       	call   0x40326c
40d151:	c3                   	ret
40d152:	8b c0                	mov    %eax,%eax
40d154:	53                   	push   %ebx
40d155:	56                   	push   %esi
40d156:	57                   	push   %edi
40d157:	8b f9                	mov    %ecx,%edi
40d159:	8b f2                	mov    %edx,%esi
40d15b:	8b d8                	mov    %eax,%ebx
40d15d:	85 db                	test   %ebx,%ebx
40d15f:	74 0b                	je     0x40d16c
40d161:	57                   	push   %edi
40d162:	56                   	push   %esi
40d163:	53                   	push   %ebx
40d164:	8b 03                	mov    (%ebx),%eax
40d166:	ff 10                	call   *(%eax)
40d168:	85 c0                	test   %eax,%eax
40d16a:	74 04                	je     0x40d170
40d16c:	33 c0                	xor    %eax,%eax
40d16e:	eb 02                	jmp    0x40d172
40d170:	b0 01                	mov    $0x1,%al
40d172:	5f                   	pop    %edi
40d173:	5e                   	pop    %esi
40d174:	5b                   	pop    %ebx
40d175:	c3                   	ret
40d176:	8b c0                	mov    %eax,%eax
40d178:	55                   	push   %ebp
40d179:	8b ec                	mov    %esp,%ebp
40d17b:	6a 00                	push   $0x0
40d17d:	53                   	push   %ebx
40d17e:	56                   	push   %esi
40d17f:	57                   	push   %edi
40d180:	8b f9                	mov    %ecx,%edi
40d182:	8b f2                	mov    %edx,%esi
40d184:	8b d8                	mov    %eax,%ebx
40d186:	33 c0                	xor    %eax,%eax
40d188:	55                   	push   %ebp
40d189:	68 ef d1 40 00       	push   $0x40d1ef
40d18e:	64 ff 30             	push   %fs:(%eax)
40d191:	64 89 20             	mov    %esp,%fs:(%eax)
40d194:	85 db                	test   %ebx,%ebx
40d196:	74 39                	je     0x40d1d1
40d198:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d19b:	e8 bc 84 ff ff       	call   0x40565c
40d1a0:	8b c8                	mov    %eax,%ecx
40d1a2:	ba 00 d2 40 00       	mov    $0x40d200,%edx
40d1a7:	8b c3                	mov    %ebx,%eax
40d1a9:	e8 72 61 ff ff       	call   0x403320
40d1ae:	84 c0                	test   %al,%al
40d1b0:	74 10                	je     0x40d1c2
40d1b2:	8b cf                	mov    %edi,%ecx
40d1b4:	8b d6                	mov    %esi,%edx
40d1b6:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d1b9:	e8 96 ff ff ff       	call   0x40d154
40d1be:	84 c0                	test   %al,%al
40d1c0:	75 13                	jne    0x40d1d5
40d1c2:	8b cf                	mov    %edi,%ecx
40d1c4:	8b d6                	mov    %esi,%edx
40d1c6:	8b c3                	mov    %ebx,%eax
40d1c8:	e8 53 61 ff ff       	call   0x403320
40d1cd:	84 c0                	test   %al,%al
40d1cf:	75 04                	jne    0x40d1d5
40d1d1:	33 c0                	xor    %eax,%eax
40d1d3:	eb 02                	jmp    0x40d1d7
40d1d5:	b0 01                	mov    $0x1,%al
40d1d7:	8b d8                	mov    %eax,%ebx
40d1d9:	33 c0                	xor    %eax,%eax
40d1db:	5a                   	pop    %edx
40d1dc:	59                   	pop    %ecx
40d1dd:	59                   	pop    %ecx
40d1de:	64 89 10             	mov    %edx,%fs:(%eax)
40d1e1:	68 f6 d1 40 00       	push   $0x40d1f6
40d1e6:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d1e9:	e8 6e 84 ff ff       	call   0x40565c
40d1ee:	c3                   	ret
40d1ef:	e9 cc 67 ff ff       	jmp    0x4039c0
40d1f4:	eb f0                	jmp    0x40d1e6
40d1f6:	8b c3                	mov    %ebx,%eax
40d1f8:	5f                   	pop    %edi
40d1f9:	5e                   	pop    %esi
40d1fa:	5b                   	pop    %ebx
40d1fb:	59                   	pop    %ecx
40d1fc:	5d                   	pop    %ebp
40d1fd:	c3                   	ret
40d206:	00 00                	add    %al,(%eax)
40d208:	c0 00 00             	rolb   $0x0,(%eax)
40d20b:	00 00                	add    %al,(%eax)
40d20d:	00 00                	add    %al,(%eax)
40d20f:	46                   	inc    %esi
40d210:	55                   	push   %ebp
40d211:	8b ec                	mov    %esp,%ebp
40d213:	83 c4 f4             	add    $0xfffffff4,%esp
40d216:	53                   	push   %ebx
40d217:	8b d8                	mov    %eax,%ebx
40d219:	52                   	push   %edx
40d21a:	e8 69 8f ff ff       	call   0x406188
40d21f:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d222:	33 c0                	xor    %eax,%eax
40d224:	55                   	push   %ebp
40d225:	68 82 d2 40 00       	push   $0x40d282
40d22a:	64 ff 30             	push   %fs:(%eax)
40d22d:	64 89 20             	mov    %esp,%fs:(%eax)
40d230:	d9 7d fe             	fnstcw -0x2(%ebp)
40d233:	33 c0                	xor    %eax,%eax
40d235:	55                   	push   %ebp
40d236:	68 64 d2 40 00       	push   $0x40d264
40d23b:	64 ff 30             	push   %fs:(%eax)
40d23e:	64 89 20             	mov    %esp,%fs:(%eax)
40d241:	8b c3                	mov    %ebx,%eax
40d243:	e8 34 72 ff ff       	call   0x40447c
40d248:	50                   	push   %eax
40d249:	e8 02 8f ff ff       	call   0x406150
40d24e:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d251:	33 c0                	xor    %eax,%eax
40d253:	5a                   	pop    %edx
40d254:	59                   	pop    %ecx
40d255:	59                   	pop    %ecx
40d256:	64 89 10             	mov    %edx,%fs:(%eax)
40d259:	68 6b d2 40 00       	push   $0x40d26b
40d25e:	db e2                	fnclex
40d260:	d9 6d fe             	fldcw  -0x2(%ebp)
40d263:	c3                   	ret
40d264:	e9 57 67 ff ff       	jmp    0x4039c0
40d269:	eb f3                	jmp    0x40d25e
40d26b:	33 c0                	xor    %eax,%eax
40d26d:	5a                   	pop    %edx
40d26e:	59                   	pop    %ecx
40d26f:	59                   	pop    %ecx
40d270:	64 89 10             	mov    %edx,%fs:(%eax)
40d273:	68 89 d2 40 00       	push   $0x40d289
40d278:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d27b:	50                   	push   %eax
40d27c:	e8 07 8f ff ff       	call   0x406188
40d281:	c3                   	ret
40d282:	e9 39 67 ff ff       	jmp    0x4039c0
40d287:	eb ef                	jmp    0x40d278
40d289:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d28c:	5b                   	pop    %ebx
40d28d:	8b e5                	mov    %ebp,%esp
40d28f:	5d                   	pop    %ebp
40d290:	c3                   	ret
40d291:	8d 40 00             	lea    0x0(%eax),%eax
40d294:	1d 00 00 00 04       	sbb    $0x4000000,%eax
40d299:	d3 45 00             	roll   %cl,0x0(%ebp)
40d29c:	00 7f 46             	add    %bh,0x46(%edi)
40d29f:	00 fc                	add    %bh,%ah
40d2a1:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2a4:	20 7e 46             	and    %bh,0x46(%esi)
40d2a7:	00 f4                	add    %dh,%ah
40d2a9:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2ac:	a0 7c 46 00 ec       	mov    0xec00467c,%al
40d2b1:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2b4:	4c                   	dec    %esp
40d2b5:	7f 46                	jg     0x40d2fd
40d2b7:	00 e4                	add    %ah,%ah
40d2b9:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2bc:	7c 7f                	jl     0x40d33d
40d2be:	46                   	inc    %esi
40d2bf:	00 dc                	add    %bl,%ah
40d2c1:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2c4:	54                   	push   %esp
40d2c5:	7d 46                	jge    0x40d30d
40d2c7:	00 d4                	add    %dl,%ah
40d2c9:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2cc:	08 7e 46             	or     %bh,0x46(%esi)
40d2cf:	00 cc                	add    %cl,%ah
40d2d1:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2d4:	58                   	pop    %eax
40d2d5:	7c 46                	jl     0x40d31d
40d2d7:	00 c4                	add    %al,%ah
40d2d9:	d2 45 00             	rolb   %cl,0x0(%ebp)
40d2dc:	58                   	pop    %eax
40d2dd:	7e 46                	jle    0x40d325
40d2df:	00 bc d2 45 00 a4 7e 	add    %bh,0x7ea40045(%edx,%edx,8)
40d2e6:	46                   	inc    %esi
40d2e7:	00 b4 d2 45 00 dc 7d 	add    %dh,0x7ddc0045(%edx,%edx,8)