511099:	89 44 24 24          	mov    %eax,0x24(%esp)
51109d:	8d 44 24 24          	lea    0x24(%esp),%eax
5110a1:	50                   	push   %eax
5110a2:	56                   	push   %esi
5110a3:	e8 78 f0 fd ff       	call   0x4f0120
5110a8:	83 c4 04             	add    $0x4,%esp
5110ab:	50                   	push   %eax
5110ac:	56                   	push   %esi
5110ad:	e8 1e f0 fd ff       	call   0x4f00d0
5110b2:	83 c4 04             	add    $0x4,%esp
5110b5:	50                   	push   %eax
5110b6:	68 00 00 00 40       	push   $0x40000000
5110bb:	55                   	push   %ebp
5110bc:	53                   	push   %ebx
5110bd:	e8 ee e0 02 00       	call   0x53f1b0
5110c2:	ff 74 24 3c          	push   0x3c(%esp)
5110c6:	56                   	push   %esi
5110c7:	e8 94 f0 fd ff       	call   0x4f0160
5110cc:	83 c4 20             	add    $0x20,%esp
5110cf:	81 ef 00 00 00 40    	sub    $0x40000000,%edi
5110d5:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
5110db:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
5110e1:	83 6c 24 10 01       	subl   $0x1,0x10(%esp)
5110e6:	75 a8                	jne    0x511090
5110e8:	85 ff                	test   %edi,%edi
5110ea:	74 3b                	je     0x511127
5110ec:	56                   	push   %esi
5110ed:	e8 4e f0 fd ff       	call   0x4f0140
5110f2:	83 c4 04             	add    $0x4,%esp
5110f5:	89 44 24 24          	mov    %eax,0x24(%esp)
5110f9:	8d 44 24 24          	lea    0x24(%esp),%eax
5110fd:	50                   	push   %eax
5110fe:	56                   	push   %esi
5110ff:	e8 1c f0 fd ff       	call   0x4f0120
511104:	83 c4 04             	add    $0x4,%esp
511107:	50                   	push   %eax
511108:	56                   	push   %esi
511109:	e8 c2 ef fd ff       	call   0x4f00d0
51110e:	83 c4 04             	add    $0x4,%esp
511111:	50                   	push   %eax
511112:	57                   	push   %edi
511113:	55                   	push   %ebp
511114:	53                   	push   %ebx
511115:	e8 96 e0 02 00       	call   0x53f1b0
51111a:	ff 74 24 3c          	push   0x3c(%esp)
51111e:	56                   	push   %esi
51111f:	e8 3c f0 fd ff       	call   0x4f0160
511124:	83 c4 20             	add    $0x20,%esp
511127:	5f                   	pop    %edi
511128:	5e                   	pop    %esi
511129:	5d                   	pop    %ebp
51112a:	b8 01 00 00 00       	mov    $0x1,%eax
51112f:	5b                   	pop    %ebx
511130:	59                   	pop    %ecx
511131:	c3                   	ret
511132:	cc                   	int3
511133:	cc                   	int3
511134:	cc                   	int3
511135:	cc                   	int3
511136:	cc                   	int3
511137:	cc                   	int3
511138:	cc                   	int3
511139:	cc                   	int3
51113a:	cc                   	int3
51113b:	cc                   	int3
51113c:	cc                   	int3
51113d:	cc                   	int3
51113e:	cc                   	int3
51113f:	cc                   	int3
511140:	b8 04 00 00 00       	mov    $0x4,%eax
511145:	e8 66 06 0c 00       	call   0x5d17b0
51114a:	56                   	push   %esi
51114b:	8b 74 24 0c          	mov    0xc(%esp),%esi
51114f:	57                   	push   %edi
511150:	56                   	push   %esi
511151:	e8 7a ef fd ff       	call   0x4f00d0
511156:	8b f8                	mov    %eax,%edi
511158:	83 c4 04             	add    $0x4,%esp
51115b:	83 bf 80 00 00 00 00 	cmpl   $0x0,0x80(%edi)
511162:	74 28                	je     0x51118c
511164:	56                   	push   %esi
511165:	e8 b6 ef fd ff       	call   0x4f0120
51116a:	50                   	push   %eax
51116b:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
511171:	57                   	push   %edi
511172:	ff 74 24 28          	push   0x28(%esp)
511176:	ff 74 24 24          	push   0x24(%esp)
51117a:	ff 74 24 2c          	push   0x2c(%esp)
51117e:	ff d0                	call   *%eax
511180:	83 c4 18             	add    $0x18,%esp
511183:	b8 01 00 00 00       	mov    $0x1,%eax
511188:	5f                   	pop    %edi
511189:	5e                   	pop    %esi
51118a:	59                   	pop    %ecx
51118b:	c3                   	ret
51118c:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
511190:	53                   	push   %ebx
511191:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
511195:	55                   	push   %ebp
511196:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
51119a:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
5111a0:	72 54                	jb     0x5111f6
5111a2:	8b c7                	mov    %edi,%eax
5111a4:	c1 e8 1e             	shr    $0x1e,%eax
5111a7:	89 44 24 10          	mov    %eax,0x10(%esp)
5111ab:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5111b0:	56                   	push   %esi
5111b1:	e8 9a 60 fd ff       	call   0x4e7250
5111b6:	83 c4 04             	add    $0x4,%esp
5111b9:	50                   	push   %eax
5111ba:	56                   	push   %esi
5111bb:	e8 60 ef fd ff       	call   0x4f0120
5111c0:	83 c4 04             	add    $0x4,%esp
5111c3:	50                   	push   %eax
5111c4:	56                   	push   %esi
5111c5:	e8 06 ef fd ff       	call   0x4f00d0
5111ca:	83 c4 04             	add    $0x4,%esp
5111cd:	50                   	push   %eax
5111ce:	68 00 00 00 40       	push   $0x40000000
5111d3:	55                   	push   %ebp
5111d4:	53                   	push   %ebx
5111d5:	e8 66 42 f0 ff       	call   0x415440
5111da:	83 c4 18             	add    $0x18,%esp
5111dd:	81 ef 00 00 00 40    	sub    $0x40000000,%edi
5111e3:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
5111e9:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
5111ef:	83 6c 24 10 01       	subl   $0x1,0x10(%esp)
5111f4:	75 ba                	jne    0x5111b0
5111f6:	85 ff                	test   %edi,%edi
5111f8:	74 29                	je     0x511223
5111fa:	56                   	push   %esi
5111fb:	e8 50 60 fd ff       	call   0x4e7250
511200:	83 c4 04             	add    $0x4,%esp
511203:	50                   	push   %eax
511204:	56                   	push   %esi
511205:	e8 16 ef fd ff       	call   0x4f0120
51120a:	83 c4 04             	add    $0x4,%esp
51120d:	50                   	push   %eax
51120e:	56                   	push   %esi
51120f:	e8 bc ee fd ff       	call   0x4f00d0
511214:	83 c4 04             	add    $0x4,%esp
511217:	50                   	push   %eax
511218:	57                   	push   %edi
511219:	55                   	push   %ebp
51121a:	53                   	push   %ebx
51121b:	e8 20 42 f0 ff       	call   0x415440
511220:	83 c4 18             	add    $0x18,%esp
511223:	5d                   	pop    %ebp
511224:	5b                   	pop    %ebx
511225:	5f                   	pop    %edi
511226:	b8 01 00 00 00       	mov    $0x1,%eax
51122b:	5e                   	pop    %esi
51122c:	59                   	pop    %ecx
51122d:	c3                   	ret
51122e:	cc                   	int3
51122f:	cc                   	int3
511230:	b8 04 00 00 00       	mov    $0x4,%eax
511235:	e8 76 05 0c 00       	call   0x5d17b0
51123a:	53                   	push   %ebx
51123b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
51123f:	55                   	push   %ebp
511240:	8b 6c 24 14          	mov    0x14(%esp),%ebp
511244:	56                   	push   %esi
511245:	8b 74 24 14          	mov    0x14(%esp),%esi
511249:	57                   	push   %edi
51124a:	8b 7c 24 24          	mov    0x24(%esp),%edi
51124e:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
511254:	72 69                	jb     0x5112bf
511256:	8b c7                	mov    %edi,%eax
511258:	c1 e8 1e             	shr    $0x1e,%eax
51125b:	89 44 24 10          	mov    %eax,0x10(%esp)
51125f:	90                   	nop
511260:	56                   	push   %esi
511261:	e8 da ee fd ff       	call   0x4f0140
511266:	56                   	push   %esi
511267:	89 44 24 2c          	mov    %eax,0x2c(%esp)
51126b:	e8 e0 5f fd ff       	call   0x4e7250
511270:	83 c4 08             	add    $0x8,%esp
511273:	50                   	push   %eax
511274:	8d 44 24 28          	lea    0x28(%esp),%eax
511278:	50                   	push   %eax
511279:	56                   	push   %esi
51127a:	e8 a1 ee fd ff       	call   0x4f0120
51127f:	83 c4 04             	add    $0x4,%esp
511282:	50                   	push   %eax
511283:	56                   	push   %esi
511284:	e8 47 ee fd ff       	call   0x4f00d0
511289:	83 c4 04             	add    $0x4,%esp
51128c:	50                   	push   %eax
51128d:	68 00 00 00 40       	push   $0x40000000
511292:	55                   	push   %ebp
511293:	53                   	push   %ebx
511294:	e8 17 dd 02 00       	call   0x53efb0
511299:	ff 74 24 40          	push   0x40(%esp)
51129d:	56                   	push   %esi
51129e:	e8 bd ee fd ff       	call   0x4f0160
5112a3:	83 c4 24             	add    $0x24,%esp
5112a6:	81 ef 00 00 00 40    	sub    $0x40000000,%edi
5112ac:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
5112b2:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
5112b8:	83 6c 24 10 01       	subl   $0x1,0x10(%esp)
5112bd:	75 a1                	jne    0x511260
5112bf:	85 ff                	test   %edi,%edi
5112c1:	74 42                	je     0x511305
5112c3:	56                   	push   %esi
5112c4:	e8 77 ee fd ff       	call   0x4f0140
5112c9:	56                   	push   %esi
5112ca:	89 44 24 2c          	mov    %eax,0x2c(%esp)
5112ce:	e8 7d 5f fd ff       	call   0x4e7250
5112d3:	83 c4 08             	add    $0x8,%esp
5112d6:	50                   	push   %eax
5112d7:	8d 44 24 28          	lea    0x28(%esp),%eax
5112db:	50                   	push   %eax
5112dc:	56                   	push   %esi
5112dd:	e8 3e ee fd ff       	call   0x4f0120
5112e2:	83 c4 04             	add    $0x4,%esp
5112e5:	50                   	push   %eax
5112e6:	56                   	push   %esi
5112e7:	e8 e4 ed fd ff       	call   0x4f00d0
5112ec:	83 c4 04             	add    $0x4,%esp
5112ef:	50                   	push   %eax
5112f0:	57                   	push   %edi
5112f1:	55                   	push   %ebp
5112f2:	53                   	push   %ebx
5112f3:	e8 b8 dc 02 00       	call   0x53efb0
5112f8:	ff 74 24 40          	push   0x40(%esp)
5112fc:	56                   	push   %esi
5112fd:	e8 5e ee fd ff       	call   0x4f0160
511302:	83 c4 24             	add    $0x24,%esp
511305:	5f                   	pop    %edi
511306:	5e                   	pop    %esi
511307:	5d                   	pop    %ebp
511308:	b8 01 00 00 00       	mov    $0x1,%eax
51130d:	5b                   	pop    %ebx
51130e:	59                   	pop    %ecx
51130f:	c3                   	ret
511310:	b8 10 00 00 00       	mov    $0x10,%eax
511315:	e8 96 04 0c 00       	call   0x5d17b0
51131a:	55                   	push   %ebp
51131b:	8b 6c 24 24          	mov    0x24(%esp),%ebp
51131f:	85 ed                	test   %ebp,%ebp
511321:	0f 84 1f 01 00 00    	je     0x511446
511327:	8b 54 24 1c          	mov    0x1c(%esp),%edx
51132b:	b8 00 00 00 08       	mov    $0x8000000,%eax
511330:	56                   	push   %esi
511331:	3b e8                	cmp    %eax,%ebp
511333:	8b f5                	mov    %ebp,%esi
511335:	53                   	push   %ebx
511336:	0f 43 f0             	cmovae %eax,%esi
511339:	89 74 24 14          	mov    %esi,0x14(%esp)
51133d:	57                   	push   %edi
51133e:	66 90                	xchg   %ax,%ax
511340:	3b ee                	cmp    %esi,%ebp
511342:	0f 82 f1 00 00 00    	jb     0x511439
511348:	8d 0c f5 00 00 00 00 	lea    0x0(,%esi,8),%ecx
51134f:	33 c0                	xor    %eax,%eax
511351:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
511355:	89 44 24 14          	mov    %eax,0x14(%esp)
511359:	85 c9                	test   %ecx,%ecx
51135b:	0f 84 b3 00 00 00    	je     0x511414
511361:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
511365:	8b 74 24 28          	mov    0x28(%esp),%esi
511369:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
511370:	ff 74 24 24          	push   0x24(%esp)
511374:	8b d8                	mov    %eax,%ebx
511376:	8b f8                	mov    %eax,%edi
511378:	83 e3 07             	and    $0x7,%ebx
51137b:	c1 ef 03             	shr    $0x3,%edi
51137e:	b9 07 00 00 00       	mov    $0x7,%ecx
511383:	b8 01 00 00 00       	mov    $0x1,%eax
511388:	2b cb                	sub    %ebx,%ecx
51138a:	d3 e0                	shl    %cl,%eax
51138c:	22 04 2f             	and    (%edi,%ebp,1),%al
51138f:	f6 d8                	neg    %al
511391:	1a c0                	sbb    %al,%al
511393:	24 80                	and    $0x80,%al
511395:	88 44 24 16          	mov    %al,0x16(%esp)
511399:	e8 b2 5e fd ff       	call   0x4e7250
51139e:	83 c4 04             	add    $0x4,%esp
5113a1:	50                   	push   %eax
5113a2:	ff 74 24 28          	push   0x28(%esp)
5113a6:	e8 75 ed fd ff       	call   0x4f0120
5113ab:	83 c4 04             	add    $0x4,%esp
5113ae:	50                   	push   %eax
5113af:	ff 74 24 2c          	push   0x2c(%esp)
5113b3:	e8 18 ed fd ff       	call   0x4f00d0
5113b8:	83 c4 04             	add    $0x4,%esp
5113bb:	50                   	push   %eax
5113bc:	6a 01                	push   $0x1
5113be:	6a 01                	push   $0x1
5113c0:	8d 44 24 27          	lea    0x27(%esp),%eax
5113c4:	50                   	push   %eax
5113c5:	8d 44 24 2a          	lea    0x2a(%esp),%eax
5113c9:	50                   	push   %eax
5113ca:	e8 f1 d1 02 00       	call   0x53e5c0
5113cf:	8a 4c 24 30          	mov    0x30(%esp),%cl
5113d3:	b8 80 00 00 00       	mov    $0x80,%eax
5113d8:	8a 54 24 2f          	mov    0x2f(%esp),%dl
5113dc:	80 e1 07             	and    $0x7,%cl
5113df:	80 e2 80             	and    $0x80,%dl
5113e2:	83 c4 1c             	add    $0x1c,%esp
5113e5:	d2 ea                	shr    %cl,%dl
5113e7:	8b cb                	mov    %ebx,%ecx
5113e9:	d3 f8                	sar    %cl,%eax
5113eb:	f6 d0                	not    %al
5113ed:	22 04 37             	and    (%edi,%esi,1),%al
5113f0:	0a d0                	or     %al,%dl
5113f2:	8b 44 24 14          	mov    0x14(%esp),%eax
5113f6:	40                   	inc    %eax
5113f7:	88 14 37             	mov    %dl,(%edi,%esi,1)
5113fa:	89 44 24 14          	mov    %eax,0x14(%esp)
5113fe:	3b 44 24 1c          	cmp    0x1c(%esp),%eax
511402:	0f 82 68 ff ff ff    	jb     0x511370
511408:	8b 74 24 18          	mov    0x18(%esp),%esi
51140c:	8b 6c 24 30          	mov    0x30(%esp),%ebp
511410:	8b 54 24 28          	mov    0x28(%esp),%edx
511414:	01 74 24 2c          	add    %esi,0x2c(%esp)
511418:	2b ee                	sub    %esi,%ebp
51141a:	03 d6                	add    %esi,%edx
51141c:	89 6c 24 30          	mov    %ebp,0x30(%esp)
511420:	3b ee                	cmp    %esi,%ebp
511422:	89 54 24 28          	mov    %edx,0x28(%esp)
511426:	8b cd                	mov    %ebp,%ecx
511428:	0f 43 ce             	cmovae %esi,%ecx
51142b:	8b f1                	mov    %ecx,%esi
51142d:	89 74 24 18          	mov    %esi,0x18(%esp)
511431:	85 ed                	test   %ebp,%ebp
511433:	0f 85 07 ff ff ff    	jne    0x511340
511439:	5f                   	pop    %edi
51143a:	5b                   	pop    %ebx
51143b:	5e                   	pop    %esi
51143c:	b8 01 00 00 00       	mov    $0x1,%eax
511441:	5d                   	pop    %ebp
511442:	83 c4 10             	add    $0x10,%esp
511445:	c3                   	ret
511446:	b8 01 00 00 00       	mov    $0x1,%eax
51144b:	5d                   	pop    %ebp
51144c:	83 c4 10             	add    $0x10,%esp
51144f:	c3                   	ret
511450:	53                   	push   %ebx
511451:	8b 5c 24 10          	mov    0x10(%esp),%ebx
511455:	55                   	push   %ebp
511456:	8b 6c 24 10          	mov    0x10(%esp),%ebp
51145a:	56                   	push   %esi
51145b:	8b 74 24 1c          	mov    0x1c(%esp),%esi
51145f:	57                   	push   %edi
511460:	8b 7c 24 14          	mov    0x14(%esp),%edi
511464:	81 fe 00 00 00 40    	cmp    $0x40000000,%esi
51146a:	72 51                	jb     0x5114bd
51146c:	8b c6                	mov    %esi,%eax