595257:	f6 40 30 08          	testb  $0x8,0x30(%eax)
59525b:	75 10                	jne    0x59526d
59525d:	8b 01                	mov    (%ecx),%eax
59525f:	3d 04 03 00 00       	cmp    $0x304,%eax
595264:	7c 07                	jl     0x59526d
595266:	3d 00 00 01 00       	cmp    $0x10000,%eax
59526b:	75 0b                	jne    0x595278
59526d:	6a 02                	push   $0x2
59526f:	56                   	push   %esi
595270:	e8 4b 54 ff ff       	call   0x58a6c0
595275:	83 c4 08             	add    $0x8,%esp
595278:	8b 86 d0 04 00 00    	mov    0x4d0(%esi),%eax
59527e:	b9 01 00 00 00       	mov    $0x1,%ecx
595283:	83 c0 4c             	add    $0x4c,%eax
595286:	f0 0f c1 08          	lock xadd %ecx,(%eax)
59528a:	c7 46 18 60 f0 58 00 	movl   $0x58f060,0x18(%esi)
595291:	eb 6f                	jmp    0x595302
595293:	f6 40 30 08          	testb  $0x8,0x30(%eax)
595297:	75 2a                	jne    0x5952c3
595299:	8b 01                	mov    (%ecx),%eax
59529b:	3d 04 03 00 00       	cmp    $0x304,%eax
5952a0:	7c 21                	jl     0x5952c3
5952a2:	3d 00 00 01 00       	cmp    $0x10000,%eax
5952a7:	74 1a                	je     0x5952c3
5952a9:	8b 86 e0 05 00 00    	mov    0x5e0(%esi),%eax
5952af:	f6 40 24 01          	testb  $0x1,0x24(%eax)
5952b3:	74 19                	je     0x5952ce
5952b5:	ff b6 74 04 00 00    	push   0x474(%esi)
5952bb:	50                   	push   %eax
5952bc:	e8 6f ac ff ff       	call   0x58ff30
5952c1:	eb 08                	jmp    0x5952cb
5952c3:	6a 01                	push   $0x1
5952c5:	56                   	push   %esi
5952c6:	e8 f5 53 ff ff       	call   0x58a6c0
5952cb:	83 c4 08             	add    $0x8,%esp
5952ce:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
5952d5:	74 12                	je     0x5952e9
5952d7:	8b 86 e0 05 00 00    	mov    0x5e0(%esi),%eax
5952dd:	b9 01 00 00 00       	mov    $0x1,%ecx
5952e2:	83 c0 5c             	add    $0x5c,%eax
5952e5:	f0 0f c1 08          	lock xadd %ecx,(%eax)
5952e9:	8b 86 e0 05 00 00    	mov    0x5e0(%esi),%eax
5952ef:	b9 01 00 00 00       	mov    $0x1,%ecx
5952f4:	c7 46 18 e0 f0 58 00 	movl   $0x58f0e0,0x18(%esi)
5952fb:	83 c0 40             	add    $0x40,%eax
5952fe:	f0 0f c1 08          	lock xadd %ecx,(%eax)
595302:	8b 46 04             	mov    0x4(%esi),%eax
595305:	8b 40 64             	mov    0x64(%eax),%eax
595308:	f6 40 30 08          	testb  $0x8,0x30(%eax)
59530c:	74 32                	je     0x595340
59530e:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
595314:	33 c9                	xor    %ecx,%ecx
595316:	56                   	push   %esi
595317:	66 89 88 0c 01 00 00 	mov    %cx,0x10c(%eax)
59531e:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
595324:	66 89 88 08 01 00 00 	mov    %cx,0x108(%eax)
59532b:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
595331:	66 89 88 0a 01 00 00 	mov    %cx,0x10a(%eax)
595338:	e8 53 29 01 00       	call   0x5a7c90
59533d:	83 c4 04             	add    $0x4,%esp
595340:	57                   	push   %edi
595341:	8b be b4 04 00 00    	mov    0x4b4(%esi),%edi
595347:	85 ff                	test   %edi,%edi
595349:	75 10                	jne    0x59535b
59534b:	8b 86 d0 04 00 00    	mov    0x4d0(%esi),%eax
595351:	8b b8 a0 00 00 00    	mov    0xa0(%eax),%edi
595357:	85 ff                	test   %edi,%edi
595359:	74 4c                	je     0x5953a7
59535b:	8b c6                	mov    %esi,%eax
59535d:	6a 00                	push   $0x0
59535f:	50                   	push   %eax
595360:	e8 3b 9e ff ff       	call   0x58f1a0
595365:	83 c4 08             	add    $0x8,%esp
595368:	85 db                	test   %ebx,%ebx
59536a:	75 2f                	jne    0x59539b
59536c:	8b 4e 04             	mov    0x4(%esi),%ecx
59536f:	8b 41 64             	mov    0x64(%ecx),%eax
595372:	f6 40 30 08          	testb  $0x8,0x30(%eax)
595376:	75 23                	jne    0x59539b
595378:	8b 01                	mov    (%ecx),%eax
59537a:	3d 04 03 00 00       	cmp    $0x304,%eax
59537f:	7c 1a                	jl     0x59539b
595381:	3d 00 00 01 00       	cmp    $0x10000,%eax
595386:	74 13                	je     0x59539b
595388:	8b 46 7c             	mov    0x7c(%esi),%eax
59538b:	39 98 80 01 00 00    	cmp    %ebx,0x180(%eax)
595391:	74 08                	je     0x59539b
595393:	39 98 04 02 00 00    	cmp    %ebx,0x204(%eax)
595399:	75 17                	jne    0x5953b2
59539b:	6a 01                	push   $0x1
59539d:	6a 20                	push   $0x20
59539f:	56                   	push   %esi
5953a0:	ff d7                	call   *%edi
5953a2:	83 c4 0c             	add    $0xc,%esp
5953a5:	eb 0b                	jmp    0x5953b2
5953a7:	6a 00                	push   $0x0
5953a9:	56                   	push   %esi
5953aa:	e8 f1 9d ff ff       	call   0x58f1a0
5953af:	83 c4 08             	add    $0x8,%esp
5953b2:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
5953b7:	5f                   	pop    %edi
5953b8:	75 13                	jne    0x5953cd
5953ba:	6a 01                	push   $0x1
5953bc:	56                   	push   %esi
5953bd:	e8 de 9d ff ff       	call   0x58f1a0
5953c2:	83 c4 08             	add    $0x8,%esp
5953c5:	b8 02 00 00 00       	mov    $0x2,%eax
5953ca:	5e                   	pop    %esi
5953cb:	5b                   	pop    %ebx
5953cc:	c3                   	ret
5953cd:	5e                   	pop    %esi
5953ce:	b8 01 00 00 00       	mov    $0x1,%eax
5953d3:	5b                   	pop    %ebx
5953d4:	c3                   	ret
5953d5:	cc                   	int3
5953d6:	cc                   	int3
5953d7:	cc                   	int3
5953d8:	cc                   	int3
5953d9:	cc                   	int3
5953da:	cc                   	int3
5953db:	cc                   	int3
5953dc:	cc                   	int3
5953dd:	cc                   	int3
5953de:	cc                   	int3
5953df:	cc                   	int3
5953e0:	56                   	push   %esi
5953e1:	8b 74 24 08          	mov    0x8(%esp),%esi
5953e5:	57                   	push   %edi
5953e6:	8b 7e 7c             	mov    0x7c(%esi),%edi
5953e9:	81 bf 0c 02 00 00 01 	cmpl   $0x101,0x20c(%edi)
5953f0:	01 00 00
5953f3:	75 11                	jne    0x595406
5953f5:	8b 44 24 10          	mov    0x10(%esp),%eax
5953f9:	8b 4e 74             	mov    0x74(%esi),%ecx
5953fc:	5f                   	pop    %edi
5953fd:	5e                   	pop    %esi
5953fe:	89 08                	mov    %ecx,(%eax)
595400:	b8 01 00 00 00       	mov    $0x1,%eax
595405:	c3                   	ret
595406:	8b bf 08 02 00 00    	mov    0x208(%edi),%edi
59540c:	8b 56 74             	mov    0x74(%esi),%edx
59540f:	53                   	push   %ebx
595410:	8b 5e 70             	mov    0x70(%esi),%ebx
595413:	2b fa                	sub    %edx,%edi
595415:	74 2e                	je     0x595445
595417:	8b 4e 04             	mov    0x4(%esi),%ecx
59541a:	8d 44 24 10          	lea    0x10(%esp),%eax
59541e:	50                   	push   %eax
59541f:	6a 00                	push   $0x0
595421:	57                   	push   %edi
595422:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
595425:	50                   	push   %eax
595426:	8b 41 38             	mov    0x38(%ecx),%eax
595429:	6a 00                	push   $0x0
59542b:	6a 16                	push   $0x16
59542d:	56                   	push   %esi
59542e:	ff d0                	call   *%eax
595430:	83 c4 1c             	add    $0x1c,%esp
595433:	85 c0                	test   %eax,%eax
595435:	7e 2d                	jle    0x595464
595437:	8b 44 24 10          	mov    0x10(%esp),%eax
59543b:	01 46 74             	add    %eax,0x74(%esi)
59543e:	8b 56 74             	mov    0x74(%esi),%edx
595441:	2b f8                	sub    %eax,%edi
595443:	75 d2                	jne    0x595417
595445:	8b 46 6c             	mov    0x6c(%esi),%eax
595448:	8b 40 04             	mov    0x4(%eax),%eax
59544b:	80 38 14             	cmpb   $0x14,(%eax)
59544e:	75 5a                	jne    0x5954aa
595450:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
595454:	8b 46 04             	mov    0x4(%esi),%eax
595457:	8b 48 64             	mov    0x64(%eax),%ecx
59545a:	75 1f                	jne    0x59547b
59545c:	8b 51 20             	mov    0x20(%ecx),%edx
59545f:	8b 79 24             	mov    0x24(%ecx),%edi
595462:	eb 1d                	jmp    0x595481
595464:	c7 46 14 03 00 00 00 	movl   $0x3,0x14(%esi)
59546b:	8b 44 24 14          	mov    0x14(%esp),%eax
59546f:	5b                   	pop    %ebx
595470:	5f                   	pop    %edi
595471:	5e                   	pop    %esi
595472:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
595478:	33 c0                	xor    %eax,%eax
59547a:	c3                   	ret
59547b:	8b 51 18             	mov    0x18(%ecx),%edx
59547e:	8b 79 1c             	mov    0x1c(%ecx),%edi
595481:	8b 46 7c             	mov    0x7c(%esi),%eax
595484:	05 84 01 00 00       	add    $0x184,%eax
595489:	50                   	push   %eax
59548a:	8b 41 14             	mov    0x14(%ecx),%eax
59548d:	57                   	push   %edi
59548e:	52                   	push   %edx
59548f:	56                   	push   %esi
595490:	ff d0                	call   *%eax
595492:	8b 4e 7c             	mov    0x7c(%esi),%ecx
595495:	83 c4 10             	add    $0x10,%esp
595498:	89 81 04 02 00 00    	mov    %eax,0x204(%ecx)
59549e:	8b 46 7c             	mov    0x7c(%esi),%eax
5954a1:	83 b8 04 02 00 00 00 	cmpl   $0x0,0x204(%eax)
5954a8:	74 c1                	je     0x59546b
5954aa:	8d 86 50 06 00 00    	lea    0x650(%esi),%eax
5954b0:	50                   	push   %eax
5954b1:	e8 ca be ff ff       	call   0x591380
5954b6:	83 c4 04             	add    $0x4,%esp
5954b9:	85 c0                	test   %eax,%eax
5954bb:	74 3d                	je     0x5954fa
5954bd:	8b 46 6c             	mov    0x6c(%esi),%eax
5954c0:	ff 76 74             	push   0x74(%esi)
5954c3:	ff 70 04             	push   0x4(%eax)
5954c6:	56                   	push   %esi
5954c7:	e8 a4 df 00 00       	call   0x5a3470
5954cc:	83 c4 0c             	add    $0xc,%esp
5954cf:	85 c0                	test   %eax,%eax
5954d1:	74 98                	je     0x59546b
5954d3:	8b 8e 84 00 00 00    	mov    0x84(%esi),%ecx
5954d9:	85 c9                	test   %ecx,%ecx
5954db:	0f 84 c9 00 00 00    	je     0x5955aa
5954e1:	ff b6 88 00 00 00    	push   0x88(%esi)
5954e7:	8b 46 6c             	mov    0x6c(%esi),%eax
5954ea:	56                   	push   %esi
5954eb:	ff 76 74             	push   0x74(%esi)
5954ee:	ff 70 04             	push   0x4(%eax)
5954f1:	6a 00                	push   $0x0
5954f3:	6a 02                	push   $0x2
5954f5:	e9 a9 00 00 00       	jmp    0x5955a3
5954fa:	8b 4e 04             	mov    0x4(%esi),%ecx
5954fd:	8b 41 64             	mov    0x64(%ecx),%eax
595500:	f6 40 30 08          	testb  $0x8,0x30(%eax)
595504:	75 23                	jne    0x595529
595506:	8b 01                	mov    (%ecx),%eax
595508:	3d 04 03 00 00       	cmp    $0x304,%eax
59550d:	7c 1a                	jl     0x595529
59550f:	3d 00 00 01 00       	cmp    $0x10000,%eax
595514:	74 13                	je     0x595529
595516:	8b 46 7c             	mov    0x7c(%esi),%eax
595519:	8b 80 0c 02 00 00    	mov    0x20c(%eax),%eax
59551f:	83 f8 04             	cmp    $0x4,%eax
595522:	74 5d                	je     0x595581
595524:	83 f8 18             	cmp    $0x18,%eax
595527:	74 58                	je     0x595581
595529:	8b 46 7c             	mov    0x7c(%esi),%eax
59552c:	83 b8 0c 02 00 00 02 	cmpl   $0x2,0x20c(%eax)
595533:	75 2e                	jne    0x595563
595535:	83 7e 74 26          	cmpl   $0x26,0x74(%esi)
595539:	72 28                	jb     0x595563
59553b:	8b 46 6c             	mov    0x6c(%esi),%eax
59553e:	ba c0 71 66 00       	mov    $0x6671c0,%edx
595543:	bf 1c 00 00 00       	mov    $0x1c,%edi
595548:	8b 48 04             	mov    0x4(%eax),%ecx
59554b:	83 c1 06             	add    $0x6,%ecx
59554e:	66 90                	xchg   %ax,%ax
595550:	8b 02                	mov    (%edx),%eax
595552:	3b 01                	cmp    (%ecx),%eax
595554:	75 0d                	jne    0x595563
595556:	83 c2 04             	add    $0x4,%edx
595559:	83 c1 04             	add    $0x4,%ecx
59555c:	83 ef 04             	sub    $0x4,%edi
59555f:	73 ef                	jae    0x595550
595561:	eb 1e                	jmp    0x595581
595563:	8b 46 74             	mov    0x74(%esi),%eax
595566:	83 c0 04             	add    $0x4,%eax
595569:	50                   	push   %eax
59556a:	8b 46 6c             	mov    0x6c(%esi),%eax
59556d:	ff 70 04             	push   0x4(%eax)
595570:	56                   	push   %esi
595571:	e8 fa de 00 00       	call   0x5a3470
595576:	83 c4 0c             	add    $0xc,%esp
595579:	85 c0                	test   %eax,%eax
59557b:	0f 84 ea fe ff ff    	je     0x59546b
595581:	8b 8e 84 00 00 00    	mov    0x84(%esi),%ecx
595587:	85 c9                	test   %ecx,%ecx
595589:	74 1f                	je     0x5955aa
59558b:	ff b6 88 00 00 00    	push   0x88(%esi)
595591:	8b 46 74             	mov    0x74(%esi),%eax
595594:	56                   	push   %esi
595595:	83 c0 04             	add    $0x4,%eax
595598:	50                   	push   %eax
595599:	8b 46 6c             	mov    0x6c(%esi),%eax
59559c:	ff 70 04             	push   0x4(%eax)
59559f:	6a 16                	push   $0x16
5955a1:	ff 36                	push   (%esi)
5955a3:	6a 00                	push   $0x0
5955a5:	ff d1                	call   *%ecx
5955a7:	83 c4 1c             	add    $0x1c,%esp
5955aa:	8b 44 24 14          	mov    0x14(%esp),%eax
5955ae:	8b 4e 74             	mov    0x74(%esi),%ecx
5955b1:	5b                   	pop    %ebx
5955b2:	5f                   	pop    %edi
5955b3:	89 08                	mov    %ecx,(%eax)
5955b5:	b8 01 00 00 00       	mov    $0x1,%eax
5955ba:	5e                   	pop    %esi
5955bb:	c3                   	ret
5955bc:	cc                   	int3
5955bd:	cc                   	int3
5955be:	cc                   	int3
5955bf:	cc                   	int3
5955c0:	b8 04 00 00 00       	mov    $0x4,%eax
5955c5:	e8 e6 c1 03 00       	call   0x5d17b0
5955ca:	56                   	push   %esi
5955cb:	8b 74 24 0c          	mov    0xc(%esp),%esi
5955cf:	57                   	push   %edi
5955d0:	8b 46 6c             	mov    0x6c(%esi),%eax
5955d3:	8b 78 04             	mov    0x4(%eax),%edi
5955d6:	8b 56 74             	mov    0x74(%esi),%edx
5955d9:	83 fa 04             	cmp    $0x4,%edx
5955dc:	73 51                	jae    0x59562f
5955de:	66 90                	xchg   %ax,%ax
5955e0:	8b 4e 04             	mov    0x4(%esi),%ecx
5955e3:	8d 44 24 10          	lea    0x10(%esp),%eax
5955e7:	50                   	push   %eax
5955e8:	6a 00                	push   $0x0
5955ea:	b8 04 00 00 00       	mov    $0x4,%eax
5955ef:	2b c2                	sub    %edx,%eax
5955f1:	50                   	push   %eax
5955f2:	8d 04 3a             	lea    (%edx,%edi,1),%eax
5955f5:	50                   	push   %eax
5955f6:	8d 44 24 18          	lea    0x18(%esp),%eax
5955fa:	50                   	push   %eax
5955fb:	8b 41 38             	mov    0x38(%ecx),%eax
5955fe:	6a 16                	push   $0x16
595600:	56                   	push   %esi
595601:	ff d0                	call   *%eax
595603:	83 c4 1c             	add    $0x1c,%esp
595606:	85 c0                	test   %eax,%eax
595608:	0f 8e 1d 01 00 00    	jle    0x59572b
59560e:	8b 44 24 08          	mov    0x8(%esp),%eax
595612:	83 f8 14             	cmp    $0x14,%eax
595615:	0f 84 8f 00 00 00    	je     0x5956aa
59561b:	83 f8 16             	cmp    $0x16,%eax
59561e:	75 79                	jne    0x595699
595620:	8b 56 74             	mov    0x74(%esi),%edx
595623:	03 54 24 10          	add    0x10(%esp),%edx
595627:	89 56 74             	mov    %edx,0x74(%esi)
59562a:	83 fa 04             	cmp    $0x4,%edx
59562d:	72 b1                	jb     0x5955e0
59562f:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
595633:	0f 85 ff 00 00 00    	jne    0x595738
595639:	83 7e 40 01          	cmpl   $0x1,0x40(%esi)
59563d:	0f 84 f5 00 00 00    	je     0x595738
595643:	80 3f 00             	cmpb   $0x0,(%edi)
595646:	0f 85 ec 00 00 00    	jne    0x595738
59564c:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
595650:	0f 85 e2 00 00 00    	jne    0x595738
595656:	80 7f 02 00          	cmpb   $0x0,0x2(%edi)
59565a:	0f 85 d8 00 00 00    	jne    0x595738
595660:	80 7f 03 00          	cmpb   $0x0,0x3(%edi)
595664:	0f 85 ce 00 00 00    	jne    0x595738
59566a:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
595670:	c7 46 74 00 00 00 00 	movl   $0x0,0x74(%esi)
595677:	85 c0                	test   %eax,%eax