4561c5:	8b ec                	mov    %esp,%ebp
4561c7:	53                   	push   %ebx
4561c8:	56                   	push   %esi
4561c9:	8b d8                	mov    %eax,%ebx
4561cb:	8b c3                	mov    %ebx,%eax
4561cd:	e8 2e d9 ff ff       	call   0x453b00
4561d2:	84 c0                	test   %al,%al
4561d4:	74 11                	je     0x4561e7
4561d6:	8b c3                	mov    %ebx,%eax
4561d8:	e8 db d9 ff ff       	call   0x453bb8
4561dd:	8b 53 20             	mov    0x20(%ebx),%edx
4561e0:	2b d0                	sub    %eax,%edx
4561e2:	89 53 24             	mov    %edx,0x24(%ebx)
4561e5:	eb 05                	jmp    0x4561ec
4561e7:	33 c0                	xor    %eax,%eax
4561e9:	89 43 24             	mov    %eax,0x24(%ebx)
4561ec:	8b 73 14             	mov    0x14(%ebx),%esi
4561ef:	85 f6                	test   %esi,%esi
4561f1:	74 18                	je     0x45620b
4561f3:	8b c6                	mov    %esi,%eax
4561f5:	e8 86 d9 ff ff       	call   0x453b80
4561fa:	84 c0                	test   %al,%al
4561fc:	75 0d                	jne    0x45620b
4561fe:	8b 45 08             	mov    0x8(%ebp),%eax
456201:	50                   	push   %eax
456202:	8b 43 14             	mov    0x14(%ebx),%eax
456205:	e8 ba ff ff ff       	call   0x4561c4
45620a:	59                   	pop    %ecx
45620b:	8b c3                	mov    %ebx,%eax
45620d:	e8 76 df ff ff       	call   0x454188
456212:	85 c0                	test   %eax,%eax
456214:	74 0f                	je     0x456225
456216:	8b c3                	mov    %ebx,%eax
456218:	e8 6b df ff ff       	call   0x454188
45621d:	8b 53 20             	mov    0x20(%ebx),%edx
456220:	e8 b7 de ff ff       	call   0x4540dc
456225:	8b 45 08             	mov    0x8(%ebp),%eax
456228:	8b 40 fc             	mov    -0x4(%eax),%eax
45622b:	50                   	push   %eax
45622c:	68 58 5f 45 00       	push   $0x455f58
456231:	8b 45 08             	mov    0x8(%ebp),%eax
456234:	8b 40 fc             	mov    -0x4(%eax),%eax
456237:	8b 53 14             	mov    0x14(%ebx),%edx
45623a:	e8 1d e2 ff ff       	call   0x45445c
45623f:	5e                   	pop    %esi
456240:	5b                   	pop    %ebx
456241:	5d                   	pop    %ebp
456242:	c3                   	ret
456243:	90                   	nop
456244:	55                   	push   %ebp
456245:	8b ec                	mov    %esp,%ebp
456247:	51                   	push   %ecx
456248:	53                   	push   %ebx
456249:	56                   	push   %esi
45624a:	57                   	push   %edi
45624b:	8b f8                	mov    %eax,%edi
45624d:	8b 77 14             	mov    0x14(%edi),%esi
456250:	85 f6                	test   %esi,%esi
456252:	74 22                	je     0x456276
456254:	8b 45 08             	mov    0x8(%ebp),%eax
456257:	8b 40 fc             	mov    -0x4(%eax),%eax
45625a:	3b 70 64             	cmp    0x64(%eax),%esi
45625d:	74 17                	je     0x456276
45625f:	8b c6                	mov    %esi,%eax
456261:	e8 f6 d8 ff ff       	call   0x453b5c
456266:	48                   	dec    %eax
456267:	75 0d                	jne    0x456276
456269:	8b 45 08             	mov    0x8(%ebp),%eax
45626c:	50                   	push   %eax
45626d:	8b 47 14             	mov    0x14(%edi),%eax
456270:	e8 cf ff ff ff       	call   0x456244
456275:	59                   	pop    %ecx
456276:	8b 47 14             	mov    0x14(%edi),%eax
456279:	e8 de d8 ff ff       	call   0x453b5c
45627e:	48                   	dec    %eax
45627f:	74 06                	je     0x456287
456281:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
456285:	75 07                	jne    0x45628e
456287:	b3 01                	mov    $0x1,%bl
456289:	e9 c2 00 00 00       	jmp    0x456350
45628e:	33 db                	xor    %ebx,%ebx
456290:	8b 45 08             	mov    0x8(%ebp),%eax
456293:	8b 40 fc             	mov    -0x4(%eax),%eax
456296:	8b 40 18             	mov    0x18(%eax),%eax
456299:	8b 55 08             	mov    0x8(%ebp),%edx
45629c:	8b 52 fc             	mov    -0x4(%edx),%edx
45629f:	03 42 0c             	add    0xc(%edx),%eax
4562a2:	83 c0 0e             	add    $0xe,%eax
4562a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4562a8:	8b c7                	mov    %edi,%eax
4562aa:	e8 d9 de ff ff       	call   0x454188
4562af:	85 c0                	test   %eax,%eax
4562b1:	74 5b                	je     0x45630e
4562b3:	8b c7                	mov    %edi,%eax
4562b5:	e8 ce de ff ff       	call   0x454188
4562ba:	8b f0                	mov    %eax,%esi
4562bc:	8b c6                	mov    %esi,%eax
4562be:	e8 dd dd ff ff       	call   0x4540a0
4562c3:	50                   	push   %eax
4562c4:	8b c6                	mov    %esi,%eax
4562c6:	e8 ed d8 ff ff       	call   0x453bb8
4562cb:	5a                   	pop    %edx
4562cc:	2b d0                	sub    %eax,%edx
4562ce:	2b 57 24             	sub    0x24(%edi),%edx
4562d1:	3b 55 fc             	cmp    -0x4(%ebp),%edx
4562d4:	7d 04                	jge    0x4562da
4562d6:	b3 01                	mov    $0x1,%bl
4562d8:	eb 76                	jmp    0x456350
4562da:	8b c6                	mov    %esi,%eax
4562dc:	e8 bf dd ff ff       	call   0x4540a0
4562e1:	8b d0                	mov    %eax,%edx
4562e3:	2b 57 24             	sub    0x24(%edi),%edx
4562e6:	8b c6                	mov    %esi,%eax
4562e8:	e8 db dd ff ff       	call   0x4540c8
4562ed:	8b c6                	mov    %esi,%eax
4562ef:	e8 ac dd ff ff       	call   0x4540a0
4562f4:	8b d0                	mov    %eax,%edx
4562f6:	03 57 24             	add    0x24(%edi),%edx
4562f9:	8b c7                	mov    %edi,%eax
4562fb:	e8 c8 dd ff ff       	call   0x4540c8
456300:	8b c7                	mov    %edi,%eax
456302:	e8 81 de ff ff       	call   0x454188
456307:	e8 10 de ff ff       	call   0x45411c
45630c:	eb 42                	jmp    0x456350
45630e:	8b c7                	mov    %edi,%eax
456310:	e8 67 de ff ff       	call   0x45417c
456315:	85 c0                	test   %eax,%eax
456317:	74 37                	je     0x456350
456319:	8b c7                	mov    %edi,%eax
45631b:	e8 5c de ff ff       	call   0x45417c
456320:	e8 7b dd ff ff       	call   0x4540a0
456325:	2b 47 24             	sub    0x24(%edi),%eax
456328:	3b 45 fc             	cmp    -0x4(%ebp),%eax
45632b:	7d 04                	jge    0x456331
45632d:	b3 01                	mov    $0x1,%bl
45632f:	eb 1f                	jmp    0x456350
456331:	8b c7                	mov    %edi,%eax
456333:	e8 80 d8 ff ff       	call   0x453bb8
456338:	8b d0                	mov    %eax,%edx
45633a:	03 57 24             	add    0x24(%edi),%edx
45633d:	8b c7                	mov    %edi,%eax
45633f:	e8 84 dd ff ff       	call   0x4540c8
456344:	8b c7                	mov    %edi,%eax
456346:	e8 31 de ff ff       	call   0x45417c
45634b:	e8 cc dd ff ff       	call   0x45411c
456350:	84 db                	test   %bl,%bl
456352:	74 08                	je     0x45635c
456354:	8b 47 14             	mov    0x14(%edi),%eax
456357:	e8 28 da ff ff       	call   0x453d84
45635c:	8b 45 08             	mov    0x8(%ebp),%eax
45635f:	8b 40 fc             	mov    -0x4(%eax),%eax
456362:	50                   	push   %eax
456363:	68 58 5f 45 00       	push   $0x455f58
456368:	8b 45 08             	mov    0x8(%ebp),%eax
45636b:	8b 40 fc             	mov    -0x4(%eax),%eax
45636e:	8b 57 14             	mov    0x14(%edi),%edx
456371:	e8 e6 e0 ff ff       	call   0x45445c
456376:	5f                   	pop    %edi
456377:	5e                   	pop    %esi
456378:	5b                   	pop    %ebx
456379:	59                   	pop    %ecx
45637a:	5d                   	pop    %ebp
45637b:	c3                   	ret
45637c:	55                   	push   %ebp
45637d:	8b ec                	mov    %esp,%ebp
45637f:	83 c4 f0             	add    $0xfffffff0,%esp
456382:	53                   	push   %ebx
456383:	56                   	push   %esi
456384:	8b d9                	mov    %ecx,%ebx
456386:	8b f2                	mov    %edx,%esi
456388:	89 45 fc             	mov    %eax,-0x4(%ebp)
45638b:	8b d6                	mov    %esi,%edx
45638d:	8b 45 fc             	mov    -0x4(%ebp),%eax
456390:	e8 5f e0 ff ff       	call   0x4543f4
456395:	85 c0                	test   %eax,%eax
456397:	74 24                	je     0x4563bd
456399:	84 db                	test   %bl,%bl
45639b:	74 09                	je     0x4563a6
45639d:	55                   	push   %ebp
45639e:	e8 a1 fe ff ff       	call   0x456244
4563a3:	59                   	pop    %ecx
4563a4:	eb 07                	jmp    0x4563ad
4563a6:	55                   	push   %ebp
4563a7:	e8 18 fe ff ff       	call   0x4561c4
4563ac:	59                   	pop    %ecx
4563ad:	8b 45 fc             	mov    -0x4(%ebp),%eax
4563b0:	8b 40 14             	mov    0x14(%eax),%eax
4563b3:	8b 10                	mov    (%eax),%edx
4563b5:	ff 92 80 00 00 00    	call   *0x80(%edx)
4563bb:	eb 41                	jmp    0x4563fe
4563bd:	84 db                	test   %bl,%bl
4563bf:	74 3d                	je     0x4563fe
4563c1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4563c4:	8b 56 44             	mov    0x44(%esi),%edx
4563c7:	8b 46 40             	mov    0x40(%esi),%eax
4563ca:	e8 89 09 fc ff       	call   0x416d58
4563cf:	8d 55 f0             	lea    -0x10(%ebp),%edx
4563d2:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4563d5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4563d8:	e8 fb e7 ff ff       	call   0x454bd8
4563dd:	85 c0                	test   %eax,%eax
4563df:	74 05                	je     0x4563e6
4563e1:	8b 58 04             	mov    0x4(%eax),%ebx
4563e4:	eb 02                	jmp    0x4563e8
4563e6:	33 db                	xor    %ebx,%ebx
4563e8:	53                   	push   %ebx
4563e9:	8b d3                	mov    %ebx,%edx
4563eb:	8b c6                	mov    %esi,%eax
4563ed:	e8 56 fd ff ff       	call   0x456148
4563f2:	8b c8                	mov    %eax,%ecx
4563f4:	8b d6                	mov    %esi,%edx
4563f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4563f9:	8b 18                	mov    (%eax),%ebx
4563fb:	ff 53 0c             	call   *0xc(%ebx)
4563fe:	5e                   	pop    %esi
4563ff:	5b                   	pop    %ebx
456400:	8b e5                	mov    %ebp,%esp
456402:	5d                   	pop    %ebp
456403:	c3                   	ret
456404:	53                   	push   %ebx
456405:	56                   	push   %esi
456406:	57                   	push   %edi
456407:	55                   	push   %ebp
456408:	83 c4 e8             	add    $0xffffffe8,%esp
45640b:	8b f2                	mov    %edx,%esi
45640d:	8b f8                	mov    %eax,%edi
45640f:	c6 44 24 0c 00       	movb   $0x0,0xc(%esp)
456414:	8b 06                	mov    (%esi),%eax
456416:	3d 04 02 00 00       	cmp    $0x204,%eax
45641b:	7f 3b                	jg     0x456458
45641d:	0f 84 25 01 00 00    	je     0x456548
456423:	3d 01 02 00 00       	cmp    $0x201,%eax
456428:	7f 1b                	jg     0x456445
45642a:	0f 84 f0 00 00 00    	je     0x456520
456430:	83 e8 20             	sub    $0x20,%eax
456433:	0f 84 87 01 00 00    	je     0x4565c0
456439:	2d e0 01 00 00       	sub    $0x1e0,%eax
45643e:	74 5f                	je     0x45649f
456440:	e9 32 02 00 00       	jmp    0x456677
456445:	2d 02 02 00 00       	sub    $0x202,%eax
45644a:	0f 84 20 01 00 00    	je     0x456570
456450:	48                   	dec    %eax
456451:	74 71                	je     0x4564c4
456453:	e9 1f 02 00 00       	jmp    0x456677
456458:	2d 05 02 00 00       	sub    $0x205,%eax
45645d:	0f 84 35 01 00 00    	je     0x456598
456463:	48                   	dec    %eax
456464:	0f 84 88 00 00 00    	je     0x4564f2
45646a:	2d 2a ae 00 00       	sub    $0xae2a,%eax
45646f:	0f 84 db 01 00 00    	je     0x456650
456475:	83 e8 12             	sub    $0x12,%eax
456478:	0f 85 f9 01 00 00    	jne    0x456677
45647e:	8b 46 08             	mov    0x8(%esi),%eax
456481:	81 38 0b b0 00 00    	cmpl   $0xb00b,(%eax)
456487:	0f 85 ea 01 00 00    	jne    0x456677
45648d:	8b 48 04             	mov    0x4(%eax),%ecx
456490:	8b 56 04             	mov    0x4(%esi),%edx
456493:	8b c7                	mov    %edi,%eax
456495:	e8 e2 fe ff ff       	call   0x45637c
45649a:	e9 d8 01 00 00       	jmp    0x456677
45649f:	0f bf 46 0a          	movswl 0xa(%esi),%eax
4564a3:	50                   	push   %eax
4564a4:	8d 44 24 10          	lea    0x10(%esp),%eax
4564a8:	50                   	push   %eax
4564a9:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4564ad:	e8 76 60 00 00       	call   0x45c528
4564b2:	8b d0                	mov    %eax,%edx
4564b4:	0f bf 4e 08          	movswl 0x8(%esi),%ecx
4564b8:	8b c7                	mov    %edi,%eax
4564ba:	8b 18                	mov    (%eax),%ebx
4564bc:	ff 53 18             	call   *0x18(%ebx)
4564bf:	e9 b3 01 00 00       	jmp    0x456677
4564c4:	0f bf 46 08          	movswl 0x8(%esi),%eax
4564c8:	50                   	push   %eax
4564c9:	0f bf 46 0a          	movswl 0xa(%esi),%eax
4564cd:	50                   	push   %eax
4564ce:	8d 44 24 14          	lea    0x14(%esp),%eax
4564d2:	50                   	push   %eax
4564d3:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4564d7:	e8 4c 60 00 00       	call   0x45c528
4564dc:	8b c8                	mov    %eax,%ecx
4564de:	0a 0d 98 66 45 00    	or     0x456698,%cl
4564e4:	33 d2                	xor    %edx,%edx
4564e6:	8b c7                	mov    %edi,%eax
4564e8:	8b 18                	mov    (%eax),%ebx
4564ea:	ff 53 14             	call   *0x14(%ebx)
4564ed:	e9 85 01 00 00       	jmp    0x456677
4564f2:	0f bf 46 08          	movswl 0x8(%esi),%eax
4564f6:	50                   	push   %eax
4564f7:	0f bf 46 0a          	movswl 0xa(%esi),%eax
4564fb:	50                   	push   %eax
4564fc:	8d 44 24 14          	lea    0x14(%esp),%eax
456500:	50                   	push   %eax
456501:	0f b7 46 04          	movzwl 0x4(%esi),%eax
456505:	e8 1e 60 00 00       	call   0x45c528
45650a:	8b c8                	mov    %eax,%ecx
45650c:	0a 0d 98 66 45 00    	or     0x456698,%cl
456512:	b2 01                	mov    $0x1,%dl
456514:	8b c7                	mov    %edi,%eax
456516:	8b 18                	mov    (%eax),%ebx
456518:	ff 53 14             	call   *0x14(%ebx)
45651b:	e9 57 01 00 00       	jmp    0x456677
456520:	0f bf 46 08          	movswl 0x8(%esi),%eax
456524:	50                   	push   %eax
456525:	0f bf 46 0a          	movswl 0xa(%esi),%eax
456529:	50                   	push   %eax
45652a:	8d 44 24 14          	lea    0x14(%esp),%eax
45652e:	50                   	push   %eax
45652f:	0f b7 46 04          	movzwl 0x4(%esi),%eax
456533:	e8 f0 5f 00 00       	call   0x45c528
456538:	8b c8                	mov    %eax,%ecx
45653a:	33 d2                	xor    %edx,%edx
45653c:	8b c7                	mov    %edi,%eax
45653e:	8b 18                	mov    (%eax),%ebx
456540:	ff 53 14             	call   *0x14(%ebx)
456543:	e9 2f 01 00 00       	jmp    0x456677
456548:	0f bf 46 08          	movswl 0x8(%esi),%eax
45654c:	50                   	push   %eax
45654d:	0f bf 46 0a          	movswl 0xa(%esi),%eax
456551:	50                   	push   %eax
456552:	8d 44 24 14          	lea    0x14(%esp),%eax
456556:	50                   	push   %eax
456557:	0f b7 46 04          	movzwl 0x4(%esi),%eax
45655b:	e8 c8 5f 00 00       	call   0x45c528
456560:	8b c8                	mov    %eax,%ecx
456562:	b2 01                	mov    $0x1,%dl
456564:	8b c7                	mov    %edi,%eax
456566:	8b 18                	mov    (%eax),%ebx
456568:	ff 53 14             	call   *0x14(%ebx)
45656b:	e9 07 01 00 00       	jmp    0x456677
456570:	0f bf 46 08          	movswl 0x8(%esi),%eax
456574:	50                   	push   %eax
456575:	0f bf 46 0a          	movswl 0xa(%esi),%eax
456579:	50                   	push   %eax
45657a:	8d 44 24 14          	lea    0x14(%esp),%eax
45657e:	50                   	push   %eax
45657f:	0f b7 46 04          	movzwl 0x4(%esi),%eax
456583:	e8 a0 5f 00 00       	call   0x45c528
456588:	8b c8                	mov    %eax,%ecx
45658a:	33 d2                	xor    %edx,%edx
45658c:	8b c7                	mov    %edi,%eax
45658e:	8b 18                	mov    (%eax),%ebx
456590:	ff 53 1c             	call   *0x1c(%ebx)
456593:	e9 df 00 00 00       	jmp    0x456677
456598:	0f bf 46 08          	movswl 0x8(%esi),%eax
45659c:	50                   	push   %eax
45659d:	0f bf 46 0a          	movswl 0xa(%esi),%eax
4565a1:	50                   	push   %eax
4565a2:	8d 44 24 14          	lea    0x14(%esp),%eax
4565a6:	50                   	push   %eax