576168:	57                   	push   %edi
576169:	8b f0                	mov    %eax,%esi
57616b:	e8 70 d0 f3 ff       	call   0x4b31e0
576170:	83 c4 08             	add    $0x8,%esp
576173:	8b c6                	mov    %esi,%eax
576175:	5e                   	pop    %esi
576176:	5f                   	pop    %edi
576177:	c3                   	ret
576178:	cc                   	int3
576179:	cc                   	int3
57617a:	cc                   	int3
57617b:	cc                   	int3
57617c:	cc                   	int3
57617d:	cc                   	int3
57617e:	cc                   	int3
57617f:	cc                   	int3
576180:	8b 44 24 04          	mov    0x4(%esp),%eax
576184:	8b 40 14             	mov    0x14(%eax),%eax
576187:	85 c0                	test   %eax,%eax
576189:	74 10                	je     0x57619b
57618b:	50                   	push   %eax
57618c:	e8 4f b3 f1 ff       	call   0x4914e0
576191:	83 c4 04             	add    $0x4,%esp
576194:	85 c0                	test   %eax,%eax
576196:	74 03                	je     0x57619b
576198:	33 c0                	xor    %eax,%eax
57619a:	c3                   	ret
57619b:	b8 01 00 00 00       	mov    $0x1,%eax
5761a0:	c3                   	ret
5761a1:	cc                   	int3
5761a2:	cc                   	int3
5761a3:	cc                   	int3
5761a4:	cc                   	int3
5761a5:	cc                   	int3
5761a6:	cc                   	int3
5761a7:	cc                   	int3
5761a8:	cc                   	int3
5761a9:	cc                   	int3
5761aa:	cc                   	int3
5761ab:	cc                   	int3
5761ac:	cc                   	int3
5761ad:	cc                   	int3
5761ae:	cc                   	int3
5761af:	cc                   	int3
5761b0:	8b 44 24 08          	mov    0x8(%esp),%eax
5761b4:	56                   	push   %esi
5761b5:	ff 70 14             	push   0x14(%eax)
5761b8:	e8 23 b3 f1 ff       	call   0x4914e0
5761bd:	50                   	push   %eax
5761be:	e8 5d 56 00 00       	call   0x57b820
5761c3:	8b f0                	mov    %eax,%esi
5761c5:	83 c4 08             	add    $0x8,%esp
5761c8:	85 f6                	test   %esi,%esi
5761ca:	75 04                	jne    0x5761d0
5761cc:	33 c0                	xor    %eax,%eax
5761ce:	5e                   	pop    %esi
5761cf:	c3                   	ret
5761d0:	8b 44 24 08          	mov    0x8(%esp),%eax
5761d4:	56                   	push   %esi
5761d5:	ff 70 14             	push   0x14(%eax)
5761d8:	e8 33 65 ff ff       	call   0x56c710
5761dd:	83 c4 08             	add    $0x8,%esp
5761e0:	85 c0                	test   %eax,%eax
5761e2:	74 e8                	je     0x5761cc
5761e4:	56                   	push   %esi
5761e5:	e8 76 56 00 00       	call   0x57b860
5761ea:	83 c4 04             	add    $0x4,%esp
5761ed:	b8 01 00 00 00       	mov    $0x1,%eax
5761f2:	5e                   	pop    %esi
5761f3:	c3                   	ret
5761f4:	cc                   	int3
5761f5:	cc                   	int3
5761f6:	cc                   	int3
5761f7:	cc                   	int3
5761f8:	cc                   	int3
5761f9:	cc                   	int3
5761fa:	cc                   	int3
5761fb:	cc                   	int3
5761fc:	cc                   	int3
5761fd:	cc                   	int3
5761fe:	cc                   	int3
5761ff:	cc                   	int3
576200:	8b 44 24 04          	mov    0x4(%esp),%eax
576204:	56                   	push   %esi
576205:	ff 70 14             	push   0x14(%eax)
576208:	e8 d3 b2 f1 ff       	call   0x4914e0
57620d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
576211:	8b f0                	mov    %eax,%esi
576213:	ff 71 14             	push   0x14(%ecx)
576216:	e8 c5 b2 f1 ff       	call   0x4914e0
57621b:	83 c4 08             	add    $0x8,%esp
57621e:	85 f6                	test   %esi,%esi
576220:	74 17                	je     0x576239
576222:	85 c0                	test   %eax,%eax
576224:	74 13                	je     0x576239
576226:	6a 00                	push   $0x0
576228:	50                   	push   %eax
576229:	56                   	push   %esi
57622a:	e8 c1 51 00 00       	call   0x57b3f0
57622f:	83 c4 0c             	add    $0xc,%esp
576232:	f7 d8                	neg    %eax
576234:	1b c0                	sbb    %eax,%eax
576236:	40                   	inc    %eax
576237:	5e                   	pop    %esi
576238:	c3                   	ret
576239:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
57623e:	5e                   	pop    %esi
57623f:	c3                   	ret
576240:	8b 44 24 04          	mov    0x4(%esp),%eax
576244:	ff 70 14             	push   0x14(%eax)
576247:	e8 c4 61 ff ff       	call   0x56c410
57624c:	59                   	pop    %ecx
57624d:	c3                   	ret
57624e:	cc                   	int3
57624f:	cc                   	int3
576250:	ff 74 24 0c          	push   0xc(%esp)
576254:	ff 74 24 0c          	push   0xc(%esp)
576258:	6a 00                	push   $0x0
57625a:	e8 61 40 01 00       	call   0x58a2c0
57625f:	83 c4 0c             	add    $0xc,%esp
576262:	85 c0                	test   %eax,%eax
576264:	75 1e                	jne    0x576284
576266:	68 fc 01 00 00       	push   $0x1fc
57626b:	68 08 d2 6b 00       	push   $0x6bd208
576270:	6a 10                	push   $0x10
576272:	68 d4 00 00 00       	push   $0xd4
576277:	6a 10                	push   $0x10
576279:	e8 22 b2 f2 ff       	call   0x4a14a0
57627e:	83 c4 14             	add    $0x14,%esp
576281:	33 c0                	xor    %eax,%eax
576283:	c3                   	ret
576284:	50                   	push   %eax
576285:	68 98 01 00 00       	push   $0x198
57628a:	ff 74 24 0c          	push   0xc(%esp)
57628e:	e8 bd f2 f5 ff       	call   0x4d5550
576293:	83 c4 0c             	add    $0xc,%esp
576296:	b8 01 00 00 00       	mov    $0x1,%eax
57629b:	c3                   	ret
57629c:	cc                   	int3
57629d:	cc                   	int3
57629e:	cc                   	int3
57629f:	cc                   	int3
5762a0:	8b 44 24 04          	mov    0x4(%esp),%eax
5762a4:	ff 74 24 08          	push   0x8(%esp)
5762a8:	ff 70 14             	push   0x14(%eax)
5762ab:	e8 80 52 01 00       	call   0x58b530
5762b0:	83 c4 08             	add    $0x8,%esp
5762b3:	c3                   	ret
5762b4:	cc                   	int3
5762b5:	cc                   	int3
5762b6:	cc                   	int3
5762b7:	cc                   	int3
5762b8:	cc                   	int3
5762b9:	cc                   	int3
5762ba:	cc                   	int3
5762bb:	cc                   	int3
5762bc:	cc                   	int3
5762bd:	cc                   	int3
5762be:	cc                   	int3
5762bf:	cc                   	int3
5762c0:	8b 44 24 08          	mov    0x8(%esp),%eax
5762c4:	6a 00                	push   $0x0
5762c6:	ff 74 24 10          	push   0x10(%esp)
5762ca:	ff 70 14             	push   0x14(%eax)
5762cd:	ff 74 24 10          	push   0x10(%esp)
5762d1:	e8 7a 02 00 00       	call   0x576550
5762d6:	83 c4 10             	add    $0x10,%esp
5762d9:	c3                   	ret
5762da:	cc                   	int3
5762db:	cc                   	int3
5762dc:	cc                   	int3
5762dd:	cc                   	int3
5762de:	cc                   	int3
5762df:	cc                   	int3
5762e0:	8b 44 24 08          	mov    0x8(%esp),%eax
5762e4:	6a 01                	push   $0x1
5762e6:	ff 74 24 10          	push   0x10(%esp)
5762ea:	ff 70 14             	push   0x14(%eax)
5762ed:	ff 74 24 10          	push   0x10(%esp)
5762f1:	e8 5a 02 00 00       	call   0x576550
5762f6:	83 c4 10             	add    $0x10,%esp
5762f9:	c3                   	ret
5762fa:	cc                   	int3
5762fb:	cc                   	int3
5762fc:	cc                   	int3
5762fd:	cc                   	int3
5762fe:	cc                   	int3
5762ff:	cc                   	int3
576300:	8b 44 24 08          	mov    0x8(%esp),%eax
576304:	6a 02                	push   $0x2
576306:	ff 74 24 10          	push   0x10(%esp)
57630a:	ff 70 14             	push   0x14(%eax)
57630d:	ff 74 24 10          	push   0x10(%esp)
576311:	e8 3a 02 00 00       	call   0x576550
576316:	83 c4 10             	add    $0x10,%esp
576319:	c3                   	ret
57631a:	cc                   	int3
57631b:	cc                   	int3
57631c:	cc                   	int3
57631d:	cc                   	int3
57631e:	cc                   	int3
57631f:	cc                   	int3
576320:	ff 74 24 0c          	push   0xc(%esp)
576324:	ff 74 24 0c          	push   0xc(%esp)
576328:	6a 00                	push   $0x0
57632a:	e8 61 40 01 00       	call   0x58a390
57632f:	83 c4 0c             	add    $0xc,%esp
576332:	85 c0                	test   %eax,%eax
576334:	75 21                	jne    0x576357
576336:	68 1f 02 00 00       	push   $0x21f
57633b:	68 08 d2 6b 00       	push   $0x6bd208
576340:	68 8e 00 00 00       	push   $0x8e
576345:	68 de 00 00 00       	push   $0xde
57634a:	6a 10                	push   $0x10
57634c:	e8 4f b1 f2 ff       	call   0x4a14a0
576351:	83 c4 14             	add    $0x14,%esp
576354:	33 c0                	xor    %eax,%eax
576356:	c3                   	ret
576357:	50                   	push   %eax
576358:	68 98 01 00 00       	push   $0x198
57635d:	ff 74 24 0c          	push   0xc(%esp)
576361:	e8 ea f1 f5 ff       	call   0x4d5550
576366:	83 c4 0c             	add    $0xc,%esp
576369:	b8 01 00 00 00       	mov    $0x1,%eax
57636e:	c3                   	ret
57636f:	cc                   	int3
576370:	8b 44 24 04          	mov    0x4(%esp),%eax
576374:	ff 74 24 08          	push   0x8(%esp)
576378:	ff 70 14             	push   0x14(%eax)
57637b:	e8 f0 51 01 00       	call   0x58b570
576380:	83 c4 08             	add    $0x8,%esp
576383:	c3                   	ret
576384:	cc                   	int3
576385:	cc                   	int3
576386:	cc                   	int3
576387:	cc                   	int3
576388:	cc                   	int3
576389:	cc                   	int3
57638a:	cc                   	int3
57638b:	cc                   	int3
57638c:	cc                   	int3
57638d:	cc                   	int3
57638e:	cc                   	int3
57638f:	cc                   	int3
576390:	b8 08 00 00 00       	mov    $0x8,%eax
576395:	e8 56 b1 06 00       	call   0x5e14f0
57639a:	8b 44 24 10          	mov    0x10(%esp),%eax
57639e:	48                   	dec    %eax
57639f:	56                   	push   %esi
5763a0:	83 f8 07             	cmp    $0x7,%eax
5763a3:	0f 87 6e 01 00 00    	ja     0x576517
5763a9:	ff 24 85 24 65 57 00 	jmp    *0x576524(,%eax,4)
5763b0:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
5763b5:	0f 85 3e 01 00 00    	jne    0x5764f9
5763bb:	8d 44 24 08          	lea    0x8(%esp),%eax
5763bf:	50                   	push   %eax
5763c0:	8d 44 24 18          	lea    0x18(%esp),%eax
5763c4:	50                   	push   %eax
5763c5:	6a 00                	push   $0x0
5763c7:	ff 74 24 28          	push   0x28(%esp)
5763cb:	e8 b0 16 01 00       	call   0x587a80
5763d0:	8b 44 24 24          	mov    0x24(%esp),%eax
5763d4:	83 c4 10             	add    $0x10,%esp
5763d7:	85 c0                	test   %eax,%eax
5763d9:	74 58                	je     0x576433
5763db:	8b 00                	mov    (%eax),%eax
5763dd:	85 c0                	test   %eax,%eax
5763df:	74 52                	je     0x576433
5763e1:	50                   	push   %eax
5763e2:	e8 f9 15 f3 ff       	call   0x4a79e0
5763e7:	8b f0                	mov    %eax,%esi
5763e9:	83 c4 04             	add    $0x4,%esp
5763ec:	85 f6                	test   %esi,%esi
5763ee:	74 43                	je     0x576433
5763f0:	ff 74 24 10          	push   0x10(%esp)
5763f4:	e8 27 ac f1 ff       	call   0x491020
5763f9:	50                   	push   %eax
5763fa:	8d 44 24 0c          	lea    0xc(%esp),%eax
5763fe:	56                   	push   %esi
5763ff:	50                   	push   %eax
576400:	e8 8b 78 00 00       	call   0x57dc90
576405:	83 c4 10             	add    $0x10,%esp
576408:	85 c0                	test   %eax,%eax
57640a:	74 27                	je     0x576433
57640c:	6a 00                	push   $0x0
57640e:	6a ff                	push   $0xffffffff
576410:	ff 74 24 0c          	push   0xc(%esp)
576414:	e8 a7 14 f3 ff       	call   0x4a78c0
576419:	83 c4 04             	add    $0x4,%esp
57641c:	50                   	push   %eax
57641d:	ff 74 24 14          	push   0x14(%esp)
576421:	e8 8a 7c 00 00       	call   0x57e0b0
576426:	83 c4 10             	add    $0x10,%esp
576429:	b8 01 00 00 00       	mov    $0x1,%eax
57642e:	5e                   	pop    %esi
57642f:	83 c4 08             	add    $0x8,%esp
576432:	c3                   	ret
576433:	83 c8 ff             	or     $0xffffffff,%eax
576436:	5e                   	pop    %esi
576437:	83 c4 08             	add    $0x8,%esp
57643a:	c3                   	ret
57643b:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
576440:	0f 85 b3 00 00 00    	jne    0x5764f9
576446:	8d 44 24 04          	lea    0x4(%esp),%eax
57644a:	50                   	push   %eax
57644b:	8d 44 24 18          	lea    0x18(%esp),%eax
57644f:	50                   	push   %eax
576450:	6a 00                	push   $0x0
576452:	6a 00                	push   $0x0
576454:	ff 74 24 2c          	push   0x2c(%esp)
576458:	e8 e3 24 01 00       	call   0x588940
57645d:	8b 44 24 28          	mov    0x28(%esp),%eax
576461:	83 c4 14             	add    $0x14,%esp
576464:	85 c0                	test   %eax,%eax
576466:	74 cb                	je     0x576433
576468:	8b 00                	mov    (%eax),%eax
57646a:	85 c0                	test   %eax,%eax
57646c:	74 c5                	je     0x576433
57646e:	50                   	push   %eax
57646f:	e8 6c 15 f3 ff       	call   0x4a79e0
576474:	8b f0                	mov    %eax,%esi
576476:	83 c4 04             	add    $0x4,%esp
576479:	85 f6                	test   %esi,%esi
57647b:	74 b6                	je     0x576433
57647d:	ff 74 24 10          	push   0x10(%esp)
576481:	e8 9a ab f1 ff       	call   0x491020
576486:	50                   	push   %eax
576487:	8d 44 24 10          	lea    0x10(%esp),%eax
57648b:	56                   	push   %esi
57648c:	50                   	push   %eax
57648d:	e8 fe 77 00 00       	call   0x57dc90
576492:	83 c4 10             	add    $0x10,%esp
576495:	85 c0                	test   %eax,%eax
576497:	74 9a                	je     0x576433
576499:	6a 00                	push   $0x0
57649b:	6a ff                	push   $0xffffffff
57649d:	ff 74 24 10          	push   0x10(%esp)
5764a1:	e8 1a 14 f3 ff       	call   0x4a78c0
5764a6:	83 c4 04             	add    $0x4,%esp
5764a9:	50                   	push   %eax
5764aa:	ff 74 24 10          	push   0x10(%esp)
5764ae:	e8 fd 7b 00 00       	call   0x57e0b0
5764b3:	83 c4 10             	add    $0x10,%esp
5764b6:	b8 01 00 00 00       	mov    $0x1,%eax
5764bb:	5e                   	pop    %esi
5764bc:	83 c4 08             	add    $0x8,%esp
5764bf:	c3                   	ret
5764c0:	8b 44 24 18          	mov    0x18(%esp),%eax
5764c4:	83 f8 01             	cmp    $0x1,%eax
5764c7:	75 11                	jne    0x5764da