45818c:	83 60 04 00          	andl   $0x0,0x4(%eax)
458190:	8b 09                	mov    (%ecx),%ecx
458192:	89 08                	mov    %ecx,(%eax)
458194:	83 3d ac 74 4c 00 00 	cmpl   $0x0,0x4c74ac
45819b:	74 0b                	je     0x4581a8
45819d:	8b 0d b0 74 4c 00    	mov    0x4c74b0,%ecx
4581a3:	89 41 04             	mov    %eax,0x4(%ecx)
4581a6:	eb 05                	jmp    0x4581ad
4581a8:	a3 ac 74 4c 00       	mov    %eax,0x4c74ac
4581ad:	a3 b0 74 4c 00       	mov    %eax,0x4c74b0
4581b2:	ff 05 a8 74 4c 00    	incl   0x4c74a8
4581b8:	5d                   	pop    %ebp
4581b9:	c2 04 00             	ret    $0x4
4581bc:	6a 10                	push   $0x10
4581be:	68 dc 1c 49 00       	push   $0x491cdc
4581c3:	68 34 94 4b 00       	push   $0x4b9434
4581c8:	6a 00                	push   $0x0
4581ca:	ff 15 b8 f6 48 00    	call   *0x48f6b8
4581d0:	6a 01                	push   $0x1
4581d2:	e8 c1 b3 fc ff       	call   0x423598
4581d7:	cc                   	int3
4581d8:	55                   	push   %ebp
4581d9:	8b ec                	mov    %esp,%ebp
4581db:	56                   	push   %esi
4581dc:	8b f1                	mov    %ecx,%esi
4581de:	e8 41 be fa ff       	call   0x404024
4581e3:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4581e7:	74 07                	je     0x4581f0
4581e9:	56                   	push   %esi
4581ea:	e8 7d 8e fc ff       	call   0x42106c
4581ef:	59                   	pop    %ecx
4581f0:	8b c6                	mov    %esi,%eax
4581f2:	5e                   	pop    %esi
4581f3:	5d                   	pop    %ebp
4581f4:	c2 04 00             	ret    $0x4
4581f7:	55                   	push   %ebp
4581f8:	8b ec                	mov    %esp,%ebp
4581fa:	83 ec 30             	sub    $0x30,%esp
4581fd:	53                   	push   %ebx
4581fe:	56                   	push   %esi
4581ff:	57                   	push   %edi
458200:	8d 45 e8             	lea    -0x18(%ebp),%eax
458203:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
45820a:	50                   	push   %eax
45820b:	33 db                	xor    %ebx,%ebx
45820d:	8d 45 f0             	lea    -0x10(%ebp),%eax
458210:	51                   	push   %ecx
458211:	8b 4d 08             	mov    0x8(%ebp),%ecx
458214:	8d 55 ec             	lea    -0x14(%ebp),%edx
458217:	8b f3                	mov    %ebx,%esi
458219:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45821c:	50                   	push   %eax
45821d:	89 5d f8             	mov    %ebx,-0x8(%ebp)
458220:	8b fb                	mov    %ebx,%edi
458222:	89 75 f4             	mov    %esi,-0xc(%ebp)
458225:	e8 20 05 00 00       	call   0x45874a
45822a:	83 c4 0c             	add    $0xc,%esp
45822d:	84 c0                	test   %al,%al
45822f:	0f 84 96 01 00 00    	je     0x4583cb
458235:	ff 75 e8             	push   -0x18(%ebp)
458238:	8d 4d f8             	lea    -0x8(%ebp),%ecx
45823b:	e8 a7 05 00 00       	call   0x4587e7
458240:	59                   	pop    %ecx
458241:	84 c0                	test   %al,%al
458243:	0f 84 82 01 00 00    	je     0x4583cb
458249:	8d 45 dc             	lea    -0x24(%ebp),%eax
45824c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
45824f:	50                   	push   %eax
458250:	8d 45 fc             	lea    -0x4(%ebp),%eax
458253:	50                   	push   %eax
458254:	8d 45 e4             	lea    -0x1c(%ebp),%eax
458257:	50                   	push   %eax
458258:	ff 75 f0             	push   -0x10(%ebp)
45825b:	ff 15 6c f0 48 00    	call   *0x48f06c
458261:	85 c0                	test   %eax,%eax
458263:	0f 84 62 01 00 00    	je     0x4583cb
458269:	6a 0c                	push   $0xc
45826b:	8d 45 d0             	lea    -0x30(%ebp),%eax
45826e:	53                   	push   %ebx
45826f:	50                   	push   %eax
458270:	e8 ab ad fc ff       	call   0x423020
458275:	83 c4 0c             	add    $0xc,%esp
458278:	c7 45 d4 08 00 00 00 	movl   $0x8,-0x2c(%ebp)
45827f:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
458282:	74 19                	je     0x45829d
458284:	6a 02                	push   $0x2
458286:	6a 0c                	push   $0xc
458288:	8d 45 d0             	lea    -0x30(%ebp),%eax
45828b:	50                   	push   %eax
45828c:	ff 75 fc             	push   -0x4(%ebp)
45828f:	ff 15 70 f0 48 00    	call   *0x48f070
458295:	85 c0                	test   %eax,%eax
458297:	0f 84 2e 01 00 00    	je     0x4583cb
45829d:	ff 75 0c             	push   0xc(%ebp)
4582a0:	ff 15 4c f0 48 00    	call   *0x48f04c
4582a6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4582a9:	51                   	push   %ecx
4582aa:	8d 51 10             	lea    0x10(%ecx),%edx
4582ad:	8d 14 42             	lea    (%edx,%eax,2),%edx
4582b0:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4582b3:	e8 fb 04 00 00       	call   0x4587b3
4582b8:	8b 75 f4             	mov    -0xc(%ebp),%esi
4582bb:	59                   	pop    %ecx
4582bc:	84 c0                	test   %al,%al
4582be:	0f 84 07 01 00 00    	je     0x4583cb
4582c4:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4582c7:	74 4a                	je     0x458313
4582c9:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4582cc:	85 c9                	test   %ecx,%ecx
4582ce:	74 43                	je     0x458313
4582d0:	8b c3                	mov    %ebx,%eax
4582d2:	89 45 f4             	mov    %eax,-0xc(%ebp)
4582d5:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4582d8:	51                   	push   %ecx
4582d9:	50                   	push   %eax
4582da:	ff 75 fc             	push   -0x4(%ebp)
4582dd:	ff 15 00 f0 48 00    	call   *0x48f000
4582e3:	85 c0                	test   %eax,%eax
4582e5:	0f 84 e0 00 00 00    	je     0x4583cb
4582eb:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4582ee:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4582f2:	50                   	push   %eax
4582f3:	51                   	push   %ecx
4582f4:	6a ff                	push   $0xffffffff
4582f6:	6a 02                	push   $0x2
4582f8:	56                   	push   %esi
4582f9:	ff 15 74 f0 48 00    	call   *0x48f074
4582ff:	85 c0                	test   %eax,%eax
458301:	0f 84 c4 00 00 00    	je     0x4583cb
458307:	8b 45 f4             	mov    -0xc(%ebp),%eax
45830a:	40                   	inc    %eax
45830b:	89 45 f4             	mov    %eax,-0xc(%ebp)
45830e:	3b 45 d0             	cmp    -0x30(%ebp),%eax
458311:	72 c2                	jb     0x4582d5
458313:	ff 75 0c             	push   0xc(%ebp)
458316:	ff 15 4c f0 48 00    	call   *0x48f04c
45831c:	83 c0 08             	add    $0x8,%eax
45831f:	50                   	push   %eax
458320:	6a 08                	push   $0x8
458322:	89 45 e0             	mov    %eax,-0x20(%ebp)
458325:	ff 15 74 f1 48 00    	call   *0x48f174
45832b:	50                   	push   %eax
45832c:	ff 15 70 f1 48 00    	call   *0x48f170
458332:	8b f8                	mov    %eax,%edi
458334:	85 ff                	test   %edi,%edi
458336:	0f 84 8f 00 00 00    	je     0x4583cb
45833c:	8b 45 e0             	mov    -0x20(%ebp),%eax
45833f:	ff 75 0c             	push   0xc(%ebp)
458342:	66 89 47 02          	mov    %ax,0x2(%edi)
458346:	8d 47 08             	lea    0x8(%edi),%eax
458349:	50                   	push   %eax
45834a:	ff 75 0c             	push   0xc(%ebp)
45834d:	ff 15 4c f0 48 00    	call   *0x48f04c
458353:	50                   	push   %eax
458354:	ff 15 50 f0 48 00    	call   *0x48f050
45835a:	85 c0                	test   %eax,%eax
45835c:	74 6d                	je     0x4583cb
45835e:	8b 4d 10             	mov    0x10(%ebp),%ecx
458361:	83 c1 04             	add    $0x4,%ecx
458364:	89 5d 0c             	mov    %ebx,0xc(%ebp)
458367:	89 4d 10             	mov    %ecx,0x10(%ebp)
45836a:	8a 41 fc             	mov    -0x4(%ecx),%al
45836d:	88 07                	mov    %al,(%edi)
45836f:	8a 41 fd             	mov    -0x3(%ecx),%al
458372:	88 47 01             	mov    %al,0x1(%edi)
458375:	8b 01                	mov    (%ecx),%eax
458377:	89 47 04             	mov    %eax,0x4(%edi)
45837a:	0f b7 47 02          	movzwl 0x2(%edi),%eax
45837e:	50                   	push   %eax
45837f:	57                   	push   %edi
458380:	6a ff                	push   $0xffffffff
458382:	6a 02                	push   $0x2
458384:	56                   	push   %esi
458385:	ff 15 74 f0 48 00    	call   *0x48f074
45838b:	85 c0                	test   %eax,%eax
45838d:	74 3c                	je     0x4583cb
45838f:	8b 45 0c             	mov    0xc(%ebp),%eax
458392:	8b 4d 10             	mov    0x10(%ebp),%ecx
458395:	40                   	inc    %eax
458396:	83 c1 0c             	add    $0xc,%ecx
458399:	89 45 0c             	mov    %eax,0xc(%ebp)
45839c:	89 4d 10             	mov    %ecx,0x10(%ebp)
45839f:	83 f8 01             	cmp    $0x1,%eax
4583a2:	72 c6                	jb     0x45836a
4583a4:	53                   	push   %ebx
4583a5:	56                   	push   %esi
4583a6:	6a 01                	push   $0x1
4583a8:	ff 75 f8             	push   -0x8(%ebp)
4583ab:	ff 15 78 f0 48 00    	call   *0x48f078
4583b1:	85 c0                	test   %eax,%eax
4583b3:	74 16                	je     0x4583cb
4583b5:	ff 75 f8             	push   -0x8(%ebp)
4583b8:	8d 45 ec             	lea    -0x14(%ebp),%eax
4583bb:	50                   	push   %eax
4583bc:	ff 75 08             	push   0x8(%ebp)
4583bf:	ff 15 98 f6 48 00    	call   *0x48f698
4583c5:	85 c0                	test   %eax,%eax
4583c7:	74 02                	je     0x4583cb
4583c9:	b3 01                	mov    $0x1,%bl
4583cb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4583ce:	e8 e0 02 00 00       	call   0x4586b3
4583d3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4583d6:	e8 d8 02 00 00       	call   0x4586b3
4583db:	8b ce                	mov    %esi,%ecx
4583dd:	e8 d1 02 00 00       	call   0x4586b3
4583e2:	8b cf                	mov    %edi,%ecx
4583e4:	e8 ca 02 00 00       	call   0x4586b3
4583e9:	5f                   	pop    %edi
4583ea:	5e                   	pop    %esi
4583eb:	8a c3                	mov    %bl,%al
4583ed:	5b                   	pop    %ebx
4583ee:	8b e5                	mov    %ebp,%esp
4583f0:	5d                   	pop    %ebp
4583f1:	c2 10 00             	ret    $0x10
4583f4:	55                   	push   %ebp
4583f5:	8b ec                	mov    %esp,%ebp
4583f7:	83 ec 30             	sub    $0x30,%esp
4583fa:	53                   	push   %ebx
4583fb:	56                   	push   %esi
4583fc:	57                   	push   %edi
4583fd:	8d 45 e8             	lea    -0x18(%ebp),%eax
458400:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
458407:	50                   	push   %eax
458408:	33 db                	xor    %ebx,%ebx
45840a:	8d 45 f0             	lea    -0x10(%ebp),%eax
45840d:	51                   	push   %ecx
45840e:	8b 4d 08             	mov    0x8(%ebp),%ecx
458411:	8d 55 ec             	lea    -0x14(%ebp),%edx
458414:	8b f3                	mov    %ebx,%esi
458416:	89 5d f0             	mov    %ebx,-0x10(%ebp)
458419:	50                   	push   %eax
45841a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
45841d:	8b fb                	mov    %ebx,%edi
45841f:	89 75 f4             	mov    %esi,-0xc(%ebp)
458422:	e8 23 03 00 00       	call   0x45874a
458427:	83 c4 0c             	add    $0xc,%esp
45842a:	84 c0                	test   %al,%al
45842c:	0f 84 96 01 00 00    	je     0x4585c8
458432:	ff 75 e8             	push   -0x18(%ebp)
458435:	8d 4d f8             	lea    -0x8(%ebp),%ecx
458438:	e8 aa 03 00 00       	call   0x4587e7
45843d:	59                   	pop    %ecx
45843e:	84 c0                	test   %al,%al
458440:	0f 84 82 01 00 00    	je     0x4585c8
458446:	8d 45 dc             	lea    -0x24(%ebp),%eax
458449:	89 5d fc             	mov    %ebx,-0x4(%ebp)
45844c:	50                   	push   %eax
45844d:	8d 45 fc             	lea    -0x4(%ebp),%eax
458450:	50                   	push   %eax
458451:	8d 45 e4             	lea    -0x1c(%ebp),%eax
458454:	50                   	push   %eax
458455:	ff 75 f0             	push   -0x10(%ebp)
458458:	ff 15 6c f0 48 00    	call   *0x48f06c
45845e:	85 c0                	test   %eax,%eax
458460:	0f 84 62 01 00 00    	je     0x4585c8
458466:	6a 0c                	push   $0xc
458468:	8d 45 d0             	lea    -0x30(%ebp),%eax
45846b:	53                   	push   %ebx
45846c:	50                   	push   %eax
45846d:	e8 ae ab fc ff       	call   0x423020
458472:	83 c4 0c             	add    $0xc,%esp
458475:	c7 45 d4 08 00 00 00 	movl   $0x8,-0x2c(%ebp)
45847c:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
45847f:	74 19                	je     0x45849a
458481:	6a 02                	push   $0x2
458483:	6a 0c                	push   $0xc
458485:	8d 45 d0             	lea    -0x30(%ebp),%eax
458488:	50                   	push   %eax
458489:	ff 75 fc             	push   -0x4(%ebp)
45848c:	ff 15 70 f0 48 00    	call   *0x48f070
458492:	85 c0                	test   %eax,%eax
458494:	0f 84 2e 01 00 00    	je     0x4585c8
45849a:	ff 75 0c             	push   0xc(%ebp)
45849d:	ff 15 4c f0 48 00    	call   *0x48f04c
4584a3:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4584a6:	51                   	push   %ecx
4584a7:	8d 51 10             	lea    0x10(%ecx),%edx
4584aa:	8d 14 42             	lea    (%edx,%eax,2),%edx
4584ad:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4584b0:	e8 fe 02 00 00       	call   0x4587b3
4584b5:	8b 75 f4             	mov    -0xc(%ebp),%esi
4584b8:	59                   	pop    %ecx
4584b9:	84 c0                	test   %al,%al
4584bb:	0f 84 07 01 00 00    	je     0x4585c8
4584c1:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4584c4:	74 4a                	je     0x458510
4584c6:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4584c9:	85 c9                	test   %ecx,%ecx
4584cb:	74 43                	je     0x458510
4584cd:	8b c3                	mov    %ebx,%eax
4584cf:	89 45 f4             	mov    %eax,-0xc(%ebp)
4584d2:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4584d5:	51                   	push   %ecx
4584d6:	50                   	push   %eax
4584d7:	ff 75 fc             	push   -0x4(%ebp)
4584da:	ff 15 00 f0 48 00    	call   *0x48f000
4584e0:	85 c0                	test   %eax,%eax
4584e2:	0f 84 e0 00 00 00    	je     0x4585c8
4584e8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4584eb:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4584ef:	50                   	push   %eax
4584f0:	51                   	push   %ecx
4584f1:	6a ff                	push   $0xffffffff
4584f3:	6a 02                	push   $0x2
4584f5:	56                   	push   %esi
4584f6:	ff 15 74 f0 48 00    	call   *0x48f074
4584fc:	85 c0                	test   %eax,%eax
4584fe:	0f 84 c4 00 00 00    	je     0x4585c8
458504:	8b 45 f4             	mov    -0xc(%ebp),%eax
458507:	40                   	inc    %eax
458508:	89 45 f4             	mov    %eax,-0xc(%ebp)
45850b:	3b 45 d0             	cmp    -0x30(%ebp),%eax
45850e:	72 c2                	jb     0x4584d2
458510:	ff 75 0c             	push   0xc(%ebp)
458513:	ff 15 4c f0 48 00    	call   *0x48f04c
458519:	83 c0 08             	add    $0x8,%eax
45851c:	50                   	push   %eax
45851d:	6a 08                	push   $0x8
45851f:	89 45 e0             	mov    %eax,-0x20(%ebp)
458522:	ff 15 74 f1 48 00    	call   *0x48f174
458528:	50                   	push   %eax
458529:	ff 15 70 f1 48 00    	call   *0x48f170
45852f:	8b f8                	mov    %eax,%edi
458531:	85 ff                	test   %edi,%edi
458533:	0f 84 8f 00 00 00    	je     0x4585c8
458539:	8b 45 e0             	mov    -0x20(%ebp),%eax
45853c:	ff 75 0c             	push   0xc(%ebp)
45853f:	66 89 47 02          	mov    %ax,0x2(%edi)
458543:	8d 47 08             	lea    0x8(%edi),%eax
458546:	50                   	push   %eax
458547:	ff 75 0c             	push   0xc(%ebp)
45854a:	ff 15 4c f0 48 00    	call   *0x48f04c
458550:	50                   	push   %eax
458551:	ff 15 50 f0 48 00    	call   *0x48f050
458557:	85 c0                	test   %eax,%eax
458559:	74 6d                	je     0x4585c8
45855b:	8b 4d 10             	mov    0x10(%ebp),%ecx
45855e:	83 c1 04             	add    $0x4,%ecx
458561:	89 5d 0c             	mov    %ebx,0xc(%ebp)
458564:	89 4d 10             	mov    %ecx,0x10(%ebp)
458567:	8a 41 fc             	mov    -0x4(%ecx),%al
45856a:	88 07                	mov    %al,(%edi)
45856c:	8a 41 fd             	mov    -0x3(%ecx),%al
45856f:	88 47 01             	mov    %al,0x1(%edi)
458572:	8b 01                	mov    (%ecx),%eax
458574:	89 47 04             	mov    %eax,0x4(%edi)
458577:	0f b7 47 02          	movzwl 0x2(%edi),%eax
45857b:	50                   	push   %eax
45857c:	57                   	push   %edi
45857d:	6a ff                	push   $0xffffffff