5871a6:	e8 75 c0 f2 ff       	call   0x4b3220
5871ab:	8d 46 14             	lea    0x14(%esi),%eax
5871ae:	50                   	push   %eax
5871af:	e8 6c c0 f2 ff       	call   0x4b3220
5871b4:	83 c4 08             	add    $0x8,%esp
5871b7:	c7 46 28 00 00 00 00 	movl   $0x0,0x28(%esi)
5871be:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
5871c5:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)
5871cc:	5e                   	pop    %esi
5871cd:	c3                   	ret
5871ce:	cc                   	int3
5871cf:	cc                   	int3
5871d0:	56                   	push   %esi
5871d1:	ff 74 24 0c          	push   0xc(%esp)
5871d5:	8b 74 24 0c          	mov    0xc(%esp),%esi
5871d9:	56                   	push   %esi
5871da:	e8 f1 be f2 ff       	call   0x4b30d0
5871df:	83 c4 08             	add    $0x8,%esp
5871e2:	85 c0                	test   %eax,%eax
5871e4:	75 02                	jne    0x5871e8
5871e6:	5e                   	pop    %esi
5871e7:	c3                   	ret
5871e8:	8d 46 14             	lea    0x14(%esi),%eax
5871eb:	6a 00                	push   $0x0
5871ed:	50                   	push   %eax
5871ee:	e8 fd c2 f2 ff       	call   0x4b34f0
5871f3:	ff 74 24 14          	push   0x14(%esp)
5871f7:	e8 74 c1 f2 ff       	call   0x4b3370
5871fc:	83 c4 0c             	add    $0xc,%esp
5871ff:	89 46 28             	mov    %eax,0x28(%esi)
587202:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
587209:	b8 01 00 00 00       	mov    $0x1,%eax
58720e:	5e                   	pop    %esi
58720f:	c3                   	ret
587210:	b8 0c 00 00 00       	mov    $0xc,%eax
587215:	e8 d6 a2 05 00       	call   0x5e14f0
58721a:	53                   	push   %ebx
58721b:	8b 5c 24 24          	mov    0x24(%esp),%ebx
58721f:	55                   	push   %ebp
587220:	56                   	push   %esi
587221:	57                   	push   %edi
587222:	53                   	push   %ebx
587223:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
58722a:	00
58722b:	e8 70 0c f5 ff       	call   0x4d7ea0
587230:	53                   	push   %ebx
587231:	e8 8a 0b f5 ff       	call   0x4d7dc0
587236:	53                   	push   %ebx
587237:	89 44 24 20          	mov    %eax,0x20(%esp)
58723b:	e8 80 0b f5 ff       	call   0x4d7dc0
587240:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
587244:	83 c4 0c             	add    $0xc,%esp
587247:	8b f8                	mov    %eax,%edi
587249:	89 7c 24 10          	mov    %edi,0x10(%esp)
58724d:	85 ed                	test   %ebp,%ebp
58724f:	75 0b                	jne    0x58725c
587251:	53                   	push   %ebx
587252:	e8 69 0b f5 ff       	call   0x4d7dc0
587257:	83 c4 04             	add    $0x4,%esp
58725a:	8b e8                	mov    %eax,%ebp
58725c:	8b 74 24 24          	mov    0x24(%esp),%esi
587260:	85 f6                	test   %esi,%esi
587262:	75 0b                	jne    0x58726f
587264:	53                   	push   %ebx
587265:	e8 56 0b f5 ff       	call   0x4d7dc0
58726a:	83 c4 04             	add    $0x4,%esp
58726d:	8b f0                	mov    %eax,%esi
58726f:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
587274:	0f 84 e7 01 00 00    	je     0x587461
58727a:	85 ff                	test   %edi,%edi
58727c:	0f 84 df 01 00 00    	je     0x587461
587282:	85 ed                	test   %ebp,%ebp
587284:	0f 84 d7 01 00 00    	je     0x587461
58728a:	85 f6                	test   %esi,%esi
58728c:	0f 84 cf 01 00 00    	je     0x587461
587292:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
587296:	57                   	push   %edi
587297:	ff 74 24 2c          	push   0x2c(%esp)
58729b:	e8 b0 c2 f2 ff       	call   0x4b3550
5872a0:	83 c4 08             	add    $0x8,%esp
5872a3:	85 c0                	test   %eax,%eax
5872a5:	79 41                	jns    0x5872e8
5872a7:	6a 00                	push   $0x0
5872a9:	55                   	push   %ebp
5872aa:	e8 41 c2 f2 ff       	call   0x4b34f0
5872af:	ff 74 24 30          	push   0x30(%esp)
5872b3:	56                   	push   %esi
5872b4:	e8 17 be f2 ff       	call   0x4b30d0
5872b9:	83 c4 10             	add    $0x10,%esp
5872bc:	53                   	push   %ebx
5872bd:	85 c0                	test   %eax,%eax
5872bf:	75 12                	jne    0x5872d3
5872c1:	e8 8a 0a f5 ff       	call   0x4d7d50
5872c6:	83 c4 04             	add    $0x4,%esp
5872c9:	33 c0                	xor    %eax,%eax
5872cb:	5f                   	pop    %edi
5872cc:	5e                   	pop    %esi
5872cd:	5d                   	pop    %ebp
5872ce:	5b                   	pop    %ebx
5872cf:	83 c4 0c             	add    $0xc,%esp
5872d2:	c3                   	ret
5872d3:	e8 78 0a f5 ff       	call   0x4d7d50
5872d8:	83 c4 04             	add    $0x4,%esp
5872db:	b8 01 00 00 00       	mov    $0x1,%eax
5872e0:	5f                   	pop    %edi
5872e1:	5e                   	pop    %esi
5872e2:	5d                   	pop    %ebp
5872e3:	5b                   	pop    %ebx
5872e4:	83 c4 0c             	add    $0xc,%esp
5872e7:	c3                   	ret
5872e8:	ff 74 24 28          	push   0x28(%esp)
5872ec:	e8 7f c0 f2 ff       	call   0x4b3370
5872f1:	8b c8                	mov    %eax,%ecx
5872f3:	83 c4 04             	add    $0x4,%esp
5872f6:	8b 47 28             	mov    0x28(%edi),%eax
5872f9:	03 c0                	add    %eax,%eax
5872fb:	3b c1                	cmp    %ecx,%eax
5872fd:	0f 4f c8             	cmovg  %eax,%ecx
587300:	89 4c 24 20          	mov    %ecx,0x20(%esp)
587304:	3b 4f 2c             	cmp    0x2c(%edi),%ecx
587307:	74 12                	je     0x58731b
587309:	53                   	push   %ebx
58730a:	51                   	push   %ecx
58730b:	8d 47 14             	lea    0x14(%edi),%eax
58730e:	57                   	push   %edi
58730f:	50                   	push   %eax
587310:	e8 eb 01 00 00       	call   0x587500
587315:	83 c4 10             	add    $0x10,%esp
587318:	89 47 2c             	mov    %eax,0x2c(%edi)
58731b:	83 7f 2c ff          	cmpl   $0xffffffff,0x2c(%edi)
58731f:	0f 84 3c 01 00 00    	je     0x587461
587325:	ff 77 28             	push   0x28(%edi)
587328:	ff 74 24 2c          	push   0x2c(%esp)
58732c:	ff 74 24 1c          	push   0x1c(%esp)
587330:	e8 eb d3 f2 ff       	call   0x4b4720
587335:	83 c4 0c             	add    $0xc,%esp
587338:	85 c0                	test   %eax,%eax
58733a:	0f 84 21 01 00 00    	je     0x587461
587340:	53                   	push   %ebx
587341:	8d 47 14             	lea    0x14(%edi),%eax
587344:	50                   	push   %eax
587345:	ff 74 24 1c          	push   0x1c(%esp)
587349:	ff 74 24 1c          	push   0x1c(%esp)
58734d:	e8 2e 11 f5 ff       	call   0x4d8480
587352:	83 c4 10             	add    $0x10,%esp
587355:	85 c0                	test   %eax,%eax
587357:	0f 84 04 01 00 00    	je     0x587461
58735d:	8b 44 24 20          	mov    0x20(%esp),%eax
587361:	2b 47 28             	sub    0x28(%edi),%eax
587364:	50                   	push   %eax
587365:	ff 74 24 14          	push   0x14(%esp)
587369:	55                   	push   %ebp
58736a:	e8 b1 d3 f2 ff       	call   0x4b4720
58736f:	83 c4 0c             	add    $0xc,%esp
587372:	85 c0                	test   %eax,%eax
587374:	0f 84 e7 00 00 00    	je     0x587461
58737a:	53                   	push   %ebx
58737b:	55                   	push   %ebp
58737c:	57                   	push   %edi
58737d:	ff 74 24 1c          	push   0x1c(%esp)
587381:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)
587388:	e8 f3 10 f5 ff       	call   0x4d8480
58738d:	83 c4 10             	add    $0x10,%esp
587390:	85 c0                	test   %eax,%eax
587392:	0f 84 c9 00 00 00    	je     0x587461
587398:	ff 74 24 10          	push   0x10(%esp)
58739c:	ff 74 24 2c          	push   0x2c(%esp)
5873a0:	56                   	push   %esi
5873a1:	e8 5a 0f f5 ff       	call   0x4d8300
5873a6:	83 c4 0c             	add    $0xc,%esp
5873a9:	85 c0                	test   %eax,%eax
5873ab:	0f 84 b0 00 00 00    	je     0x587461
5873b1:	57                   	push   %edi
5873b2:	56                   	push   %esi
5873b3:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
5873ba:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
5873c1:	00
5873c2:	e8 89 c1 f2 ff       	call   0x4b3550
5873c7:	83 c4 08             	add    $0x8,%esp
5873ca:	85 c0                	test   %eax,%eax
5873cc:	78 3e                	js     0x58740c
5873ce:	66 90                	xchg   %ax,%ax
5873d0:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5873d4:	8b c1                	mov    %ecx,%eax
5873d6:	41                   	inc    %ecx
5873d7:	89 4c 24 20          	mov    %ecx,0x20(%esp)
5873db:	83 f8 02             	cmp    $0x2,%eax
5873de:	7f 3a                	jg     0x58741a
5873e0:	57                   	push   %edi
5873e1:	56                   	push   %esi
5873e2:	56                   	push   %esi
5873e3:	e8 18 0f f5 ff       	call   0x4d8300
5873e8:	83 c4 0c             	add    $0xc,%esp
5873eb:	85 c0                	test   %eax,%eax
5873ed:	74 72                	je     0x587461
5873ef:	6a 01                	push   $0x1
5873f1:	55                   	push   %ebp
5873f2:	e8 e9 c3 f2 ff       	call   0x4b37e0
5873f7:	83 c4 08             	add    $0x8,%esp
5873fa:	85 c0                	test   %eax,%eax
5873fc:	74 63                	je     0x587461
5873fe:	57                   	push   %edi
5873ff:	56                   	push   %esi
587400:	e8 4b c1 f2 ff       	call   0x4b3550
587405:	83 c4 08             	add    $0x8,%esp
587408:	85 c0                	test   %eax,%eax
58740a:	79 c4                	jns    0x5873d0
58740c:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
587410:	8b 44 24 28          	mov    0x28(%esp),%eax
587414:	75 34                	jne    0x58744a
587416:	33 c9                	xor    %ecx,%ecx
587418:	eb 33                	jmp    0x58744d
58741a:	68 ce 00 00 00       	push   $0xce
58741f:	68 c0 37 6c 00       	push   $0x6c37c0
587424:	6a 65                	push   $0x65
587426:	68 82 00 00 00       	push   $0x82
58742b:	6a 03                	push   $0x3
58742d:	e8 6e a0 f1 ff       	call   0x4a14a0
587432:	83 c4 14             	add    $0x14,%esp
587435:	53                   	push   %ebx
587436:	e8 15 09 f5 ff       	call   0x4d7d50
58743b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58743f:	83 c4 04             	add    $0x4,%esp
587442:	5f                   	pop    %edi
587443:	5e                   	pop    %esi
587444:	5d                   	pop    %ebp
587445:	5b                   	pop    %ebx
587446:	83 c4 0c             	add    $0xc,%esp
587449:	c3                   	ret
58744a:	8b 48 0c             	mov    0xc(%eax),%ecx
58744d:	89 4e 0c             	mov    %ecx,0xc(%esi)
587450:	8b 40 0c             	mov    0xc(%eax),%eax
587453:	33 47 0c             	xor    0xc(%edi),%eax
587456:	89 45 0c             	mov    %eax,0xc(%ebp)
587459:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
587460:	00
587461:	53                   	push   %ebx
587462:	e8 e9 08 f5 ff       	call   0x4d7d50
587467:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58746b:	83 c4 04             	add    $0x4,%esp
58746e:	5f                   	pop    %edi
58746f:	5e                   	pop    %esi
587470:	5d                   	pop    %ebp
587471:	5b                   	pop    %ebx
587472:	83 c4 0c             	add    $0xc,%esp
587475:	c3                   	ret
587476:	cc                   	int3
587477:	cc                   	int3
587478:	cc                   	int3
587479:	cc                   	int3
58747a:	cc                   	int3
58747b:	cc                   	int3
58747c:	cc                   	int3
58747d:	cc                   	int3
58747e:	cc                   	int3
58747f:	cc                   	int3
587480:	53                   	push   %ebx
587481:	56                   	push   %esi
587482:	8b 74 24 1c          	mov    0x1c(%esp),%esi
587486:	33 db                	xor    %ebx,%ebx
587488:	57                   	push   %edi
587489:	56                   	push   %esi
58748a:	e8 11 0a f5 ff       	call   0x4d7ea0
58748f:	56                   	push   %esi
587490:	e8 2b 09 f5 ff       	call   0x4d7dc0
587495:	8b f8                	mov    %eax,%edi
587497:	83 c4 08             	add    $0x8,%esp
58749a:	85 ff                	test   %edi,%edi
58749c:	74 4c                	je     0x5874ea
58749e:	8b 44 24 18          	mov    0x18(%esp),%eax
5874a2:	85 c0                	test   %eax,%eax
5874a4:	74 2a                	je     0x5874d0
5874a6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5874aa:	56                   	push   %esi
5874ab:	3b c8                	cmp    %eax,%ecx
5874ad:	75 10                	jne    0x5874bf
5874af:	51                   	push   %ecx
5874b0:	57                   	push   %edi
5874b1:	e8 aa f8 ff ff       	call   0x586d60
5874b6:	83 c4 0c             	add    $0xc,%esp
5874b9:	85 c0                	test   %eax,%eax
5874bb:	74 2d                	je     0x5874ea
5874bd:	eb 15                	jmp    0x5874d4
5874bf:	50                   	push   %eax
5874c0:	51                   	push   %ecx
5874c1:	57                   	push   %edi
5874c2:	e8 b9 0f f5 ff       	call   0x4d8480
5874c7:	83 c4 10             	add    $0x10,%esp
5874ca:	85 c0                	test   %eax,%eax
5874cc:	74 1c                	je     0x5874ea
5874ce:	eb 04                	jmp    0x5874d4
5874d0:	8b 7c 24 14          	mov    0x14(%esp),%edi
5874d4:	56                   	push   %esi
5874d5:	ff 74 24 20          	push   0x20(%esp)
5874d9:	57                   	push   %edi
5874da:	ff 74 24 1c          	push   0x1c(%esp)
5874de:	6a 00                	push   $0x0
5874e0:	e8 2b fd ff ff       	call   0x587210
5874e5:	83 c4 14             	add    $0x14,%esp
5874e8:	8b d8                	mov    %eax,%ebx
5874ea:	56                   	push   %esi
5874eb:	e8 60 08 f5 ff       	call   0x4d7d50
5874f0:	83 c4 04             	add    $0x4,%esp
5874f3:	8b c3                	mov    %ebx,%eax
5874f5:	5f                   	pop    %edi
5874f6:	5e                   	pop    %esi
5874f7:	5b                   	pop    %ebx
5874f8:	c3                   	ret
5874f9:	cc                   	int3
5874fa:	cc                   	int3
5874fb:	cc                   	int3
5874fc:	cc                   	int3
5874fd:	cc                   	int3
5874fe:	cc                   	int3
5874ff:	cc                   	int3
587500:	53                   	push   %ebx
587501:	56                   	push   %esi
587502:	8b 74 24 18          	mov    0x18(%esp),%esi
587506:	57                   	push   %edi
587507:	56                   	push   %esi
587508:	83 cf ff             	or     $0xffffffff,%edi
58750b:	e8 90 09 f5 ff       	call   0x4d7ea0
587510:	56                   	push   %esi
587511:	e8 aa 08 f5 ff       	call   0x4d7dc0
587516:	8b d8                	mov    %eax,%ebx
587518:	83 c4 08             	add    $0x8,%esp
58751b:	85 db                	test   %ebx,%ebx
58751d:	74 2c                	je     0x58754b
58751f:	ff 74 24 18          	push   0x18(%esp)
587523:	53                   	push   %ebx
587524:	e8 07 bf f2 ff       	call   0x4b3430
587529:	83 c4 08             	add    $0x8,%esp
58752c:	85 c0                	test   %eax,%eax
58752e:	74 1b                	je     0x58754b
587530:	56                   	push   %esi
587531:	ff 74 24 18          	push   0x18(%esp)
587535:	53                   	push   %ebx
587536:	6a 00                	push   $0x0
587538:	ff 74 24 20          	push   0x20(%esp)
58753c:	e8 5f 8e fe ff       	call   0x5703a0
587541:	83 c4 14             	add    $0x14,%esp
587544:	85 c0                	test   %eax,%eax
587546:	0f 45 7c 24 18       	cmovne 0x18(%esp),%edi
58754b:	56                   	push   %esi
58754c:	e8 ff 07 f5 ff       	call   0x4d7d50
587551:	83 c4 04             	add    $0x4,%esp
587554:	8b c7                	mov    %edi,%eax
587556:	5f                   	pop    %edi
587557:	5e                   	pop    %esi
587558:	5b                   	pop    %ebx