416156:	3b f0                	cmp    %eax,%esi
416158:	75 f6                	jne    0x416150
41615a:	5e                   	pop    %esi
41615b:	5d                   	pop    %ebp
41615c:	c2 04 00             	ret    $0x4
41615f:	68 f8 60 41 00       	push   $0x4160f8
416164:	b9 a8 9c 83 02       	mov    $0x2839ca8,%ecx
416169:	e8 0a ff ff ff       	call   0x416078
41616e:	68 13 61 41 00       	push   $0x416113
416173:	b9 ac 9c 83 02       	mov    $0x2839cac,%ecx
416178:	e8 3b ff ff ff       	call   0x4160b8
41617d:	ff 35 b4 9c 83 02    	push   0x2839cb4
416183:	e8 92 fe ff ff       	call   0x41601a
416188:	ff 35 b0 9c 83 02    	push   0x2839cb0
41618e:	e8 b6 fe ff ff       	call   0x416049
416193:	59                   	pop    %ecx
416194:	59                   	pop    %ecx
416195:	c3                   	ret
416196:	e9 55 fd ff ff       	jmp    0x415ef0
41619b:	6a 0c                	push   $0xc
41619d:	68 68 80 43 00       	push   $0x438068
4161a2:	e8 79 14 ff ff       	call   0x407620
4161a7:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4161ab:	8b 45 08             	mov    0x8(%ebp),%eax
4161ae:	ff 30                	push   (%eax)
4161b0:	e8 09 e2 ff ff       	call   0x4143be
4161b5:	59                   	pop    %ecx
4161b6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4161ba:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4161bd:	e8 0a 02 00 00       	call   0x4163cc
4161c2:	8b f0                	mov    %eax,%esi
4161c4:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4161c7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4161ce:	e8 0d 00 00 00       	call   0x4161e0
4161d3:	8b c6                	mov    %esi,%eax
4161d5:	e8 8c 14 ff ff       	call   0x407666
4161da:	c2 0c 00             	ret    $0xc
4161dd:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4161e0:	8b 45 10             	mov    0x10(%ebp),%eax
4161e3:	ff 30                	push   (%eax)
4161e5:	e8 1c e2 ff ff       	call   0x414406
4161ea:	59                   	pop    %ecx
4161eb:	c3                   	ret
4161ec:	6a 0c                	push   $0xc
4161ee:	68 88 80 43 00       	push   $0x438088
4161f3:	e8 28 14 ff ff       	call   0x407620
4161f8:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4161fc:	8b 45 08             	mov    0x8(%ebp),%eax
4161ff:	ff 30                	push   (%eax)
416201:	e8 b8 e1 ff ff       	call   0x4143be
416206:	59                   	pop    %ecx
416207:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41620b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41620e:	e8 99 00 00 00       	call   0x4162ac
416213:	8b f0                	mov    %eax,%esi
416215:	89 75 e4             	mov    %esi,-0x1c(%ebp)
416218:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41621f:	e8 0d 00 00 00       	call   0x416231
416224:	8b c6                	mov    %esi,%eax
416226:	e8 3b 14 ff ff       	call   0x407666
41622b:	c2 0c 00             	ret    $0xc
41622e:	8b 75 e4             	mov    -0x1c(%ebp),%esi
416231:	8b 45 10             	mov    0x10(%ebp),%eax
416234:	ff 30                	push   (%eax)
416236:	e8 cb e1 ff ff       	call   0x414406
41623b:	59                   	pop    %ecx
41623c:	c3                   	ret
41623d:	8b ff                	mov    %edi,%edi
41623f:	55                   	push   %ebp
416240:	8b ec                	mov    %esp,%ebp
416242:	83 ec 0c             	sub    $0xc,%esp
416245:	8b 45 08             	mov    0x8(%ebp),%eax
416248:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41624b:	89 45 f8             	mov    %eax,-0x8(%ebp)
41624e:	89 45 f4             	mov    %eax,-0xc(%ebp)
416251:	8d 45 f8             	lea    -0x8(%ebp),%eax
416254:	50                   	push   %eax
416255:	ff 75 0c             	push   0xc(%ebp)
416258:	8d 45 f4             	lea    -0xc(%ebp),%eax
41625b:	50                   	push   %eax
41625c:	e8 8b ff ff ff       	call   0x4161ec
416261:	8b e5                	mov    %ebp,%esp
416263:	5d                   	pop    %ebp
416264:	c3                   	ret
416265:	8b ff                	mov    %edi,%edi
416267:	55                   	push   %ebp
416268:	8b ec                	mov    %esp,%ebp
41626a:	83 ec 0c             	sub    $0xc,%esp
41626d:	8b 45 08             	mov    0x8(%ebp),%eax
416270:	8d 4d ff             	lea    -0x1(%ebp),%ecx
416273:	89 45 f8             	mov    %eax,-0x8(%ebp)
416276:	89 45 f4             	mov    %eax,-0xc(%ebp)
416279:	8d 45 f8             	lea    -0x8(%ebp),%eax
41627c:	50                   	push   %eax
41627d:	ff 75 0c             	push   0xc(%ebp)
416280:	8d 45 f4             	lea    -0xc(%ebp),%eax
416283:	50                   	push   %eax
416284:	e8 12 ff ff ff       	call   0x41619b
416289:	8b e5                	mov    %ebp,%esp
41628b:	5d                   	pop    %ebp
41628c:	c3                   	ret
41628d:	8b ff                	mov    %edi,%edi
41628f:	55                   	push   %ebp
416290:	8b ec                	mov    %esp,%ebp
416292:	a1 28 ba 43 00       	mov    0x43ba28,%eax
416297:	83 e0 1f             	and    $0x1f,%eax
41629a:	6a 20                	push   $0x20
41629c:	59                   	pop    %ecx
41629d:	2b c8                	sub    %eax,%ecx
41629f:	8b 45 08             	mov    0x8(%ebp),%eax
4162a2:	d3 c8                	ror    %cl,%eax
4162a4:	33 05 28 ba 43 00    	xor    0x43ba28,%eax
4162aa:	5d                   	pop    %ebp
4162ab:	c3                   	ret
4162ac:	8b ff                	mov    %edi,%edi
4162ae:	55                   	push   %ebp
4162af:	8b ec                	mov    %esp,%ebp
4162b1:	83 ec 18             	sub    $0x18,%esp
4162b4:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4162b9:	33 c5                	xor    %ebp,%eax
4162bb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4162be:	8b c1                	mov    %ecx,%eax
4162c0:	89 45 e8             	mov    %eax,-0x18(%ebp)
4162c3:	53                   	push   %ebx
4162c4:	8b 00                	mov    (%eax),%eax
4162c6:	8b 18                	mov    (%eax),%ebx
4162c8:	85 db                	test   %ebx,%ebx
4162ca:	75 08                	jne    0x4162d4
4162cc:	83 c8 ff             	or     $0xffffffff,%eax
4162cf:	e9 e9 00 00 00       	jmp    0x4163bd
4162d4:	8b 15 28 ba 43 00    	mov    0x43ba28,%edx
4162da:	56                   	push   %esi
4162db:	57                   	push   %edi
4162dc:	8b 3b                	mov    (%ebx),%edi
4162de:	8b f2                	mov    %edx,%esi
4162e0:	8b 5b 04             	mov    0x4(%ebx),%ebx
4162e3:	83 e6 1f             	and    $0x1f,%esi
4162e6:	33 fa                	xor    %edx,%edi
4162e8:	89 75 ec             	mov    %esi,-0x14(%ebp)
4162eb:	8b ce                	mov    %esi,%ecx
4162ed:	33 da                	xor    %edx,%ebx
4162ef:	d3 cf                	ror    %cl,%edi
4162f1:	d3 cb                	ror    %cl,%ebx
4162f3:	85 ff                	test   %edi,%edi
4162f5:	0f 84 be 00 00 00    	je     0x4163b9
4162fb:	83 ff ff             	cmp    $0xffffffff,%edi
4162fe:	0f 84 b5 00 00 00    	je     0x4163b9
416304:	89 7d f4             	mov    %edi,-0xc(%ebp)
416307:	89 5d f0             	mov    %ebx,-0x10(%ebp)
41630a:	6a 20                	push   $0x20
41630c:	59                   	pop    %ecx
41630d:	2b ce                	sub    %esi,%ecx
41630f:	33 c0                	xor    %eax,%eax
416311:	d3 c8                	ror    %cl,%eax
416313:	33 c2                	xor    %edx,%eax
416315:	83 eb 04             	sub    $0x4,%ebx
416318:	3b df                	cmp    %edi,%ebx
41631a:	72 60                	jb     0x41637c
41631c:	39 03                	cmp    %eax,(%ebx)
41631e:	74 f5                	je     0x416315
416320:	8b 33                	mov    (%ebx),%esi
416322:	8b 4d ec             	mov    -0x14(%ebp),%ecx
416325:	33 f2                	xor    %edx,%esi
416327:	d3 ce                	ror    %cl,%esi
416329:	8b ce                	mov    %esi,%ecx
41632b:	89 03                	mov    %eax,(%ebx)
41632d:	ff 15 50 72 42 00    	call   *0x427250
416333:	ff d6                	call   *%esi
416335:	8b 45 e8             	mov    -0x18(%ebp),%eax
416338:	8b 15 28 ba 43 00    	mov    0x43ba28,%edx
41633e:	8b f2                	mov    %edx,%esi
416340:	83 e6 1f             	and    $0x1f,%esi
416343:	89 75 ec             	mov    %esi,-0x14(%ebp)
416346:	8b 00                	mov    (%eax),%eax
416348:	8b 00                	mov    (%eax),%eax
41634a:	8b 08                	mov    (%eax),%ecx
41634c:	8b 40 04             	mov    0x4(%eax),%eax
41634f:	33 ca                	xor    %edx,%ecx
416351:	89 4d f8             	mov    %ecx,-0x8(%ebp)
416354:	33 c2                	xor    %edx,%eax
416356:	8b ce                	mov    %esi,%ecx
416358:	d3 4d f8             	rorl   %cl,-0x8(%ebp)
41635b:	d3 c8                	ror    %cl,%eax
41635d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
416360:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
416363:	75 0b                	jne    0x416370
416365:	6a 20                	push   $0x20
416367:	59                   	pop    %ecx
416368:	3b 45 f0             	cmp    -0x10(%ebp),%eax
41636b:	74 a0                	je     0x41630d
41636d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
416370:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416373:	8b f9                	mov    %ecx,%edi
416375:	89 45 f0             	mov    %eax,-0x10(%ebp)
416378:	8b d8                	mov    %eax,%ebx
41637a:	eb 8e                	jmp    0x41630a
41637c:	83 ff ff             	cmp    $0xffffffff,%edi
41637f:	74 0d                	je     0x41638e
416381:	57                   	push   %edi
416382:	e8 89 e9 ff ff       	call   0x414d10
416387:	8b 15 28 ba 43 00    	mov    0x43ba28,%edx
41638d:	59                   	pop    %ecx
41638e:	8b c2                	mov    %edx,%eax
416390:	33 d2                	xor    %edx,%edx
416392:	83 e0 1f             	and    $0x1f,%eax
416395:	6a 20                	push   $0x20
416397:	59                   	pop    %ecx
416398:	2b c8                	sub    %eax,%ecx
41639a:	d3 ca                	ror    %cl,%edx
41639c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41639f:	33 15 28 ba 43 00    	xor    0x43ba28,%edx
4163a5:	8b 01                	mov    (%ecx),%eax
4163a7:	8b 00                	mov    (%eax),%eax
4163a9:	89 10                	mov    %edx,(%eax)
4163ab:	8b 01                	mov    (%ecx),%eax
4163ad:	8b 00                	mov    (%eax),%eax
4163af:	89 50 04             	mov    %edx,0x4(%eax)
4163b2:	8b 01                	mov    (%ecx),%eax
4163b4:	8b 00                	mov    (%eax),%eax
4163b6:	89 50 08             	mov    %edx,0x8(%eax)
4163b9:	5f                   	pop    %edi
4163ba:	33 c0                	xor    %eax,%eax
4163bc:	5e                   	pop    %esi
4163bd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4163c0:	33 cd                	xor    %ebp,%ecx
4163c2:	5b                   	pop    %ebx
4163c3:	e8 98 0c ff ff       	call   0x407060
4163c8:	8b e5                	mov    %ebp,%esp
4163ca:	5d                   	pop    %ebp
4163cb:	c3                   	ret
4163cc:	8b ff                	mov    %edi,%edi
4163ce:	55                   	push   %ebp
4163cf:	8b ec                	mov    %esp,%ebp
4163d1:	83 ec 0c             	sub    $0xc,%esp
4163d4:	8b c1                	mov    %ecx,%eax
4163d6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4163d9:	56                   	push   %esi
4163da:	8b 00                	mov    (%eax),%eax
4163dc:	8b 30                	mov    (%eax),%esi
4163de:	85 f6                	test   %esi,%esi
4163e0:	75 08                	jne    0x4163ea
4163e2:	83 c8 ff             	or     $0xffffffff,%eax
4163e5:	e9 1e 01 00 00       	jmp    0x416508
4163ea:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4163ef:	8b c8                	mov    %eax,%ecx
4163f1:	53                   	push   %ebx
4163f2:	8b 1e                	mov    (%esi),%ebx
4163f4:	83 e1 1f             	and    $0x1f,%ecx
4163f7:	57                   	push   %edi
4163f8:	8b 7e 04             	mov    0x4(%esi),%edi
4163fb:	33 d8                	xor    %eax,%ebx
4163fd:	8b 76 08             	mov    0x8(%esi),%esi
416400:	33 f8                	xor    %eax,%edi
416402:	33 f0                	xor    %eax,%esi
416404:	d3 cf                	ror    %cl,%edi
416406:	d3 ce                	ror    %cl,%esi
416408:	d3 cb                	ror    %cl,%ebx
41640a:	3b fe                	cmp    %esi,%edi
41640c:	0f 85 b4 00 00 00    	jne    0x4164c6
416412:	2b f3                	sub    %ebx,%esi
416414:	b8 00 02 00 00       	mov    $0x200,%eax
416419:	c1 fe 02             	sar    $0x2,%esi
41641c:	3b f0                	cmp    %eax,%esi
41641e:	77 02                	ja     0x416422
416420:	8b c6                	mov    %esi,%eax
416422:	8d 3c 30             	lea    (%eax,%esi,1),%edi
416425:	85 ff                	test   %edi,%edi
416427:	75 03                	jne    0x41642c
416429:	6a 20                	push   $0x20
41642b:	5f                   	pop    %edi
41642c:	3b fe                	cmp    %esi,%edi
41642e:	72 1d                	jb     0x41644d
416430:	6a 04                	push   $0x4
416432:	57                   	push   %edi
416433:	53                   	push   %ebx
416434:	e8 5a 92 00 00       	call   0x41f693
416439:	6a 00                	push   $0x0
41643b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41643e:	e8 cd e8 ff ff       	call   0x414d10
416443:	8b 4d fc             	mov    -0x4(%ebp),%ecx
416446:	83 c4 10             	add    $0x10,%esp
416449:	85 c9                	test   %ecx,%ecx
41644b:	75 28                	jne    0x416475
41644d:	6a 04                	push   $0x4
41644f:	8d 7e 04             	lea    0x4(%esi),%edi
416452:	57                   	push   %edi
416453:	53                   	push   %ebx
416454:	e8 3a 92 00 00       	call   0x41f693
416459:	6a 00                	push   $0x0
41645b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41645e:	e8 ad e8 ff ff       	call   0x414d10
416463:	8b 4d fc             	mov    -0x4(%ebp),%ecx
416466:	83 c4 10             	add    $0x10,%esp
416469:	85 c9                	test   %ecx,%ecx
41646b:	75 08                	jne    0x416475
41646d:	83 c8 ff             	or     $0xffffffff,%eax
416470:	e9 91 00 00 00       	jmp    0x416506
416475:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
416478:	8b d9                	mov    %ecx,%ebx
41647a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41647d:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
416480:	a1 28 ba 43 00       	mov    0x43ba28,%eax
416485:	8b 7d fc             	mov    -0x4(%ebp),%edi
416488:	83 e0 1f             	and    $0x1f,%eax
41648b:	6a 20                	push   $0x20
41648d:	59                   	pop    %ecx
41648e:	2b c8                	sub    %eax,%ecx
416490:	33 c0                	xor    %eax,%eax
416492:	d3 c8                	ror    %cl,%eax
416494:	8b cf                	mov    %edi,%ecx
416496:	33 05 28 ba 43 00    	xor    0x43ba28,%eax
41649c:	89 45 f4             	mov    %eax,-0xc(%ebp)
41649f:	8b c6                	mov    %esi,%eax
4164a1:	2b c7                	sub    %edi,%eax
4164a3:	83 c0 03             	add    $0x3,%eax
4164a6:	c1 e8 02             	shr    $0x2,%eax
4164a9:	3b f7                	cmp    %edi,%esi
4164ab:	1b d2                	sbb    %edx,%edx
4164ad:	f7 d2                	not    %edx
4164af:	23 d0                	and    %eax,%edx
4164b1:	89 55 fc             	mov    %edx,-0x4(%ebp)
4164b4:	74 10                	je     0x4164c6
4164b6:	8b 55 f4             	mov    -0xc(%ebp),%edx
4164b9:	33 c0                	xor    %eax,%eax
4164bb:	40                   	inc    %eax
4164bc:	89 11                	mov    %edx,(%ecx)
4164be:	8d 49 04             	lea    0x4(%ecx),%ecx
4164c1:	3b 45 fc             	cmp    -0x4(%ebp),%eax
4164c4:	75 f5                	jne    0x4164bb
4164c6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4164c9:	8b 40 04             	mov    0x4(%eax),%eax
4164cc:	ff 30                	push   (%eax)
4164ce:	e8 ba fd ff ff       	call   0x41628d
4164d3:	53                   	push   %ebx
4164d4:	89 07                	mov    %eax,(%edi)
4164d6:	e8 06 04 ff ff       	call   0x4068e1
4164db:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4164de:	8b 0b                	mov    (%ebx),%ecx
4164e0:	8b 09                	mov    (%ecx),%ecx
4164e2:	89 01                	mov    %eax,(%ecx)
4164e4:	8d 47 04             	lea    0x4(%edi),%eax
4164e7:	50                   	push   %eax
4164e8:	e8 f4 03 ff ff       	call   0x4068e1
4164ed:	8b 0b                	mov    (%ebx),%ecx
4164ef:	56                   	push   %esi
4164f0:	8b 09                	mov    (%ecx),%ecx
4164f2:	89 41 04             	mov    %eax,0x4(%ecx)
4164f5:	e8 e7 03 ff ff       	call   0x4068e1
4164fa:	8b 0b                	mov    (%ebx),%ecx
4164fc:	83 c4 10             	add    $0x10,%esp