40ce9d:	74 05                	je     0x40cea4
40ce9f:	83 f8 36             	cmp    $0x36,%eax
40cea2:	75 11                	jne    0x40ceb5
40cea4:	68 fa 00 00 00       	push   $0xfa
40cea9:	43                   	inc    %ebx
40ceaa:	ff 15 cc c2 42 00    	call   *0x42c2cc
40ceb0:	83 fb 05             	cmp    $0x5,%ebx
40ceb3:	72 b7                	jb     0x40ce6c
40ceb5:	8b 07                	mov    (%edi),%eax
40ceb7:	83 f8 ff             	cmp    $0xffffffff,%eax
40ceba:	0f 84 ad 00 00 00    	je     0x40cf6d
40cec0:	85 c0                	test   %eax,%eax
40cec2:	0f 84 a5 00 00 00    	je     0x40cf6d
40cec8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40cecb:	51                   	push   %ecx
40cecc:	50                   	push   %eax
40cecd:	ff 15 94 c1 42 00    	call   *0x42c194
40ced3:	89 47 0c             	mov    %eax,0xc(%edi)
40ced6:	83 f8 ff             	cmp    $0xffffffff,%eax
40ced9:	75 32                	jne    0x40cf0d
40cedb:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cee0:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cee5:	0f 84 aa 00 00 00    	je     0x40cf95
40ceeb:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40ceef:	0f 84 a0 00 00 00    	je     0x40cf95
40cef5:	ff 70 14             	push   0x14(%eax)
40cef8:	ff 70 10             	push   0x10(%eax)
40cefb:	6a 0b                	push   $0xb
40cefd:	ba bc 22 40 00       	mov    $0x4022bc,%edx
40cf02:	59                   	pop    %ecx
40cf03:	e8 a8 a4 ff ff       	call   0x4073b0
40cf08:	e9 88 00 00 00       	jmp    0x40cf95
40cf0d:	56                   	push   %esi
40cf0e:	50                   	push   %eax
40cf0f:	56                   	push   %esi
40cf10:	6a 08                	push   $0x8
40cf12:	56                   	push   %esi
40cf13:	ff 37                	push   (%edi)
40cf15:	ff 15 98 c1 42 00    	call   *0x42c198
40cf1b:	89 47 04             	mov    %eax,0x4(%edi)
40cf1e:	85 c0                	test   %eax,%eax
40cf20:	75 1c                	jne    0x40cf3e
40cf22:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cf27:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cf2c:	74 67                	je     0x40cf95
40cf2e:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40cf32:	74 61                	je     0x40cf95
40cf34:	ff 70 14             	push   0x14(%eax)
40cf37:	ff 70 10             	push   0x10(%eax)
40cf3a:	6a 0c                	push   $0xc
40cf3c:	eb bf                	jmp    0x40cefd
40cf3e:	56                   	push   %esi
40cf3f:	56                   	push   %esi
40cf40:	56                   	push   %esi
40cf41:	6a 01                	push   $0x1
40cf43:	50                   	push   %eax
40cf44:	ff 15 54 c2 42 00    	call   *0x42c254
40cf4a:	89 47 08             	mov    %eax,0x8(%edi)
40cf4d:	85 c0                	test   %eax,%eax
40cf4f:	75 5e                	jne    0x40cfaf
40cf51:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cf56:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cf5b:	74 38                	je     0x40cf95
40cf5d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40cf61:	74 32                	je     0x40cf95
40cf63:	ff 70 14             	push   0x14(%eax)
40cf66:	ff 70 10             	push   0x10(%eax)
40cf69:	6a 0d                	push   $0xd
40cf6b:	eb 90                	jmp    0x40cefd
40cf6d:	a1 00 b0 42 00       	mov    0x42b000,%eax
40cf72:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40cf77:	74 1c                	je     0x40cf95
40cf79:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40cf7d:	74 16                	je     0x40cf95
40cf7f:	ff 75 08             	push   0x8(%ebp)
40cf82:	ba bc 22 40 00       	mov    $0x4022bc,%edx
40cf87:	ff 70 14             	push   0x14(%eax)
40cf8a:	ff 70 10             	push   0x10(%eax)
40cf8d:	6a 0a                	push   $0xa
40cf8f:	59                   	pop    %ecx
40cf90:	e8 c3 a9 ff ff       	call   0x407958
40cf95:	ff 15 18 c2 42 00    	call   *0x42c218
40cf9b:	8b c8                	mov    %eax,%ecx
40cf9d:	e8 08 e6 ff ff       	call   0x40b5aa
40cfa2:	8b f0                	mov    %eax,%esi
40cfa4:	85 f6                	test   %esi,%esi
40cfa6:	79 07                	jns    0x40cfaf
40cfa8:	8b cf                	mov    %edi,%ecx
40cfaa:	e8 09 00 00 00       	call   0x40cfb8
40cfaf:	5f                   	pop    %edi
40cfb0:	8b c6                	mov    %esi,%eax
40cfb2:	5e                   	pop    %esi
40cfb3:	5b                   	pop    %ebx
40cfb4:	c9                   	leave
40cfb5:	c2 08 00             	ret    $0x8
40cfb8:	8b ff                	mov    %edi,%edi
40cfba:	56                   	push   %esi
40cfbb:	8b f1                	mov    %ecx,%esi
40cfbd:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40cfc1:	74 0d                	je     0x40cfd0
40cfc3:	ff 76 08             	push   0x8(%esi)
40cfc6:	ff 15 50 c2 42 00    	call   *0x42c250
40cfcc:	83 66 08 00          	andl   $0x0,0x8(%esi)
40cfd0:	8b 46 04             	mov    0x4(%esi),%eax
40cfd3:	85 c0                	test   %eax,%eax
40cfd5:	74 10                	je     0x40cfe7
40cfd7:	83 f8 ff             	cmp    $0xffffffff,%eax
40cfda:	74 0b                	je     0x40cfe7
40cfdc:	50                   	push   %eax
40cfdd:	ff 15 30 c2 42 00    	call   *0x42c230
40cfe3:	83 66 04 00          	andl   $0x0,0x4(%esi)
40cfe7:	83 3e 00             	cmpl   $0x0,(%esi)
40cfea:	74 10                	je     0x40cffc
40cfec:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40cfef:	74 0b                	je     0x40cffc
40cff1:	ff 36                	push   (%esi)
40cff3:	ff 15 30 c2 42 00    	call   *0x42c230
40cff9:	83 0e ff             	orl    $0xffffffff,(%esi)
40cffc:	5e                   	pop    %esi
40cffd:	c3                   	ret
40cffe:	e9 b5 ff ff ff       	jmp    0x40cfb8
40d003:	cc                   	int3
40d004:	cc                   	int3
40d005:	cc                   	int3
40d006:	cc                   	int3
40d007:	cc                   	int3
40d008:	cc                   	int3
40d009:	cc                   	int3
40d00a:	cc                   	int3
40d00b:	cc                   	int3
40d00c:	cc                   	int3
40d00d:	cc                   	int3
40d00e:	cc                   	int3
40d00f:	cc                   	int3
40d010:	8b ff                	mov    %edi,%edi
40d012:	55                   	push   %ebp
40d013:	8b ec                	mov    %esp,%ebp
40d015:	83 e4 f8             	and    $0xfffffff8,%esp
40d018:	51                   	push   %ecx
40d019:	56                   	push   %esi
40d01a:	8b 75 10             	mov    0x10(%ebp),%esi
40d01d:	85 f6                	test   %esi,%esi
40d01f:	74 1f                	je     0x40d040
40d021:	8b 45 08             	mov    0x8(%ebp),%eax
40d024:	85 c0                	test   %eax,%eax
40d026:	74 18                	je     0x40d040
40d028:	83 7d 14 04          	cmpl   $0x4,0x14(%ebp)
40d02c:	75 12                	jne    0x40d040
40d02e:	66 83 38 00          	cmpw   $0x0,(%eax)
40d032:	74 36                	je     0x40d06a
40d034:	50                   	push   %eax
40d035:	ff 15 b8 c3 42 00    	call   *0x42c3b8
40d03b:	59                   	pop    %ecx
40d03c:	89 06                	mov    %eax,(%esi)
40d03e:	eb 2a                	jmp    0x40d06a
40d040:	a1 00 b0 42 00       	mov    0x42b000,%eax
40d045:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40d04a:	74 19                	je     0x40d065
40d04c:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40d050:	74 13                	je     0x40d065
40d052:	ff 70 14             	push   0x14(%eax)
40d055:	ba cc 22 40 00       	mov    $0x4022cc,%edx
40d05a:	ff 70 10             	push   0x10(%eax)
40d05d:	6a 0c                	push   $0xc
40d05f:	59                   	pop    %ecx
40d060:	e8 4b a3 ff ff       	call   0x4073b0
40d065:	e8 d0 92 01 00       	call   0x42633a
40d06a:	5e                   	pop    %esi
40d06b:	8b e5                	mov    %ebp,%esp
40d06d:	5d                   	pop    %ebp
40d06e:	c2 10 00             	ret    $0x10
40d071:	cc                   	int3
40d072:	cc                   	int3
40d073:	cc                   	int3
40d074:	cc                   	int3
40d075:	cc                   	int3
40d076:	cc                   	int3
40d077:	cc                   	int3
40d078:	cc                   	int3
40d079:	cc                   	int3
40d07a:	cc                   	int3
40d07b:	cc                   	int3
40d07c:	cc                   	int3
40d07d:	cc                   	int3
40d07e:	cc                   	int3
40d07f:	cc                   	int3
40d080:	8b ff                	mov    %edi,%edi
40d082:	55                   	push   %ebp
40d083:	8b ec                	mov    %esp,%ebp
40d085:	83 e4 f8             	and    $0xfffffff8,%esp
40d088:	8b 4d 10             	mov    0x10(%ebp),%ecx
40d08b:	85 c9                	test   %ecx,%ecx
40d08d:	74 45                	je     0x40d0d4
40d08f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40d093:	74 3f                	je     0x40d0d4
40d095:	ff 75 0c             	push   0xc(%ebp)
40d098:	ff 75 08             	push   0x8(%ebp)
40d09b:	e8 49 ef ff ff       	call   0x40bfe9
40d0a0:	85 c0                	test   %eax,%eax
40d0a2:	79 5a                	jns    0x40d0fe
40d0a4:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40d0aa:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40d0b0:	74 4c                	je     0x40d0fe
40d0b2:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
40d0b6:	74 46                	je     0x40d0fe
40d0b8:	50                   	push   %eax
40d0b9:	ff 75 0c             	push   0xc(%ebp)
40d0bc:	ba cc 22 40 00       	mov    $0x4022cc,%edx
40d0c1:	ff 75 08             	push   0x8(%ebp)
40d0c4:	ff 71 14             	push   0x14(%ecx)
40d0c7:	ff 71 10             	push   0x10(%ecx)
40d0ca:	6a 10                	push   $0x10
40d0cc:	59                   	pop    %ecx
40d0cd:	e8 da e6 ff ff       	call   0x40b7ac
40d0d2:	eb 2a                	jmp    0x40d0fe
40d0d4:	a1 00 b0 42 00       	mov    0x42b000,%eax
40d0d9:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40d0de:	74 19                	je     0x40d0f9
40d0e0:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40d0e4:	74 13                	je     0x40d0f9
40d0e6:	ff 70 14             	push   0x14(%eax)
40d0e9:	ba cc 22 40 00       	mov    $0x4022cc,%edx
40d0ee:	ff 70 10             	push   0x10(%eax)
40d0f1:	6a 0f                	push   $0xf
40d0f3:	59                   	pop    %ecx
40d0f4:	e8 b7 a2 ff ff       	call   0x4073b0
40d0f9:	e8 3c 92 01 00       	call   0x42633a
40d0fe:	8b e5                	mov    %ebp,%esp
40d100:	5d                   	pop    %ebp
40d101:	c2 10 00             	ret    $0x10
40d104:	8b ff                	mov    %edi,%edi
40d106:	55                   	push   %ebp
40d107:	8b ec                	mov    %esp,%ebp
40d109:	83 e4 f8             	and    $0xfffffff8,%esp
40d10c:	83 ec 2c             	sub    $0x2c,%esp
40d10f:	89 54 24 28          	mov    %edx,0x28(%esp)
40d113:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40d117:	53                   	push   %ebx
40d118:	56                   	push   %esi
40d119:	57                   	push   %edi
40d11a:	85 c9                	test   %ecx,%ecx
40d11c:	0f 84 4b 01 00 00    	je     0x40d26d
40d122:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40d126:	0f 84 41 01 00 00    	je     0x40d26d
40d12c:	8d 34 51             	lea    (%ecx,%edx,2),%esi
40d12f:	8b d9                	mov    %ecx,%ebx
40d131:	89 74 24 24          	mov    %esi,0x24(%esp)
40d135:	3b ce                	cmp    %esi,%ecx
40d137:	0f 83 5a 01 00 00    	jae    0x40d297
40d13d:	33 c0                	xor    %eax,%eax
40d13f:	c7 44 24 28 0a 00 00 	movl   $0xa,0x28(%esp)
40d146:	00
40d147:	89 44 24 10          	mov    %eax,0x10(%esp)
40d14b:	c7 44 24 2c 0d 00 00 	movl   $0xd,0x2c(%esp)
40d152:	00
40d153:	66 39 03             	cmp    %ax,(%ebx)
40d156:	0f 84 3b 01 00 00    	je     0x40d297
40d15c:	8b fb                	mov    %ebx,%edi
40d15e:	3b de                	cmp    %esi,%ebx
40d160:	73 1d                	jae    0x40d17f
40d162:	0f b7 07             	movzwl (%edi),%eax
40d165:	66 85 c0             	test   %ax,%ax
40d168:	74 15                	je     0x40d17f
40d16a:	66 3b 44 24 28       	cmp    0x28(%esp),%ax
40d16f:	74 0e                	je     0x40d17f
40d171:	66 3b 44 24 2c       	cmp    0x2c(%esp),%ax
40d176:	74 07                	je     0x40d17f
40d178:	83 c7 02             	add    $0x2,%edi
40d17b:	3b fe                	cmp    %esi,%edi
40d17d:	72 e3                	jb     0x40d162
40d17f:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40d183:	0f 86 a2 00 00 00    	jbe    0x40d22b
40d189:	8b 75 08             	mov    0x8(%ebp),%esi
40d18c:	8b c3                	mov    %ebx,%eax
40d18e:	2b c1                	sub    %ecx,%eax
40d190:	d1 f8                	sar    $1,%eax
40d192:	2b d0                	sub    %eax,%edx
40d194:	8b 45 0c             	mov    0xc(%ebp),%eax
40d197:	83 c6 08             	add    $0x8,%esi
40d19a:	89 54 24 14          	mov    %edx,0x14(%esp)
40d19e:	89 74 24 18          	mov    %esi,0x18(%esp)
40d1a2:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40d1a6:	8b 4e f8             	mov    -0x8(%esi),%ecx
40d1a9:	8d 41 02             	lea    0x2(%ecx),%eax
40d1ac:	89 44 24 30          	mov    %eax,0x30(%esp)
40d1b0:	66 8b 01             	mov    (%ecx),%ax
40d1b3:	83 c1 02             	add    $0x2,%ecx
40d1b6:	66 3b 44 24 10       	cmp    0x10(%esp),%ax
40d1bb:	75 f3                	jne    0x40d1b0
40d1bd:	2b 4c 24 30          	sub    0x30(%esp),%ecx
40d1c1:	d1 f9                	sar    $1,%ecx
40d1c3:	3b d1                	cmp    %ecx,%edx
40d1c5:	72 4e                	jb     0x40d215
40d1c7:	51                   	push   %ecx
40d1c8:	ff 76 f8             	push   -0x8(%esi)
40d1cb:	53                   	push   %ebx
40d1cc:	ff 15 34 c3 42 00    	call   *0x42c334
40d1d2:	83 c4 0c             	add    $0xc,%esp
40d1d5:	85 c0                	test   %eax,%eax
40d1d7:	75 38                	jne    0x40d211
40d1d9:	8b 4e f8             	mov    -0x8(%esi),%ecx
40d1dc:	8d 51 02             	lea    0x2(%ecx),%edx
40d1df:	66 8b 01             	mov    (%ecx),%ax
40d1e2:	83 c1 02             	add    $0x2,%ecx
40d1e5:	66 3b 44 24 10       	cmp    0x10(%esp),%ax
40d1ea:	75 f3                	jne    0x40d1df
40d1ec:	ff 36                	push   (%esi)
40d1ee:	2b ca                	sub    %edx,%ecx
40d1f0:	8b c7                	mov    %edi,%eax
40d1f2:	ff 76 fc             	push   -0x4(%esi)
40d1f5:	8b 76 04             	mov    0x4(%esi),%esi
40d1f8:	d1 f9                	sar    $1,%ecx
40d1fa:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
40d1fd:	2b c1                	sub    %ecx,%eax
40d1ff:	d1 f8                	sar    $1,%eax
40d201:	50                   	push   %eax
40d202:	51                   	push   %ecx
40d203:	8b ce                	mov    %esi,%ecx
40d205:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40d20b:	ff d6                	call   *%esi
40d20d:	8b 74 24 18          	mov    0x18(%esp),%esi
40d211:	8b 54 24 14          	mov    0x14(%esp),%edx
40d215:	83 c6 14             	add    $0x14,%esi
40d218:	83 6c 24 1c 01       	subl   $0x1,0x1c(%esp)
40d21d:	89 74 24 18          	mov    %esi,0x18(%esp)
40d221:	75 83                	jne    0x40d1a6
40d223:	8b 4c 24 20          	mov    0x20(%esp),%ecx
40d227:	8b 74 24 24          	mov    0x24(%esp),%esi
40d22b:	0f b7 07             	movzwl (%edi),%eax
40d22e:	66 85 c0             	test   %ax,%ax
40d231:	74 27                	je     0x40d25a
40d233:	6a 0a                	push   $0xa
40d235:	59                   	pop    %ecx
40d236:	6a 0d                	push   $0xd
40d238:	8b d0                	mov    %eax,%edx
40d23a:	5e                   	pop    %esi
40d23b:	66 3b d1             	cmp    %cx,%dx
40d23e:	74 05                	je     0x40d245
40d240:	66 3b d6             	cmp    %si,%dx
40d243:	75 0d                	jne    0x40d252
40d245:	83 c7 02             	add    $0x2,%edi
40d248:	0f b7 07             	movzwl (%edi),%eax
40d24b:	8b d0                	mov    %eax,%edx
40d24d:	66 85 c0             	test   %ax,%ax
40d250:	75 e9                	jne    0x40d23b
40d252:	8b 4c 24 20          	mov    0x20(%esp),%ecx
40d256:	8b 74 24 24          	mov    0x24(%esp),%esi
40d25a:	8b 54 24 34          	mov    0x34(%esp),%edx
40d25e:	8b df                	mov    %edi,%ebx
40d260:	6a 00                	push   $0x0