594044:	8d 44 24 24          	lea    0x24(%esp),%eax
594048:	55                   	push   %ebp
594049:	50                   	push   %eax
59404a:	e8 d1 d4 f1 ff       	call   0x4b1520
59404f:	83 c4 0c             	add    $0xc,%esp
594052:	85 c0                	test   %eax,%eax
594054:	0f 84 a8 00 00 00    	je     0x594102
59405a:	8d 44 24 1c          	lea    0x1c(%esp),%eax
59405e:	50                   	push   %eax
59405f:	8d 44 24 3c          	lea    0x3c(%esp),%eax
594063:	50                   	push   %eax
594064:	8d 44 24 28          	lea    0x28(%esp),%eax
594068:	50                   	push   %eax
594069:	e8 b2 d1 f1 ff       	call   0x4b1220
59406e:	83 c4 0c             	add    $0xc,%esp
594071:	85 c0                	test   %eax,%eax
594073:	0f 84 89 00 00 00    	je     0x594102
594079:	8d 44 24 20          	lea    0x20(%esp),%eax
59407d:	50                   	push   %eax
59407e:	e8 dd d3 f1 ff       	call   0x4b1460
594083:	8b 75 00             	mov    0x0(%ebp),%esi
594086:	83 c4 04             	add    $0x4,%esp
594089:	f6 46 0c 04          	testb  $0x4,0xc(%esi)
59408d:	0f 84 8d 00 00 00    	je     0x594120
594093:	57                   	push   %edi
594094:	e8 07 18 f4 ff       	call   0x4d58a0
594099:	53                   	push   %ebx
59409a:	57                   	push   %edi
59409b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
59409f:	e8 dc 35 f3 ff       	call   0x4c7680
5940a4:	8b f0                	mov    %eax,%esi
5940a6:	83 c4 0c             	add    $0xc,%esp
5940a9:	85 f6                	test   %esi,%esi
5940ab:	74 55                	je     0x594102
5940ad:	56                   	push   %esi
5940ae:	e8 6d a1 fd ff       	call   0x56e220
5940b3:	83 c4 04             	add    $0x4,%esp
5940b6:	85 c0                	test   %eax,%eax
5940b8:	7e 48                	jle    0x594102
5940ba:	ff 75 00             	push   0x0(%ebp)
5940bd:	53                   	push   %ebx
5940be:	6a 01                	push   $0x1
5940c0:	68 f8 00 00 00       	push   $0xf8
5940c5:	6a ff                	push   $0xffffffff
5940c7:	56                   	push   %esi
5940c8:	e8 63 33 f3 ff       	call   0x4c7430
5940cd:	83 c4 18             	add    $0x18,%esp
5940d0:	85 c0                	test   %eax,%eax
5940d2:	7e 2e                	jle    0x594102
5940d4:	ff 74 24 1c          	push   0x1c(%esp)
5940d8:	8d 44 24 3c          	lea    0x3c(%esp),%eax
5940dc:	50                   	push   %eax
5940dd:	8d 44 24 18          	lea    0x18(%esp),%eax
5940e1:	50                   	push   %eax
5940e2:	ff 74 24 24          	push   0x24(%esp)
5940e6:	56                   	push   %esi
5940e7:	e8 44 a0 fd ff       	call   0x56e130
5940ec:	83 c4 14             	add    $0x14,%esp
5940ef:	85 c0                	test   %eax,%eax
5940f1:	7e 0f                	jle    0x594102
5940f3:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5940f7:	bb 01 00 00 00       	mov    $0x1,%ebx
5940fc:	8b 44 24 10          	mov    0x10(%esp),%eax
594100:	89 01                	mov    %eax,(%ecx)
594102:	56                   	push   %esi
594103:	e8 18 35 f3 ff       	call   0x4c7620
594108:	83 c4 04             	add    $0x4,%esp
59410b:	8b c3                	mov    %ebx,%eax
59410d:	5f                   	pop    %edi
59410e:	5e                   	pop    %esi
59410f:	5d                   	pop    %ebp
594110:	5b                   	pop    %ebx
594111:	8b 4c 24 68          	mov    0x68(%esp),%ecx
594115:	33 cc                	xor    %esp,%ecx
594117:	e8 be d3 04 00       	call   0x5e14da
59411c:	83 c4 6c             	add    $0x6c,%esp
59411f:	c3                   	ret
594120:	33 c0                	xor    %eax,%eax
594122:	8d 4e 2c             	lea    0x2c(%esi),%ecx
594125:	8b 11                	mov    (%ecx),%edx
594127:	85 d2                	test   %edx,%edx
594129:	74 0d                	je     0x594138
59412b:	39 17                	cmp    %edx,(%edi)
59412d:	74 33                	je     0x594162
59412f:	40                   	inc    %eax
594130:	83 c1 04             	add    $0x4,%ecx
594133:	83 f8 04             	cmp    $0x4,%eax
594136:	7c ed                	jl     0x594125
594138:	6a 7b                	push   $0x7b
59413a:	68 3c 81 6c 00       	push   $0x6c813c
59413f:	6a 6e                	push   $0x6e
594141:	6a 6b                	push   $0x6b
594143:	6a 06                	push   $0x6
594145:	e8 56 d3 f0 ff       	call   0x4a14a0
59414a:	83 c4 14             	add    $0x14,%esp
59414d:	33 c0                	xor    %eax,%eax
59414f:	5f                   	pop    %edi
594150:	5e                   	pop    %esi
594151:	5d                   	pop    %ebp
594152:	5b                   	pop    %ebx
594153:	8b 4c 24 68          	mov    0x68(%esp),%ecx
594157:	33 cc                	xor    %esp,%ecx
594159:	e8 7c d3 04 00       	call   0x5e14da
59415e:	83 c4 6c             	add    $0x6c,%esp
594161:	c3                   	ret
594162:	8b 46 24             	mov    0x24(%esi),%eax
594165:	85 c0                	test   %eax,%eax
594167:	75 2d                	jne    0x594196
594169:	68 80 00 00 00       	push   $0x80
59416e:	68 3c 81 6c 00       	push   $0x6c813c
594173:	6a 68                	push   $0x68
594175:	6a 6b                	push   $0x6b
594177:	6a 06                	push   $0x6
594179:	e8 22 d3 f0 ff       	call   0x4a14a0
59417e:	83 c4 14             	add    $0x14,%esp
594181:	33 c0                	xor    %eax,%eax
594183:	5f                   	pop    %edi
594184:	5e                   	pop    %esi
594185:	5d                   	pop    %ebp
594186:	5b                   	pop    %ebx
594187:	8b 4c 24 68          	mov    0x68(%esp),%ecx
59418b:	33 cc                	xor    %esp,%ecx
59418d:	e8 48 d3 04 00       	call   0x5e14da
594192:	83 c4 6c             	add    $0x6c,%esp
594195:	c3                   	ret
594196:	ff 77 14             	push   0x14(%edi)
594199:	8b 4c 24 18          	mov    0x18(%esp),%ecx
59419d:	51                   	push   %ecx
59419e:	ff 74 24 20          	push   0x20(%esp)
5941a2:	8d 4c 24 44          	lea    0x44(%esp),%ecx
5941a6:	ff 74 24 28          	push   0x28(%esp)
5941aa:	51                   	push   %ecx
5941ab:	ff 36                	push   (%esi)
5941ad:	ff d0                	call   *%eax
5941af:	8b 8c 24 90 00 00 00 	mov    0x90(%esp),%ecx
5941b6:	83 c4 18             	add    $0x18,%esp
5941b9:	5f                   	pop    %edi
5941ba:	5e                   	pop    %esi
5941bb:	5d                   	pop    %ebp
5941bc:	5b                   	pop    %ebx
5941bd:	33 cc                	xor    %esp,%ecx
5941bf:	e8 16 d3 04 00       	call   0x5e14da
5941c4:	83 c4 6c             	add    $0x6c,%esp
5941c7:	c3                   	ret
5941c8:	cc                   	int3
5941c9:	cc                   	int3
5941ca:	cc                   	int3
5941cb:	cc                   	int3
5941cc:	cc                   	int3
5941cd:	cc                   	int3
5941ce:	cc                   	int3
5941cf:	cc                   	int3
5941d0:	b8 08 00 00 00       	mov    $0x8,%eax
5941d5:	e8 16 d3 04 00       	call   0x5e14f0
5941da:	8d 04 24             	lea    (%esp),%eax
5941dd:	50                   	push   %eax
5941de:	e8 e8 46 06 00       	call   0x5f88cb
5941e3:	8b 44 24 10          	mov    0x10(%esp),%eax
5941e7:	83 c4 04             	add    $0x4,%esp
5941ea:	85 c0                	test   %eax,%eax
5941ec:	74 49                	je     0x594237
5941ee:	f6 40 0c 40          	testb  $0x40,0xc(%eax)
5941f2:	75 43                	jne    0x594237
5941f4:	8b 48 04             	mov    0x4(%eax),%ecx
5941f7:	83 f9 17             	cmp    $0x17,%ecx
5941fa:	75 1b                	jne    0x594217
5941fc:	ff 74 24 10          	push   0x10(%esp)
594200:	6a 00                	push   $0x0
594202:	ff 74 24 0c          	push   0xc(%esp)
594206:	ff 74 24 0c          	push   0xc(%esp)
59420a:	50                   	push   %eax
59420b:	e8 30 c2 00 00       	call   0x5a0440
594210:	83 c4 14             	add    $0x14,%esp
594213:	83 c4 08             	add    $0x8,%esp
594216:	c3                   	ret
594217:	83 f9 18             	cmp    $0x18,%ecx
59421a:	75 1b                	jne    0x594237
59421c:	ff 74 24 10          	push   0x10(%esp)
594220:	6a 00                	push   $0x0
594222:	ff 74 24 0c          	push   0xc(%esp)
594226:	ff 74 24 0c          	push   0xc(%esp)
59422a:	50                   	push   %eax
59422b:	e8 a0 c5 00 00       	call   0x5a07d0
594230:	83 c4 14             	add    $0x14,%esp
594233:	83 c4 08             	add    $0x8,%esp
594236:	c3                   	ret
594237:	ff 74 24 10          	push   0x10(%esp)
59423b:	6a 00                	push   $0x0
59423d:	ff 74 24 0c          	push   0xc(%esp)
594241:	ff 74 24 0c          	push   0xc(%esp)
594245:	50                   	push   %eax
594246:	e8 75 fc ff ff       	call   0x593ec0
59424b:	83 c4 14             	add    $0x14,%esp
59424e:	83 c4 08             	add    $0x8,%esp
594251:	c3                   	ret
594252:	cc                   	int3
594253:	cc                   	int3
594254:	cc                   	int3
594255:	cc                   	int3
594256:	cc                   	int3
594257:	cc                   	int3
594258:	cc                   	int3
594259:	cc                   	int3
59425a:	cc                   	int3
59425b:	cc                   	int3
59425c:	cc                   	int3
59425d:	cc                   	int3
59425e:	cc                   	int3
59425f:	cc                   	int3
594260:	56                   	push   %esi
594261:	8b 74 24 0c          	mov    0xc(%esp),%esi
594265:	8b 46 28             	mov    0x28(%esi),%eax
594268:	a8 04                	test   $0x4,%al
59426a:	74 06                	je     0x594272
59426c:	f6 46 30 02          	testb  $0x2,0x30(%esi)
594270:	74 1f                	je     0x594291
594272:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
594277:	74 1c                	je     0x594295
594279:	56                   	push   %esi
59427a:	e8 51 04 00 00       	call   0x5946d0
59427f:	83 c4 04             	add    $0x4,%esp
594282:	85 c0                	test   %eax,%eax
594284:	74 0b                	je     0x594291
594286:	83 f8 05             	cmp    $0x5,%eax
594289:	75 23                	jne    0x5942ae
59428b:	f6 46 34 04          	testb  $0x4,0x34(%esi)
59428f:	75 1d                	jne    0x5942ae
594291:	33 c0                	xor    %eax,%eax
594293:	5e                   	pop    %esi
594294:	c3                   	ret
594295:	a8 02                	test   $0x2,%al
594297:	74 06                	je     0x59429f
594299:	f6 46 2c 88          	testb  $0x88,0x2c(%esi)
59429d:	74 f2                	je     0x594291
59429f:	a8 08                	test   $0x8,%al
5942a1:	74 06                	je     0x5942a9
5942a3:	f6 46 34 80          	testb  $0x80,0x34(%esi)
5942a7:	74 e8                	je     0x594291
5942a9:	b8 01 00 00 00       	mov    $0x1,%eax
5942ae:	5e                   	pop    %esi
5942af:	c3                   	ret
5942b0:	56                   	push   %esi
5942b1:	8b 74 24 0c          	mov    0xc(%esp),%esi
5942b5:	8b 46 28             	mov    0x28(%esi),%eax
5942b8:	a8 04                	test   $0x4,%al
5942ba:	74 06                	je     0x5942c2
5942bc:	f6 46 30 11          	testb  $0x11,0x30(%esi)
5942c0:	74 1f                	je     0x5942e1
5942c2:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
5942c7:	74 1c                	je     0x5942e5
5942c9:	56                   	push   %esi
5942ca:	e8 01 04 00 00       	call   0x5946d0
5942cf:	83 c4 04             	add    $0x4,%esp
5942d2:	85 c0                	test   %eax,%eax
5942d4:	74 0b                	je     0x5942e1
5942d6:	83 f8 05             	cmp    $0x5,%eax
5942d9:	75 23                	jne    0x5942fe
5942db:	f6 46 34 04          	testb  $0x4,0x34(%esi)
5942df:	75 1d                	jne    0x5942fe
5942e1:	33 c0                	xor    %eax,%eax
5942e3:	5e                   	pop    %esi
5942e4:	c3                   	ret
5942e5:	a8 08                	test   $0x8,%al
5942e7:	74 06                	je     0x5942ef
5942e9:	f6 46 34 40          	testb  $0x40,0x34(%esi)
5942ed:	74 f2                	je     0x5942e1
5942ef:	a8 02                	test   $0x2,%al
5942f1:	74 06                	je     0x5942f9
5942f3:	f6 46 2c a8          	testb  $0xa8,0x2c(%esi)
5942f7:	74 e8                	je     0x5942e1
5942f9:	b8 01 00 00 00       	mov    $0x1,%eax
5942fe:	5e                   	pop    %esi
5942ff:	c3                   	ret
594300:	56                   	push   %esi
594301:	8b 74 24 0c          	mov    0xc(%esp),%esi
594305:	8b 46 28             	mov    0x28(%esi),%eax
594308:	a8 04                	test   $0x4,%al
59430a:	74 06                	je     0x594312
59430c:	f6 46 30 11          	testb  $0x11,0x30(%esi)
594310:	74 42                	je     0x594354
594312:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
594317:	74 1c                	je     0x594335
594319:	56                   	push   %esi
59431a:	e8 b1 03 00 00       	call   0x5946d0
59431f:	83 c4 04             	add    $0x4,%esp
594322:	85 c0                	test   %eax,%eax
594324:	74 2e                	je     0x594354
594326:	83 f8 05             	cmp    $0x5,%eax
594329:	75 32                	jne    0x59435d
59432b:	f6 46 34 04          	testb  $0x4,0x34(%esi)
59432f:	75 2c                	jne    0x59435d
594331:	33 c0                	xor    %eax,%eax
594333:	5e                   	pop    %esi
594334:	c3                   	ret
594335:	a8 08                	test   $0x8,%al
594337:	74 06                	je     0x59433f
594339:	f6 46 34 40          	testb  $0x40,0x34(%esi)
59433d:	74 15                	je     0x594354
59433f:	83 e0 02             	and    $0x2,%eax
594342:	74 06                	je     0x59434a
594344:	f6 46 2c a8          	testb  $0xa8,0x2c(%esi)
594348:	74 0a                	je     0x594354
59434a:	85 c0                	test   %eax,%eax
59434c:	74 0a                	je     0x594358
59434e:	f6 46 2c 20          	testb  $0x20,0x2c(%esi)
594352:	75 04                	jne    0x594358
594354:	33 c0                	xor    %eax,%eax
594356:	5e                   	pop    %esi
594357:	c3                   	ret
594358:	b8 01 00 00 00       	mov    $0x1,%eax
59435d:	5e                   	pop    %esi
59435e:	c3                   	ret
59435f:	cc                   	int3
594360:	56                   	push   %esi
594361:	8b 74 24 0c          	mov    0xc(%esp),%esi
594365:	8b 46 28             	mov    0x28(%esi),%eax
594368:	a8 04                	test   $0x4,%al
59436a:	74 06                	je     0x594372
59436c:	f6 46 30 04          	testb  $0x4,0x30(%esi)
594370:	74 49                	je     0x5943bb
594372:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
594377:	74 1c                	je     0x594395
594379:	56                   	push   %esi
59437a:	e8 51 03 00 00       	call   0x5946d0
59437f:	83 c4 04             	add    $0x4,%esp
594382:	85 c0                	test   %eax,%eax
594384:	74 35                	je     0x5943bb
594386:	83 f8 05             	cmp    $0x5,%eax
594389:	75 36                	jne    0x5943c1
59438b:	f6 46 34 02          	testb  $0x2,0x34(%esi)
59438f:	75 30                	jne    0x5943c1
594391:	33 c0                	xor    %eax,%eax
594393:	5e                   	pop    %esi
594394:	c3                   	ret
594395:	a8 08                	test   $0x8,%al
594397:	74 13                	je     0x5943ac
594399:	8b 4e 34             	mov    0x34(%esi),%ecx
59439c:	f6 c1 20             	test   $0x20,%cl
59439f:	75 0b                	jne    0x5943ac
5943a1:	84 c9                	test   %cl,%cl
5943a3:	79 16                	jns    0x5943bb
5943a5:	b9 02 00 00 00       	mov    $0x2,%ecx
5943aa:	eb 05                	jmp    0x5943b1
5943ac:	b9 01 00 00 00       	mov    $0x1,%ecx
5943b1:	a8 02                	test   $0x2,%al
5943b3:	74 0a                	je     0x5943bf
5943b5:	f6 46 2c c0          	testb  $0xc0,0x2c(%esi)
5943b9:	75 04                	jne    0x5943bf
5943bb:	33 c0                	xor    %eax,%eax
5943bd:	5e                   	pop    %esi