4ce008:	3b d8                	cmp    %eax,%ebx
4ce00a:	7c ba                	jl     0x4cdfc6
4ce00c:	68 00 e4 4c 00       	push   $0x4ce400
4ce011:	6a 0c                	push   $0xc
4ce013:	56                   	push   %esi
4ce014:	e8 f7 05 fe ff       	call   0x4ae610
4ce019:	83 c4 04             	add    $0x4,%esp
4ce01c:	50                   	push   %eax
4ce01d:	55                   	push   %ebp
4ce01e:	e8 bd 0c 13 00       	call   0x5fece0
4ce023:	8b 44 24 34          	mov    0x34(%esp),%eax
4ce027:	33 db                	xor    %ebx,%ebx
4ce029:	56                   	push   %esi
4ce02a:	8b 00                	mov    (%eax),%eax
4ce02c:	89 44 24 24          	mov    %eax,0x24(%esp)
4ce030:	e8 db 05 fe ff       	call   0x4ae610
4ce035:	83 c4 14             	add    $0x14,%esp
4ce038:	85 c0                	test   %eax,%eax
4ce03a:	7e 29                	jle    0x4ce065
4ce03c:	8d 7d 04             	lea    0x4(%ebp),%edi
4ce03f:	90                   	nop
4ce040:	ff 37                	push   (%edi)
4ce042:	ff 77 fc             	push   -0x4(%edi)
4ce045:	ff 74 24 18          	push   0x18(%esp)
4ce049:	e8 b2 4e 11 00       	call   0x5e2f00
4ce04e:	8b 07                	mov    (%edi),%eax
4ce050:	8d 7f 0c             	lea    0xc(%edi),%edi
4ce053:	01 44 24 1c          	add    %eax,0x1c(%esp)
4ce057:	43                   	inc    %ebx
4ce058:	56                   	push   %esi
4ce059:	e8 b2 05 fe ff       	call   0x4ae610
4ce05e:	83 c4 10             	add    $0x10,%esp
4ce061:	3b d8                	cmp    %eax,%ebx
4ce063:	7c db                	jl     0x4ce040
4ce065:	83 7c 24 30 02       	cmpl   $0x2,0x30(%esp)
4ce06a:	8b 4c 24 24          	mov    0x24(%esp),%ecx
4ce06e:	8b 44 24 10          	mov    0x10(%esp),%eax
4ce072:	89 01                	mov    %eax,(%ecx)
4ce074:	75 2c                	jne    0x4ce0a2
4ce076:	56                   	push   %esi
4ce077:	33 ff                	xor    %edi,%edi
4ce079:	e8 92 05 fe ff       	call   0x4ae610
4ce07e:	83 c4 04             	add    $0x4,%esp
4ce081:	85 c0                	test   %eax,%eax
4ce083:	7e 1d                	jle    0x4ce0a2
4ce085:	8d 5d 08             	lea    0x8(%ebp),%ebx
4ce088:	ff 33                	push   (%ebx)
4ce08a:	57                   	push   %edi
4ce08b:	56                   	push   %esi
4ce08c:	e8 1f 06 fe ff       	call   0x4ae6b0
4ce091:	56                   	push   %esi
4ce092:	47                   	inc    %edi
4ce093:	8d 5b 0c             	lea    0xc(%ebx),%ebx
4ce096:	e8 75 05 fe ff       	call   0x4ae610
4ce09b:	83 c4 10             	add    $0x10,%esp
4ce09e:	3b f8                	cmp    %eax,%edi
4ce0a0:	7c e6                	jl     0x4ce088
4ce0a2:	55                   	push   %ebp
4ce0a3:	e8 88 20 fd ff       	call   0x4a0130
4ce0a8:	ff 74 24 1c          	push   0x1c(%esp)
4ce0ac:	e8 7f 20 fd ff       	call   0x4a0130
4ce0b1:	83 c4 08             	add    $0x8,%esp
4ce0b4:	b8 01 00 00 00       	mov    $0x1,%eax
4ce0b9:	5f                   	pop    %edi
4ce0ba:	5e                   	pop    %esi
4ce0bb:	5d                   	pop    %ebp
4ce0bc:	5b                   	pop    %ebx
4ce0bd:	83 c4 0c             	add    $0xc,%esp
4ce0c0:	c3                   	ret
4ce0c1:	56                   	push   %esi
4ce0c2:	33 ff                	xor    %edi,%edi
4ce0c4:	e8 47 05 fe ff       	call   0x4ae610
4ce0c9:	83 c4 04             	add    $0x4,%esp
4ce0cc:	85 c0                	test   %eax,%eax
4ce0ce:	7e 33                	jle    0x4ce103
4ce0d0:	8b 5c 24 34          	mov    0x34(%esp),%ebx
4ce0d4:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
4ce0d8:	57                   	push   %edi
4ce0d9:	56                   	push   %esi
4ce0da:	e8 51 06 fe ff       	call   0x4ae730
4ce0df:	53                   	push   %ebx
4ce0e0:	6a ff                	push   $0xffffffff
4ce0e2:	55                   	push   %ebp
4ce0e3:	ff 74 24 38          	push   0x38(%esp)
4ce0e7:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4ce0eb:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4ce0ef:	50                   	push   %eax
4ce0f0:	e8 9b f7 ff ff       	call   0x4cd890
4ce0f5:	56                   	push   %esi
4ce0f6:	47                   	inc    %edi
4ce0f7:	e8 14 05 fe ff       	call   0x4ae610
4ce0fc:	83 c4 20             	add    $0x20,%esp
4ce0ff:	3b f8                	cmp    %eax,%edi
4ce101:	7c d5                	jl     0x4ce0d8
4ce103:	5f                   	pop    %edi
4ce104:	5e                   	pop    %esi
4ce105:	5d                   	pop    %ebp
4ce106:	b8 01 00 00 00       	mov    $0x1,%eax
4ce10b:	5b                   	pop    %ebx
4ce10c:	83 c4 0c             	add    $0xc,%esp
4ce10f:	c3                   	ret
4ce110:	b8 20 00 00 00       	mov    $0x20,%eax
4ce115:	e8 d6 33 11 00       	call   0x5e14f0
4ce11a:	8b 54 24 2c          	mov    0x2c(%esp),%edx
4ce11e:	53                   	push   %ebx
4ce11f:	55                   	push   %ebp
4ce120:	56                   	push   %esi
4ce121:	8b 1a                	mov    (%edx),%ebx
4ce123:	f6 c3 18             	test   $0x18,%bl
4ce126:	74 1e                	je     0x4ce146
4ce128:	83 7c 24 3c ff       	cmpl   $0xffffffff,0x3c(%esp)
4ce12d:	74 0a                	je     0x4ce139
4ce12f:	5e                   	pop    %esi
4ce130:	5d                   	pop    %ebp
4ce131:	83 c8 ff             	or     $0xffffffff,%eax
4ce134:	5b                   	pop    %ebx
4ce135:	83 c4 20             	add    $0x20,%esp
4ce138:	c3                   	ret
4ce139:	8b 6a 04             	mov    0x4(%edx),%ebp
4ce13c:	8b f3                	mov    %ebx,%esi
4ce13e:	81 e6 c0 00 00 00    	and    $0xc0,%esi
4ce144:	eb 20                	jmp    0x4ce166
4ce146:	8b 6c 24 3c          	mov    0x3c(%esp),%ebp
4ce14a:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
4ce14e:	83 fd ff             	cmp    $0xffffffff,%ebp
4ce151:	74 0e                	je     0x4ce161
4ce153:	8b 4c 24 40          	mov    0x40(%esp),%ecx
4ce157:	8b f1                	mov    %ecx,%esi
4ce159:	81 e6 c0 00 00 00    	and    $0xc0,%esi
4ce15f:	eb 0d                	jmp    0x4ce16e
4ce161:	83 cd ff             	or     $0xffffffff,%ebp
4ce164:	33 f6                	xor    %esi,%esi
4ce166:	8b 4c 24 40          	mov    0x40(%esp),%ecx
4ce16a:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
4ce16e:	81 e1 3f ff ff ff    	and    $0xffffff3f,%ecx
4ce174:	8b c3                	mov    %ebx,%eax
4ce176:	23 c1                	and    %ecx,%eax
4ce178:	89 4c 24 40          	mov    %ecx,0x40(%esp)
4ce17c:	0f ba e0 0b          	bt     $0xb,%eax
4ce180:	b8 00 00 00 00       	mov    $0x0,%eax
4ce185:	57                   	push   %edi
4ce186:	0f 92 c0             	setb   %al
4ce189:	40                   	inc    %eax
4ce18a:	89 44 24 24          	mov    %eax,0x24(%esp)
4ce18e:	f6 c3 06             	test   $0x6,%bl
4ce191:	0f 84 a6 01 00 00    	je     0x4ce33d
4ce197:	8b 44 24 34          	mov    0x34(%esp),%eax
4ce19b:	8b 00                	mov    (%eax),%eax
4ce19d:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4ce1a1:	85 c0                	test   %eax,%eax
4ce1a3:	0f 84 bc 01 00 00    	je     0x4ce365
4ce1a9:	f6 c3 02             	test   $0x2,%bl
4ce1ac:	74 15                	je     0x4ce1c3
4ce1ae:	ba 01 00 00 00       	mov    $0x1,%edx
4ce1b3:	89 54 24 18          	mov    %edx,0x18(%esp)
4ce1b7:	f6 c3 04             	test   $0x4,%bl
4ce1ba:	74 0d                	je     0x4ce1c9
4ce1bc:	ba 02 00 00 00       	mov    $0x2,%edx
4ce1c1:	eb 02                	jmp    0x4ce1c5
4ce1c3:	33 d2                	xor    %edx,%edx
4ce1c5:	89 54 24 18          	mov    %edx,0x18(%esp)
4ce1c9:	83 fd ff             	cmp    $0xffffffff,%ebp
4ce1cc:	74 0f                	je     0x4ce1dd
4ce1ce:	f6 c3 10             	test   $0x10,%bl
4ce1d1:	75 0a                	jne    0x4ce1dd
4ce1d3:	89 6c 24 14          	mov    %ebp,0x14(%esp)
4ce1d7:	89 74 24 20          	mov    %esi,0x20(%esp)
4ce1db:	eb 16                	jmp    0x4ce1f3
4ce1dd:	33 c9                	xor    %ecx,%ecx
4ce1df:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
4ce1e6:	00
4ce1e7:	85 d2                	test   %edx,%edx
4ce1e9:	0f 95 c1             	setne  %cl
4ce1ec:	83 c1 10             	add    $0x10,%ecx
4ce1ef:	89 4c 24 14          	mov    %ecx,0x14(%esp)
4ce1f3:	50                   	push   %eax
4ce1f4:	33 ed                	xor    %ebp,%ebp
4ce1f6:	33 ff                	xor    %edi,%edi
4ce1f8:	e8 13 04 fe ff       	call   0x4ae610
4ce1fd:	83 c4 04             	add    $0x4,%esp
4ce200:	85 c0                	test   %eax,%eax
4ce202:	7e 53                	jle    0x4ce257
4ce204:	57                   	push   %edi
4ce205:	ff 74 24 20          	push   0x20(%esp)
4ce209:	e8 22 05 fe ff       	call   0x4ae730
4ce20e:	83 c4 08             	add    $0x8,%esp
4ce211:	89 44 24 28          	mov    %eax,0x28(%esp)
4ce215:	8b 44 24 3c          	mov    0x3c(%esp),%eax
4ce219:	ff 74 24 44          	push   0x44(%esp)
4ce21d:	8b 40 10             	mov    0x10(%eax),%eax
4ce220:	6a ff                	push   $0xffffffff
4ce222:	ff d0                	call   *%eax
4ce224:	50                   	push   %eax
4ce225:	8d 44 24 34          	lea    0x34(%esp),%eax
4ce229:	6a 00                	push   $0x0
4ce22b:	50                   	push   %eax
4ce22c:	e8 5f f6 ff ff       	call   0x4cd890
4ce231:	83 c4 14             	add    $0x14,%esp
4ce234:	83 f8 ff             	cmp    $0xffffffff,%eax
4ce237:	74 3b                	je     0x4ce274
4ce239:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
4ce23e:	2b c8                	sub    %eax,%ecx
4ce240:	3b e9                	cmp    %ecx,%ebp
4ce242:	7f 30                	jg     0x4ce274
4ce244:	ff 74 24 1c          	push   0x1c(%esp)
4ce248:	03 e8                	add    %eax,%ebp
4ce24a:	47                   	inc    %edi
4ce24b:	e8 c0 03 fe ff       	call   0x4ae610
4ce250:	83 c4 04             	add    $0x4,%esp
4ce253:	3b f8                	cmp    %eax,%edi
4ce255:	7c ad                	jl     0x4ce204
4ce257:	ff 74 24 14          	push   0x14(%esp)
4ce25b:	8b 7c 24 28          	mov    0x28(%esp),%edi
4ce25f:	55                   	push   %ebp
4ce260:	57                   	push   %edi
4ce261:	e8 3a 3a fe ff       	call   0x4b1ca0
4ce266:	8b d0                	mov    %eax,%edx
4ce268:	83 c4 0c             	add    $0xc,%esp
4ce26b:	89 54 24 2c          	mov    %edx,0x2c(%esp)
4ce26f:	83 fa ff             	cmp    $0xffffffff,%edx
4ce272:	75 0b                	jne    0x4ce27f
4ce274:	5f                   	pop    %edi
4ce275:	5e                   	pop    %esi
4ce276:	5d                   	pop    %ebp
4ce277:	83 c8 ff             	or     $0xffffffff,%eax
4ce27a:	5b                   	pop    %ebx
4ce27b:	83 c4 20             	add    $0x20,%esp
4ce27e:	c3                   	ret
4ce27f:	83 e3 10             	and    $0x10,%ebx
4ce282:	74 1a                	je     0x4ce29e
4ce284:	ff 74 24 10          	push   0x10(%esp)
4ce288:	52                   	push   %edx
4ce289:	57                   	push   %edi
4ce28a:	e8 11 3a fe ff       	call   0x4b1ca0
4ce28f:	8b 54 24 38          	mov    0x38(%esp),%edx
4ce293:	8b c8                	mov    %eax,%ecx
4ce295:	83 c4 0c             	add    $0xc,%esp
4ce298:	89 4c 24 24          	mov    %ecx,0x24(%esp)
4ce29c:	eb 06                	jmp    0x4ce2a4
4ce29e:	8b ca                	mov    %edx,%ecx
4ce2a0:	89 54 24 24          	mov    %edx,0x24(%esp)
4ce2a4:	8b 44 24 38          	mov    0x38(%esp),%eax
4ce2a8:	85 c0                	test   %eax,%eax
4ce2aa:	0f 84 83 00 00 00    	je     0x4ce333
4ce2b0:	83 f9 ff             	cmp    $0xffffffff,%ecx
4ce2b3:	74 7e                	je     0x4ce333
4ce2b5:	85 db                	test   %ebx,%ebx
4ce2b7:	74 14                	je     0x4ce2cd
4ce2b9:	56                   	push   %esi
4ce2ba:	ff 74 24 14          	push   0x14(%esp)
4ce2be:	52                   	push   %edx
4ce2bf:	57                   	push   %edi
4ce2c0:	50                   	push   %eax
4ce2c1:	e8 5a 3a fe ff       	call   0x4b1d20
4ce2c6:	8b 44 24 4c          	mov    0x4c(%esp),%eax
4ce2ca:	83 c4 14             	add    $0x14,%esp
4ce2cd:	ff 74 24 20          	push   0x20(%esp)
4ce2d1:	ff 74 24 18          	push   0x18(%esp)
4ce2d5:	55                   	push   %ebp
4ce2d6:	57                   	push   %edi
4ce2d7:	50                   	push   %eax
4ce2d8:	e8 43 3a fe ff       	call   0x4b1d20
4ce2dd:	8b 44 24 50          	mov    0x50(%esp),%eax
4ce2e1:	83 c4 14             	add    $0x14,%esp
4ce2e4:	ff 74 24 44          	push   0x44(%esp)
4ce2e8:	8b 40 10             	mov    0x10(%eax),%eax
4ce2eb:	ff 74 24 1c          	push   0x1c(%esp)
4ce2ef:	ff d0                	call   *%eax
4ce2f1:	8b 74 24 40          	mov    0x40(%esp),%esi
4ce2f5:	50                   	push   %eax
4ce2f6:	55                   	push   %ebp
4ce2f7:	56                   	push   %esi
4ce2f8:	ff 74 24 30          	push   0x30(%esp)
4ce2fc:	e8 1f fc ff ff       	call   0x4cdf20
4ce301:	83 c4 18             	add    $0x18,%esp
4ce304:	83 ff 02             	cmp    $0x2,%edi
4ce307:	0f 85 bd 00 00 00    	jne    0x4ce3ca
4ce30d:	56                   	push   %esi
4ce30e:	e8 ed 39 fe ff       	call   0x4b1d00
4ce313:	83 c4 04             	add    $0x4,%esp
4ce316:	85 db                	test   %ebx,%ebx
4ce318:	0f 84 ac 00 00 00    	je     0x4ce3ca
4ce31e:	56                   	push   %esi
4ce31f:	e8 dc 39 fe ff       	call   0x4b1d00
4ce324:	8b 44 24 28          	mov    0x28(%esp),%eax
4ce328:	83 c4 04             	add    $0x4,%esp
4ce32b:	5f                   	pop    %edi
4ce32c:	5e                   	pop    %esi
4ce32d:	5d                   	pop    %ebp
4ce32e:	5b                   	pop    %ebx
4ce32f:	83 c4 20             	add    $0x20,%esp
4ce332:	c3                   	ret
4ce333:	5f                   	pop    %edi
4ce334:	5e                   	pop    %esi
4ce335:	5d                   	pop    %ebp
4ce336:	8b c1                	mov    %ecx,%eax
4ce338:	5b                   	pop    %ebx
4ce339:	83 c4 20             	add    $0x20,%esp
4ce33c:	c3                   	ret
4ce33d:	8b 42 10             	mov    0x10(%edx),%eax
4ce340:	f6 c3 10             	test   $0x10,%bl
4ce343:	0f 84 8d 00 00 00    	je     0x4ce3d6
4ce349:	51                   	push   %ecx
4ce34a:	6a ff                	push   $0xffffffff
4ce34c:	ff d0                	call   *%eax
4ce34e:	50                   	push   %eax
4ce34f:	6a 00                	push   $0x0
4ce351:	ff 74 24 44          	push   0x44(%esp)
4ce355:	e8 36 f5 ff ff       	call   0x4cd890
4ce35a:	83 c4 14             	add    $0x14,%esp
4ce35d:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4ce361:	85 c0                	test   %eax,%eax
4ce363:	75 0a                	jne    0x4ce36f
4ce365:	5f                   	pop    %edi
4ce366:	5e                   	pop    %esi
4ce367:	5d                   	pop    %ebp
4ce368:	33 c0                	xor    %eax,%eax
4ce36a:	5b                   	pop    %ebx
4ce36b:	83 c4 20             	add    $0x20,%esp
4ce36e:	c3                   	ret
4ce36f:	8b 7c 24 24          	mov    0x24(%esp),%edi
4ce373:	55                   	push   %ebp
4ce374:	50                   	push   %eax
4ce375:	57                   	push   %edi
4ce376:	e8 25 39 fe ff       	call   0x4b1ca0
4ce37b:	8b 5c 24 44          	mov    0x44(%esp),%ebx
4ce37f:	83 c4 0c             	add    $0xc,%esp
4ce382:	89 44 24 24          	mov    %eax,0x24(%esp)
4ce386:	85 db                	test   %ebx,%ebx
4ce388:	74 63                	je     0x4ce3ed
4ce38a:	83 f8 ff             	cmp    $0xffffffff,%eax
4ce38d:	74 5e                	je     0x4ce3ed
4ce38f:	56                   	push   %esi
4ce390:	55                   	push   %ebp
4ce391:	ff 74 24 34          	push   0x34(%esp)
4ce395:	57                   	push   %edi
4ce396:	53                   	push   %ebx
4ce397:	e8 84 39 fe ff       	call   0x4b1d20
4ce39c:	8b 44 24 50          	mov    0x50(%esp),%eax
4ce3a0:	83 c4 14             	add    $0x14,%esp
4ce3a3:	ff 74 24 44          	push   0x44(%esp)
4ce3a7:	8b 40 10             	mov    0x10(%eax),%eax
4ce3aa:	6a ff                	push   $0xffffffff
4ce3ac:	ff d0                	call   *%eax
4ce3ae:	50                   	push   %eax
4ce3af:	53                   	push   %ebx
4ce3b0:	ff 74 24 44          	push   0x44(%esp)
4ce3b4:	e8 d7 f4 ff ff       	call   0x4cd890
4ce3b9:	83 c4 14             	add    $0x14,%esp
4ce3bc:	83 ff 02             	cmp    $0x2,%edi