58a20e:	85 c0                	test   %eax,%eax
58a210:	75 13                	jne    0x58a225
58a212:	8b 81 d0 04 00 00    	mov    0x4d0(%ecx),%eax
58a218:	85 c0                	test   %eax,%eax
58a21a:	74 07                	je     0x58a223
58a21c:	8b 40 08             	mov    0x8(%eax),%eax
58a21f:	85 c0                	test   %eax,%eax
58a221:	75 02                	jne    0x58a225
58a223:	33 c0                	xor    %eax,%eax
58a225:	c3                   	ret
58a226:	cc                   	int3
58a227:	cc                   	int3
58a228:	cc                   	int3
58a229:	cc                   	int3
58a22a:	cc                   	int3
58a22b:	cc                   	int3
58a22c:	cc                   	int3
58a22d:	cc                   	int3
58a22e:	cc                   	int3
58a22f:	cc                   	int3
58a230:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58a234:	8b 81 74 04 00 00    	mov    0x474(%ecx),%eax
58a23a:	85 c0                	test   %eax,%eax
58a23c:	74 19                	je     0x58a257
58a23e:	8a 90 f0 01 00 00    	mov    0x1f0(%eax),%dl
58a244:	8d 42 ff             	lea    -0x1(%edx),%eax
58a247:	3c 03                	cmp    $0x3,%al
58a249:	77 0c                	ja     0x58a257
58a24b:	0f b6 ca             	movzbl %dl,%ecx
58a24e:	b8 00 02 00 00       	mov    $0x200,%eax
58a253:	49                   	dec    %ecx
58a254:	d3 e0                	shl    %cl,%eax
58a256:	c3                   	ret
58a257:	8b 81 0c 05 00 00    	mov    0x50c(%ecx),%eax
58a25d:	c3                   	ret
58a25e:	cc                   	int3
58a25f:	cc                   	int3
58a260:	8b 44 24 04          	mov    0x4(%esp),%eax
58a264:	56                   	push   %esi
58a265:	8b 74 24 10          	mov    0x10(%esp),%esi
58a269:	8b 40 7c             	mov    0x7c(%eax),%eax
58a26c:	8b 88 64 02 00 00    	mov    0x264(%eax),%ecx
58a272:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58a278:	85 c9                	test   %ecx,%ecx
58a27a:	74 19                	je     0x58a295
58a27c:	8b 51 0c             	mov    0xc(%ecx),%edx
58a27f:	85 d2                	test   %edx,%edx
58a281:	74 12                	je     0x58a295
58a283:	8b 44 24 0c          	mov    0xc(%esp),%eax
58a287:	89 10                	mov    %edx,(%eax)
58a289:	8b 41 10             	mov    0x10(%ecx),%eax
58a28c:	89 06                	mov    %eax,(%esi)
58a28e:	b8 01 00 00 00       	mov    $0x1,%eax
58a293:	5e                   	pop    %esi
58a294:	c3                   	ret
58a295:	33 c0                	xor    %eax,%eax
58a297:	5e                   	pop    %esi
58a298:	c3                   	ret
58a299:	cc                   	int3
58a29a:	cc                   	int3
58a29b:	cc                   	int3
58a29c:	cc                   	int3
58a29d:	cc                   	int3
58a29e:	cc                   	int3
58a29f:	cc                   	int3
58a2a0:	8b 54 24 04          	mov    0x4(%esp),%edx
58a2a4:	8b 82 74 04 00 00    	mov    0x474(%edx),%eax
58a2aa:	85 c0                	test   %eax,%eax
58a2ac:	74 20                	je     0x58a2ce
58a2ae:	8a 88 f0 01 00 00    	mov    0x1f0(%eax),%cl
58a2b4:	8d 41 ff             	lea    -0x1(%ecx),%eax
58a2b7:	3c 03                	cmp    $0x3,%al
58a2b9:	77 13                	ja     0x58a2ce
58a2bb:	0f b6 c9             	movzbl %cl,%ecx
58a2be:	b8 00 02 00 00       	mov    $0x200,%eax
58a2c3:	49                   	dec    %ecx
58a2c4:	d3 e0                	shl    %cl,%eax
58a2c6:	39 82 08 05 00 00    	cmp    %eax,0x508(%edx)
58a2cc:	77 11                	ja     0x58a2df
58a2ce:	8b 82 08 05 00 00    	mov    0x508(%edx),%eax
58a2d4:	8b 8a 0c 05 00 00    	mov    0x50c(%edx),%ecx
58a2da:	3b c1                	cmp    %ecx,%eax
58a2dc:	0f 47 c1             	cmova  %ecx,%eax
58a2df:	c3                   	ret
58a2e0:	53                   	push   %ebx
58a2e1:	55                   	push   %ebp
58a2e2:	56                   	push   %esi
58a2e3:	57                   	push   %edi
58a2e4:	8b 7c 24 14          	mov    0x14(%esp),%edi
58a2e8:	33 f6                	xor    %esi,%esi
58a2ea:	8b 47 7c             	mov    0x7c(%edi),%eax
58a2ed:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
58a2f3:	50                   	push   %eax
58a2f4:	89 44 24 18          	mov    %eax,0x18(%esp)
58a2f8:	e8 73 64 f6 ff       	call   0x4f0770
58a2fd:	50                   	push   %eax
58a2fe:	e8 bd 65 f6 ff       	call   0x4f08c0
58a303:	8b d8                	mov    %eax,%ebx
58a305:	83 c4 08             	add    $0x8,%esp
58a308:	33 ed                	xor    %ebp,%ebp
58a30a:	85 db                	test   %ebx,%ebx
58a30c:	78 56                	js     0x58a364
58a30e:	3b 5c 24 1c          	cmp    0x1c(%esp),%ebx
58a312:	77 50                	ja     0x58a364
58a314:	e8 f7 0d f9 ff       	call   0x51b110
58a319:	8b f0                	mov    %eax,%esi
58a31b:	85 f6                	test   %esi,%esi
58a31d:	74 61                	je     0x58a380
58a31f:	ff 74 24 14          	push   0x14(%esp)
58a323:	56                   	push   %esi
58a324:	e8 37 0c f9 ff       	call   0x51af60
58a329:	83 c4 08             	add    $0x8,%esp
58a32c:	85 c0                	test   %eax,%eax
58a32e:	74 2d                	je     0x58a35d
58a330:	55                   	push   %ebp
58a331:	ff 74 24 1c          	push   0x1c(%esp)
58a335:	56                   	push   %esi
58a336:	e8 45 08 f9 ff       	call   0x51ab80
58a33b:	83 c4 0c             	add    $0xc,%esp
58a33e:	85 c0                	test   %eax,%eax
58a340:	7e 1b                	jle    0x58a35d
58a342:	8b 44 24 20          	mov    0x20(%esp),%eax
58a346:	bd 01 00 00 00       	mov    $0x1,%ebp
58a34b:	56                   	push   %esi
58a34c:	89 18                	mov    %ebx,(%eax)
58a34e:	e8 9d 0d f9 ff       	call   0x51b0f0
58a353:	83 c4 04             	add    $0x4,%esp
58a356:	8b c5                	mov    %ebp,%eax
58a358:	5f                   	pop    %edi
58a359:	5e                   	pop    %esi
58a35a:	5d                   	pop    %ebp
58a35b:	5b                   	pop    %ebx
58a35c:	c3                   	ret
58a35d:	68 a9 11 00 00       	push   $0x11a9
58a362:	eb 05                	jmp    0x58a369
58a364:	68 9e 11 00 00       	push   $0x119e
58a369:	68 3c 48 66 00       	push   $0x66483c
58a36e:	6a 44                	push   $0x44
58a370:	68 30 02 00 00       	push   $0x230
58a375:	6a 50                	push   $0x50
58a377:	57                   	push   %edi
58a378:	e8 93 4d 00 00       	call   0x58f110
58a37d:	83 c4 18             	add    $0x18,%esp
58a380:	56                   	push   %esi
58a381:	e8 6a 0d f9 ff       	call   0x51b0f0
58a386:	83 c4 04             	add    $0x4,%esp
58a389:	8b c5                	mov    %ebp,%eax
58a38b:	5f                   	pop    %edi
58a38c:	5e                   	pop    %esi
58a38d:	5d                   	pop    %ebp
58a38e:	5b                   	pop    %ebx
58a38f:	c3                   	ret
58a390:	57                   	push   %edi
58a391:	8b 7c 24 08          	mov    0x8(%esp),%edi
58a395:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
58a399:	74 07                	je     0x58a3a2
58a39b:	b8 01 00 00 00       	mov    $0x1,%eax
58a3a0:	5f                   	pop    %edi
58a3a1:	c3                   	ret
58a3a2:	56                   	push   %esi
58a3a3:	e8 28 cc fc ff       	call   0x556fd0
58a3a8:	50                   	push   %eax
58a3a9:	e8 82 ed f6 ff       	call   0x4f9130
58a3ae:	8b f0                	mov    %eax,%esi
58a3b0:	83 c4 04             	add    $0x4,%esp
58a3b3:	85 f6                	test   %esi,%esi
58a3b5:	74 2d                	je     0x58a3e4
58a3b7:	6a 00                	push   $0x0
58a3b9:	6a 01                	push   $0x1
58a3bb:	6a 75                	push   $0x75
58a3bd:	56                   	push   %esi
58a3be:	e8 3d ed f6 ff       	call   0x4f9100
58a3c3:	83 c4 10             	add    $0x10,%esp
58a3c6:	85 c0                	test   %eax,%eax
58a3c8:	74 1a                	je     0x58a3e4
58a3ca:	ff 77 0c             	push   0xc(%edi)
58a3cd:	89 77 10             	mov    %esi,0x10(%edi)
58a3d0:	56                   	push   %esi
58a3d1:	e8 aa ee f6 ff       	call   0x4f9280
58a3d6:	83 c4 08             	add    $0x8,%esp
58a3d9:	89 47 0c             	mov    %eax,0xc(%edi)
58a3dc:	b8 01 00 00 00       	mov    $0x1,%eax
58a3e1:	5e                   	pop    %esi
58a3e2:	5f                   	pop    %edi
58a3e3:	c3                   	ret
58a3e4:	56                   	push   %esi
58a3e5:	e8 66 e8 f6 ff       	call   0x4f8c50
58a3ea:	68 88 0f 00 00       	push   $0xf88
58a3ef:	68 3c 48 66 00       	push   $0x66483c
58a3f4:	6a 07                	push   $0x7
58a3f6:	68 b8 00 00 00       	push   $0xb8
58a3fb:	6a 14                	push   $0x14
58a3fd:	e8 7e eb f4 ff       	call   0x4d8f80
58a402:	83 c4 18             	add    $0x18,%esp
58a405:	33 c0                	xor    %eax,%eax
58a407:	5e                   	pop    %esi
58a408:	5f                   	pop    %edi
58a409:	c3                   	ret
58a40a:	cc                   	int3
58a40b:	cc                   	int3
58a40c:	cc                   	int3
58a40d:	cc                   	int3
58a40e:	cc                   	int3
58a40f:	cc                   	int3
58a410:	83 7c 24 0c 08       	cmpl   $0x8,0xc(%esp)
58a415:	73 22                	jae    0x58a439
58a417:	68 8c 14 00 00       	push   $0x148c
58a41c:	68 3c 48 66 00       	push   $0x66483c
58a421:	6a 44                	push   $0x44
58a423:	68 f3 01 00 00       	push   $0x1f3
58a428:	6a 50                	push   $0x50
58a42a:	ff 74 24 18          	push   0x18(%esp)
58a42e:	e8 dd 4c 00 00       	call   0x58f110
58a433:	83 c4 18             	add    $0x18,%esp
58a436:	33 c0                	xor    %eax,%eax
58a438:	c3                   	ret
58a439:	ff 74 24 14          	push   0x14(%esp)
58a43d:	ff 74 24 14          	push   0x14(%esp)
58a441:	6a 08                	push   $0x8
58a443:	ff 74 24 14          	push   0x14(%esp)
58a447:	ff 74 24 14          	push   0x14(%esp)
58a44b:	68 34 1f 62 00       	push   $0x621f34
58a450:	e8 cb f8 ff ff       	call   0x589d20
58a455:	83 c4 18             	add    $0x18,%esp
58a458:	c3                   	ret
58a459:	cc                   	int3
58a45a:	cc                   	int3
58a45b:	cc                   	int3
58a45c:	cc                   	int3
58a45d:	cc                   	int3
58a45e:	cc                   	int3
58a45f:	cc                   	int3
58a460:	ff 74 24 10          	push   0x10(%esp)
58a464:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58a468:	ff 74 24 10          	push   0x10(%esp)
58a46c:	6a 20                	push   $0x20
58a46e:	8b 41 7c             	mov    0x7c(%ecx),%eax
58a471:	05 ac 00 00 00       	add    $0xac,%eax
58a476:	50                   	push   %eax
58a477:	51                   	push   %ecx
58a478:	ff 74 24 1c          	push   0x1c(%esp)
58a47c:	e8 9f f8 ff ff       	call   0x589d20
58a481:	83 c4 18             	add    $0x18,%esp
58a484:	c3                   	ret
58a485:	cc                   	int3
58a486:	cc                   	int3
58a487:	cc                   	int3
58a488:	cc                   	int3
58a489:	cc                   	int3
58a48a:	cc                   	int3
58a48b:	cc                   	int3
58a48c:	cc                   	int3
58a48d:	cc                   	int3
58a48e:	cc                   	int3
58a48f:	cc                   	int3
58a490:	56                   	push   %esi
58a491:	8b 74 24 08          	mov    0x8(%esp),%esi
58a495:	ff 36                	push   (%esi)
58a497:	e8 54 0c f9 ff       	call   0x51b0f0
58a49c:	83 c4 04             	add    $0x4,%esp
58a49f:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58a4a5:	e8 66 0c f9 ff       	call   0x51b110
58a4aa:	89 06                	mov    %eax,(%esi)
58a4ac:	85 c0                	test   %eax,%eax
58a4ae:	74 1c                	je     0x58a4cc
58a4b0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
58a4b4:	85 c9                	test   %ecx,%ecx
58a4b6:	74 10                	je     0x58a4c8
58a4b8:	6a 00                	push   $0x0
58a4ba:	51                   	push   %ecx
58a4bb:	50                   	push   %eax
58a4bc:	e8 5f 07 f9 ff       	call   0x51ac20
58a4c1:	83 c4 0c             	add    $0xc,%esp
58a4c4:	85 c0                	test   %eax,%eax
58a4c6:	7e 04                	jle    0x58a4cc
58a4c8:	8b 06                	mov    (%esi),%eax
58a4ca:	5e                   	pop    %esi
58a4cb:	c3                   	ret
58a4cc:	ff 36                	push   (%esi)
58a4ce:	e8 1d 0c f9 ff       	call   0x51b0f0
58a4d3:	83 c4 04             	add    $0x4,%esp
58a4d6:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58a4dc:	33 c0                	xor    %eax,%eax
58a4de:	5e                   	pop    %esi
58a4df:	c3                   	ret
58a4e0:	b8 08 00 00 00       	mov    $0x8,%eax
58a4e5:	e8 c6 72 04 00       	call   0x5d17b0
58a4ea:	56                   	push   %esi
58a4eb:	8b 74 24 10          	mov    0x10(%esp),%esi
58a4ef:	57                   	push   %edi
58a4f0:	8b 7e 7c             	mov    0x7c(%esi),%edi
58a4f3:	8b 96 04 04 00 00    	mov    0x404(%esi),%edx
58a4f9:	81 c7 7c 02 00 00    	add    $0x27c,%edi
58a4ff:	85 d2                	test   %edx,%edx
58a501:	0f 84 8d 01 00 00    	je     0x58a694
58a507:	83 7a 04 00          	cmpl   $0x0,0x4(%edx)
58a50b:	75 10                	jne    0x58a51d
58a50d:	83 7a 08 00          	cmpl   $0x0,0x8(%edx)
58a511:	75 0a                	jne    0x58a51d
58a513:	83 7a 0c 00          	cmpl   $0x0,0xc(%edx)
58a517:	75 04                	jne    0x58a51d
58a519:	33 c0                	xor    %eax,%eax
58a51b:	eb 05                	jmp    0x58a522
58a51d:	b8 01 00 00 00       	mov    $0x1,%eax
58a522:	8b 4f 08             	mov    0x8(%edi),%ecx
58a525:	83 e1 01             	and    $0x1,%ecx
58a528:	89 4c 24 08          	mov    %ecx,0x8(%esp)
58a52c:	8b 4f 0c             	mov    0xc(%edi),%ecx
58a52f:	83 e1 01             	and    $0x1,%ecx
58a532:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
58a536:	33 c9                	xor    %ecx,%ecx
58a538:	f6 07 01             	testb  $0x1,(%edi)
58a53b:	53                   	push   %ebx
58a53c:	55                   	push   %ebp
58a53d:	74 0e                	je     0x58a54d
58a53f:	8d 2c 45 01 00 00 00 	lea    0x1(,%eax,2),%ebp
58a546:	b9 01 00 00 00       	mov    $0x1,%ecx
58a54b:	eb 48                	jmp    0x58a595
58a54d:	8d 1c 00             	lea    (%eax,%eax,1),%ebx
58a550:	39 4a 28             	cmp    %ecx,0x28(%edx)
58a553:	74 3a                	je     0x58a58f
58a555:	39 4a 2c             	cmp    %ecx,0x2c(%edx)
58a558:	74 35                	je     0x58a58f
58a55a:	f7 47 04 00 01 00 00 	testl  $0x100,0x4(%edi)
58a561:	8b eb                	mov    %ebx,%ebp
58a563:	74 30                	je     0x58a595
58a565:	8b 0e                	mov    (%esi),%ecx
58a567:	8b c1                	mov    %ecx,%eax
58a569:	25 00 ff ff ff       	and    $0xffffff00,%eax
58a56e:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
58a575:	00
58a576:	3d 00 03 00 00       	cmp    $0x300,%eax
58a57b:	0f 45 4c 24 1c       	cmovne 0x1c(%esp),%ecx
58a580:	81 f9 03 03 00 00    	cmp    $0x303,%ecx
58a586:	75 0b                	jne    0x58a593
58a588:	b9 01 00 00 00       	mov    $0x1,%ecx
58a58d:	eb 06                	jmp    0x58a595
58a58f:	8b eb                	mov    %ebx,%ebp
58a591:	eb 02                	jmp    0x58a595
58a593:	33 c9                	xor    %ecx,%ecx
58a595:	8b d9                	mov    %ecx,%ebx
58a597:	83 cb 02             	or     $0x2,%ebx
58a59a:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
58a59f:	0f 44 d9             	cmove  %ecx,%ebx
58a5a2:	83 cb 04             	or     $0x4,%ebx
58a5a5:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
58a5aa:	74 23                	je     0x58a5cf
58a5ac:	ff 72 50             	push   0x50(%edx)
58a5af:	e8 0c 20 fd ff       	call   0x55c5c0
58a5b4:	25 80 00 00 00       	and    $0x80,%eax