599151:	8b 80 d4 00 00 00    	mov    0xd4(%eax),%eax
599157:	33 ff                	xor    %edi,%edi
599159:	89 44 24 30          	mov    %eax,0x30(%esp)
59915d:	85 c0                	test   %eax,%eax
59915f:	74 43                	je     0x5991a4
599161:	0f b7 12             	movzwl (%edx),%edx
599164:	33 c9                	xor    %ecx,%ecx
599166:	b8 b8 76 66 00       	mov    $0x6676b8,%eax
59916b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
599170:	66 39 50 04          	cmp    %dx,0x4(%eax)
599174:	74 0b                	je     0x599181
599176:	41                   	inc    %ecx
599177:	83 c0 20             	add    $0x20,%eax
59917a:	83 f9 17             	cmp    $0x17,%ecx
59917d:	72 f1                	jb     0x599170
59917f:	eb 0f                	jmp    0x599190
599181:	83 78 08 40          	cmpl   $0x40,0x8(%eax)
599185:	75 09                	jne    0x599190
599187:	8b 4c 24 18          	mov    0x18(%esp),%ecx
59918b:	39 48 10             	cmp    %ecx,0x10(%eax)
59918e:	74 36                	je     0x5991c6
599190:	8b 54 24 28          	mov    0x28(%esp),%edx
599194:	47                   	inc    %edi
599195:	8b 44 24 30          	mov    0x30(%esp),%eax
599199:	83 c2 02             	add    $0x2,%edx
59919c:	89 54 24 28          	mov    %edx,0x28(%esp)
5991a0:	3b f8                	cmp    %eax,%edi
5991a2:	72 bd                	jb     0x599161
5991a4:	3b f8                	cmp    %eax,%edi
5991a6:	75 1e                	jne    0x5991c6
5991a8:	85 db                	test   %ebx,%ebx
5991aa:	0f 85 c0 00 00 00    	jne    0x599270
5991b0:	e9 b1 fd ff ff       	jmp    0x598f66
5991b5:	83 cf ff             	or     $0xffffffff,%edi
5991b8:	89 7c 24 48          	mov    %edi,0x48(%esp)
5991bc:	eb 0c                	jmp    0x5991ca
5991be:	33 ff                	xor    %edi,%edi
5991c0:	89 7c 24 48          	mov    %edi,0x48(%esp)
5991c4:	eb 04                	jmp    0x5991ca
5991c6:	8b 7c 24 48          	mov    0x48(%esp),%edi
5991ca:	8b 54 24 38          	mov    0x38(%esp),%edx
5991ce:	8b 4a 04             	mov    0x4(%edx),%ecx
5991d1:	8b 41 64             	mov    0x64(%ecx),%eax
5991d4:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5991d8:	75 66                	jne    0x599240
5991da:	8b 01                	mov    (%ecx),%eax
5991dc:	3d 04 03 00 00       	cmp    $0x304,%eax
5991e1:	7c 5d                	jl     0x599240
5991e3:	3d 00 00 01 00       	cmp    $0x10000,%eax
5991e8:	74 56                	je     0x599240
5991ea:	ff 74 24 20          	push   0x20(%esp)
5991ee:	ff 74 24 20          	push   0x20(%esp)
5991f2:	52                   	push   %edx
5991f3:	e8 08 e6 ff ff       	call   0x597800
5991f8:	83 c4 0c             	add    $0xc,%esp
5991fb:	85 c0                	test   %eax,%eax
5991fd:	74 03                	je     0x599202
5991ff:	83 ce 10             	or     $0x10,%esi
599202:	55                   	push   %ebp
599203:	83 ce 20             	or     $0x20,%esi
599206:	33 ff                	xor    %edi,%edi
599208:	e8 b3 be f4 ff       	call   0x4e50c0
59920d:	83 c4 04             	add    $0x4,%esp
599210:	85 c0                	test   %eax,%eax
599212:	7e 5c                	jle    0x599270
599214:	57                   	push   %edi
599215:	55                   	push   %ebp
599216:	e8 65 c0 f4 ff       	call   0x4e5280
59921b:	ff 74 24 50          	push   0x50(%esp)
59921f:	50                   	push   %eax
599220:	ff 74 24 48          	push   0x48(%esp)
599224:	e8 37 06 00 00       	call   0x599860
599229:	83 c4 14             	add    $0x14,%esp
59922c:	85 c0                	test   %eax,%eax
59922e:	74 2c                	je     0x59925c
599230:	55                   	push   %ebp
599231:	47                   	inc    %edi
599232:	e8 89 be f4 ff       	call   0x4e50c0
599237:	83 c4 04             	add    $0x4,%esp
59923a:	3b f8                	cmp    %eax,%edi
59923c:	7c d6                	jl     0x599214
59923e:	eb 30                	jmp    0x599270
599240:	57                   	push   %edi
599241:	ff 74 24 20          	push   0x20(%esp)
599245:	52                   	push   %edx
599246:	e8 15 06 00 00       	call   0x599860
59924b:	83 c4 0c             	add    $0xc,%esp
59924e:	85 c0                	test   %eax,%eax
599250:	75 ad                	jne    0x5991ff
599252:	85 db                	test   %ebx,%ebx
599254:	0f 84 0c fd ff ff    	je     0x598f66
59925a:	eb a6                	jmp    0x599202
59925c:	85 db                	test   %ebx,%ebx
59925e:	0f 84 02 fd ff ff    	je     0x598f66
599264:	83 e6 df             	and    $0xffffffdf,%esi
599267:	eb 07                	jmp    0x599270
599269:	85 db                	test   %ebx,%ebx
59926b:	74 03                	je     0x599270
59926d:	83 ce 30             	or     $0x30,%esi
599270:	6a 01                	push   $0x1
599272:	ff 74 24 20          	push   0x20(%esp)
599276:	ff 74 24 40          	push   0x40(%esp)
59927a:	e8 81 fb ff ff       	call   0x598e00
59927f:	83 c4 0c             	add    $0xc,%esp
599282:	85 c0                	test   %eax,%eax
599284:	74 05                	je     0x59928b
599286:	83 ce 40             	or     $0x40,%esi
599289:	eb 08                	jmp    0x599293
59928b:	85 db                	test   %ebx,%ebx
59928d:	0f 84 d3 fc ff ff    	je     0x598f66
599293:	8b 44 24 38          	mov    0x38(%esp),%eax
599297:	8b 4c 24 10          	mov    0x10(%esp),%ecx
59929b:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
59929f:	75 08                	jne    0x5992a9
5992a1:	81 ce 80 00 00 00    	or     $0x80,%esi
5992a7:	eb 59                	jmp    0x599302
5992a9:	85 c9                	test   %ecx,%ecx
5992ab:	74 55                	je     0x599302
5992ad:	55                   	push   %ebp
5992ae:	81 ce 80 00 00 00    	or     $0x80,%esi
5992b4:	33 ff                	xor    %edi,%edi
5992b6:	e8 05 be f4 ff       	call   0x4e50c0
5992bb:	83 c4 04             	add    $0x4,%esp
5992be:	85 c0                	test   %eax,%eax
5992c0:	7e 38                	jle    0x5992fa
5992c2:	57                   	push   %edi
5992c3:	55                   	push   %ebp
5992c4:	e8 b7 bf f4 ff       	call   0x4e5280
5992c9:	6a 00                	push   $0x0
5992cb:	50                   	push   %eax
5992cc:	ff 74 24 48          	push   0x48(%esp)
5992d0:	e8 2b fb ff ff       	call   0x598e00
5992d5:	83 c4 14             	add    $0x14,%esp
5992d8:	85 c0                	test   %eax,%eax
5992da:	74 10                	je     0x5992ec
5992dc:	55                   	push   %ebp
5992dd:	47                   	inc    %edi
5992de:	e8 dd bd f4 ff       	call   0x4e50c0
5992e3:	83 c4 04             	add    $0x4,%esp
5992e6:	3b f8                	cmp    %eax,%edi
5992e8:	7c d8                	jl     0x5992c2
5992ea:	eb 0e                	jmp    0x5992fa
5992ec:	85 db                	test   %ebx,%ebx
5992ee:	0f 84 72 fc ff ff    	je     0x598f66
5992f4:	81 e6 7f ff ff ff    	and    $0xffffff7f,%esi
5992fa:	8b 44 24 38          	mov    0x38(%esp),%eax
5992fe:	8b 4c 24 10          	mov    0x10(%esp),%ecx
599302:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
599306:	0f 85 1f 01 00 00    	jne    0x59942b
59930c:	85 c9                	test   %ecx,%ecx
59930e:	0f 84 17 01 00 00    	je     0x59942b
599314:	ff 74 24 20          	push   0x20(%esp)
599318:	e8 a3 6d f5 ff       	call   0x4f00c0
59931d:	83 c4 04             	add    $0x4,%esp
599320:	83 f8 06             	cmp    $0x6,%eax
599323:	74 22                	je     0x599347
599325:	83 f8 74             	cmp    $0x74,%eax
599328:	74 16                	je     0x599340
59932a:	3d 98 01 00 00       	cmp    $0x198,%eax
59932f:	75 07                	jne    0x599338
599331:	bf 40 00 00 00       	mov    $0x40,%edi
599336:	eb 14                	jmp    0x59934c
599338:	81 ce 00 04 00 00    	or     $0x400,%esi
59933e:	eb 4e                	jmp    0x59938e
599340:	bf 02 00 00 00       	mov    $0x2,%edi
599345:	eb 05                	jmp    0x59934c
599347:	bf 01 00 00 00       	mov    $0x1,%edi
59934c:	8b 44 24 38          	mov    0x38(%esp),%eax
599350:	33 d2                	xor    %edx,%edx
599352:	8b 40 7c             	mov    0x7c(%eax),%eax
599355:	8b 98 20 02 00 00    	mov    0x220(%eax),%ebx
59935b:	8b 88 1c 02 00 00    	mov    0x21c(%eax),%ecx
599361:	85 db                	test   %ebx,%ebx
599363:	74 15                	je     0x59937a
599365:	0f b6 01             	movzbl (%ecx),%eax
599368:	3b c7                	cmp    %edi,%eax
59936a:	74 08                	je     0x599374
59936c:	42                   	inc    %edx
59936d:	41                   	inc    %ecx
59936e:	3b d3                	cmp    %ebx,%edx
599370:	72 f3                	jb     0x599365
599372:	eb 06                	jmp    0x59937a
599374:	81 ce 00 04 00 00    	or     $0x400,%esi
59937a:	f7 c6 00 04 00 00    	test   $0x400,%esi
599380:	75 0c                	jne    0x59938e
599382:	8b 5c 24 14          	mov    0x14(%esp),%ebx
599386:	85 db                	test   %ebx,%ebx
599388:	0f 84 d8 fb ff ff    	je     0x598f66
59938e:	8b 44 24 38          	mov    0x38(%esp),%eax
599392:	8b 40 7c             	mov    0x7c(%eax),%eax
599395:	8b 98 24 02 00 00    	mov    0x224(%eax),%ebx
59939b:	53                   	push   %ebx
59939c:	e8 1f bd f4 ff       	call   0x4e50c0
5993a1:	83 c4 04             	add    $0x4,%esp
5993a4:	85 c0                	test   %eax,%eax
5993a6:	75 06                	jne    0x5993ae
5993a8:	81 ce 00 02 00 00    	or     $0x200,%esi
5993ae:	f7 c6 00 02 00 00    	test   $0x200,%esi
5993b4:	75 59                	jne    0x59940f
5993b6:	ff 74 24 1c          	push   0x1c(%esp)
5993ba:	53                   	push   %ebx
5993bb:	e8 80 ea ff ff       	call   0x597e40
5993c0:	83 c4 08             	add    $0x8,%esp
5993c3:	85 c0                	test   %eax,%eax
5993c5:	74 06                	je     0x5993cd
5993c7:	81 ce 00 02 00 00    	or     $0x200,%esi
5993cd:	f7 c6 00 02 00 00    	test   $0x200,%esi
5993d3:	75 3a                	jne    0x59940f
5993d5:	55                   	push   %ebp
5993d6:	33 ff                	xor    %edi,%edi
5993d8:	e8 e3 bc f4 ff       	call   0x4e50c0
5993dd:	83 c4 04             	add    $0x4,%esp
5993e0:	85 c0                	test   %eax,%eax
5993e2:	7e 2b                	jle    0x59940f
5993e4:	57                   	push   %edi
5993e5:	55                   	push   %ebp
5993e6:	e8 95 be f4 ff       	call   0x4e5280
5993eb:	50                   	push   %eax
5993ec:	53                   	push   %ebx
5993ed:	e8 4e ea ff ff       	call   0x597e40
5993f2:	83 c4 10             	add    $0x10,%esp
5993f5:	85 c0                	test   %eax,%eax
5993f7:	75 10                	jne    0x599409
5993f9:	55                   	push   %ebp
5993fa:	47                   	inc    %edi
5993fb:	e8 c0 bc f4 ff       	call   0x4e50c0
599400:	83 c4 04             	add    $0x4,%esp
599403:	3b f8                	cmp    %eax,%edi
599405:	7c dd                	jl     0x5993e4
599407:	eb 06                	jmp    0x59940f
599409:	81 ce 00 02 00 00    	or     $0x200,%esi
59940f:	8b 5c 24 14          	mov    0x14(%esp),%ebx
599413:	85 db                	test   %ebx,%ebx
599415:	75 1e                	jne    0x599435
599417:	f7 c6 00 02 00 00    	test   $0x200,%esi
59941d:	0f 84 43 fb ff ff    	je     0x598f66
599423:	83 ce 01             	or     $0x1,%esi
599426:	e9 3b fb ff ff       	jmp    0x598f66
59942b:	81 ce 00 06 00 00    	or     $0x600,%esi
599431:	85 db                	test   %ebx,%ebx
599433:	74 0c                	je     0x599441
599435:	8b c3                	mov    %ebx,%eax
599437:	23 c6                	and    %esi,%eax
599439:	3b c3                	cmp    %ebx,%eax
59943b:	0f 85 25 fb ff ff    	jne    0x598f66
599441:	83 ce 01             	or     $0x1,%esi
599444:	e9 1d fb ff ff       	jmp    0x598f66
599449:	8b 4c 24 24          	mov    0x24(%esp),%ecx
59944d:	b8 02 01 00 00       	mov    $0x102,%eax
599452:	0b c6                	or     %esi,%eax
599454:	85 db                	test   %ebx,%ebx
599456:	75 16                	jne    0x59946e
599458:	a8 01                	test   $0x1,%al
59945a:	74 0a                	je     0x599466
59945c:	5f                   	pop    %edi
59945d:	5e                   	pop    %esi
59945e:	5d                   	pop    %ebp
59945f:	89 01                	mov    %eax,(%ecx)
599461:	5b                   	pop    %ebx
599462:	83 c4 24             	add    $0x24,%esp
599465:	c3                   	ret
599466:	81 21 02 01 00 00    	andl   $0x102,(%ecx)
59946c:	33 c0                	xor    %eax,%eax
59946e:	5f                   	pop    %edi
59946f:	5e                   	pop    %esi
599470:	5d                   	pop    %ebp
599471:	5b                   	pop    %ebx
599472:	83 c4 24             	add    $0x24,%esp
599475:	c3                   	ret
599476:	66 90                	xchg   %ax,%ax
599478:	d5 90                	aad    $0x90
59947a:	59                   	pop    %ecx
59947b:	00 b5 91 59 00 e7    	add    %dh,-0x18ffa66f(%ebp)
599481:	90                   	nop
599482:	59                   	pop    %ecx
599483:	00 f9                	add    %bh,%cl
599485:	90                   	nop
599486:	59                   	pop    %ecx
599487:	00 0b                	add    %cl,(%ebx)
599489:	91                   	xchg   %eax,%ecx
59948a:	59                   	pop    %ecx
59948b:	00 1d 91 59 00 2f    	add    %bl,0x2f005991
599491:	91                   	xchg   %eax,%ecx
599492:	59                   	pop    %ecx
599493:	00 cc                	add    %cl,%ah
599495:	cc                   	int3
599496:	cc                   	int3
599497:	cc                   	int3
599498:	cc                   	int3
599499:	cc                   	int3
59949a:	cc                   	int3
59949b:	cc                   	int3
59949c:	cc                   	int3
59949d:	cc                   	int3
59949e:	cc                   	int3
59949f:	cc                   	int3
5994a0:	b8 10 00 00 00       	mov    $0x10,%eax
5994a5:	e8 06 83 03 00       	call   0x5d17b0
5994aa:	56                   	push   %esi
5994ab:	8b 74 24 18          	mov    0x18(%esp),%esi
5994af:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
5994b5:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
5994bc:	0f 85 3f 01 00 00    	jne    0x599601
5994c2:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
5994c6:	75 0f                	jne    0x5994d7
5994c8:	33 c9                	xor    %ecx,%ecx
5994ca:	33 c0                	xor    %eax,%eax
5994cc:	66 85 c9             	test   %cx,%cx
5994cf:	5e                   	pop    %esi
5994d0:	0f 95 c0             	setne  %al
5994d3:	83 c4 10             	add    $0x10,%esp
5994d6:	c3                   	ret
5994d7:	f7 86 ec 04 00 00 00 	testl  $0x400000,0x4ec(%esi)
5994de:	00 40 00
5994e1:	53                   	push   %ebx
5994e2:	57                   	push   %edi
5994e3:	74 2e                	je     0x599513
5994e5:	8d 44 24 20          	lea    0x20(%esp),%eax
5994e9:	50                   	push   %eax
5994ea:	8d 44 24 14          	lea    0x14(%esp),%eax
5994ee:	50                   	push   %eax
5994ef:	56                   	push   %esi
5994f0:	e8 6b 06 00 00       	call   0x599b60
5994f5:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
5994f9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5994fd:	8b 8e 7c 05 00 00    	mov    0x57c(%esi),%ecx
599503:	8b be 78 05 00 00    	mov    0x578(%esi),%edi
599509:	89 5c 24 20          	mov    %ebx,0x20(%esp)
59950d:	89 44 24 18          	mov    %eax,0x18(%esp)
599511:	eb 30                	jmp    0x599543
599513:	8b 86 7c 05 00 00    	mov    0x57c(%esi),%eax
599519:	8b 9e 78 05 00 00    	mov    0x578(%esi),%ebx
59951f:	89 44 24 0c          	mov    %eax,0xc(%esp)
599523:	8d 44 24 20          	lea    0x20(%esp),%eax
599527:	50                   	push   %eax
599528:	8d 44 24 1c          	lea    0x1c(%esp),%eax
59952c:	89 5c 24 18          	mov    %ebx,0x18(%esp)
599530:	50                   	push   %eax
599531:	56                   	push   %esi
599532:	e8 29 06 00 00       	call   0x599b60
599537:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
59953b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
59953f:	8b 44 24 18          	mov    0x18(%esp),%eax
599543:	83 c4 0c             	add    $0xc,%esp
599546:	89 4c 24 18          	mov    %ecx,0x18(%esp)
59954a:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
599551:	00
599552:	55                   	push   %ebp
599553:	33 ed                	xor    %ebp,%ebp
599555:	85 db                	test   %ebx,%ebx