4121ef:	8d 45 bc             	lea    -0x44(%ebp),%eax
4121f2:	50                   	push   %eax
4121f3:	ff 75 e8             	push   -0x18(%ebp)
4121f6:	e8 bc ef ff ff       	call   0x4111b7
4121fb:	e9 94 00 00 00       	jmp    0x412294
412200:	53                   	push   %ebx
412201:	6a 0b                	push   $0xb
412203:	8d 4d bc             	lea    -0x44(%ebp),%ecx
412206:	e8 84 7f ff ff       	call   0x40a18f
41220b:	8b 4e 54             	mov    0x54(%esi),%ecx
41220e:	8d 45 c4             	lea    -0x3c(%ebp),%eax
412211:	50                   	push   %eax
412212:	ff 75 e8             	push   -0x18(%ebp)
412215:	e8 5b ee ff ff       	call   0x411075
41221a:	eb 78                	jmp    0x412294
41221c:	53                   	push   %ebx
41221d:	6a 08                	push   $0x8
41221f:	8d 4d bc             	lea    -0x44(%ebp),%ecx
412222:	e8 68 7f ff ff       	call   0x40a18f
412227:	8b 4e 54             	mov    0x54(%esi),%ecx
41222a:	8b 41 14             	mov    0x14(%ecx),%eax
41222d:	8b 55 e0             	mov    -0x20(%ebp),%edx
412230:	53                   	push   %ebx
412231:	53                   	push   %ebx
412232:	ff 74 10 10          	push   0x10(%eax,%edx,1)
412236:	ff 75 e8             	push   -0x18(%ebp)
412239:	e8 5c dc ff ff       	call   0x40fe9a
41223e:	50                   	push   %eax
41223f:	6a ff                	push   $0xffffffff
412241:	ff 75 c4             	push   -0x3c(%ebp)
412244:	53                   	push   %ebx
412245:	53                   	push   %ebx
412246:	ff 15 a0 03 4b 00    	call   *0x4b03a0
41224c:	eb 46                	jmp    0x412294
41224e:	3d 82 00 00 00       	cmp    $0x82,%eax
412253:	75 3f                	jne    0x412294
412255:	53                   	push   %ebx
412256:	6a 08                	push   $0x8
412258:	8d 4d bc             	lea    -0x44(%ebp),%ecx
41225b:	e8 2f 7f ff ff       	call   0x40a18f
412260:	8b 7e 54             	mov    0x54(%esi),%edi
412263:	ff 75 e8             	push   -0x18(%ebp)
412266:	8b cf                	mov    %edi,%ecx
412268:	e8 2d dc ff ff       	call   0x40fe9a
41226d:	8b 4f 14             	mov    0x14(%edi),%ecx
412270:	8b 55 e0             	mov    -0x20(%ebp),%edx
412273:	8b 7c 11 10          	mov    0x10(%ecx,%edx,1),%edi
412277:	d1 ef                	shr    $1,%edi
412279:	8d 4f ff             	lea    -0x1(%edi),%ecx
41227c:	51                   	push   %ecx
41227d:	ff 75 c4             	push   -0x3c(%ebp)
412280:	89 45 d8             	mov    %eax,-0x28(%ebp)
412283:	50                   	push   %eax
412284:	e8 ad 87 00 00       	call   0x41aa36
412289:	8b 45 d8             	mov    -0x28(%ebp),%eax
41228c:	83 c4 0c             	add    $0xc,%esp
41228f:	66 89 5c 78 fe       	mov    %bx,-0x2(%eax,%edi,2)
412294:	8b 46 50             	mov    0x50(%esi),%eax
412297:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
41229a:	89 48 08             	mov    %ecx,0x8(%eax)
41229d:	8b 4e 50             	mov    0x50(%esi),%ecx
4122a0:	e8 b7 f8 ff ff       	call   0x411b5c
4122a5:	8b 46 54             	mov    0x54(%esi),%eax
4122a8:	8b 4e 50             	mov    0x50(%esi),%ecx
4122ab:	ff 75 d0             	push   -0x30(%ebp)
4122ae:	8b 3d f4 04 4b 00    	mov    0x4b04f4,%edi
4122b4:	89 41 08             	mov    %eax,0x8(%ecx)
4122b7:	ff d7                	call   *%edi
4122b9:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
4122bc:	88 5d fc             	mov    %bl,-0x4(%ebp)
4122bf:	e8 bb c1 ff ff       	call   0x40e47f
4122c4:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4122c8:	8d 45 bc             	lea    -0x44(%ebp),%eax
4122cb:	50                   	push   %eax
4122cc:	ff d7                	call   *%edi
4122ce:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
4122d1:	0f 85 7b fc ff ff    	jne    0x411f52
4122d7:	ff 45 e8             	incl   -0x18(%ebp)
4122da:	8b 45 e8             	mov    -0x18(%ebp),%eax
4122dd:	83 45 dc 28          	addl   $0x28,-0x24(%ebp)
4122e1:	83 45 e0 30          	addl   $0x30,-0x20(%ebp)
4122e5:	3b 46 10             	cmp    0x10(%esi),%eax
4122e8:	0f 8e 44 fc ff ff    	jle    0x411f32
4122ee:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4122f1:	7e 03                	jle    0x4122f6
4122f3:	89 5e 44             	mov    %ebx,0x44(%esi)
4122f6:	33 c0                	xor    %eax,%eax
4122f8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4122fb:	5f                   	pop    %edi
4122fc:	5e                   	pop    %esi
4122fd:	5b                   	pop    %ebx
4122fe:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
412305:	c9                   	leave
412306:	c3                   	ret
412307:	8d 4e 0c             	lea    0xc(%esi),%ecx
41230a:	39 19                	cmp    %ebx,(%ecx)
41230c:	75 12                	jne    0x412320
41230e:	8b 46 08             	mov    0x8(%esi),%eax
412311:	8b 10                	mov    (%eax),%edx
412313:	51                   	push   %ecx
412314:	68 6c 46 49 00       	push   $0x49466c
412319:	50                   	push   %eax
41231a:	ff 12                	call   *(%edx)
41231c:	3b c3                	cmp    %ebx,%eax
41231e:	7c d6                	jl     0x4122f6
412320:	39 5e 10             	cmp    %ebx,0x10(%esi)
412323:	89 5d ec             	mov    %ebx,-0x14(%ebp)
412326:	0f 8e 3e 01 00 00    	jle    0x41246a
41232c:	89 5d dc             	mov    %ebx,-0x24(%ebp)
41232f:	8b 46 14             	mov    0x14(%esi),%eax
412332:	8b 4d dc             	mov    -0x24(%ebp),%ecx
412335:	8b 44 08 24          	mov    0x24(%eax,%ecx,1),%eax
412339:	8b 40 04             	mov    0x4(%eax),%eax
41233c:	3b c3                	cmp    %ebx,%eax
41233e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
412341:	0f 84 10 01 00 00    	je     0x412457
412347:	8d 04 7f             	lea    (%edi,%edi,2),%eax
41234a:	c1 e0 04             	shl    $0x4,%eax
41234d:	89 45 e0             	mov    %eax,-0x20(%ebp)
412350:	8b 4d dc             	mov    -0x24(%ebp),%ecx
412353:	8d 45 d4             	lea    -0x2c(%ebp),%eax
412356:	50                   	push   %eax
412357:	8b 46 14             	mov    0x14(%esi),%eax
41235a:	8b 4c 08 24          	mov    0x24(%eax,%ecx,1),%ecx
41235e:	e8 ff 50 ff ff       	call   0x407462
412363:	8b 38                	mov    (%eax),%edi
412365:	8d 87 a4 00 00 00    	lea    0xa4(%edi),%eax
41236b:	39 18                	cmp    %ebx,(%eax)
41236d:	0f 84 d1 00 00 00    	je     0x412444
412373:	ff 45 e4             	incl   -0x1c(%ebp)
412376:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
41237a:	89 18                	mov    %ebx,(%eax)
41237c:	75 35                	jne    0x4123b3
41237e:	8b 46 0c             	mov    0xc(%esi),%eax
412381:	8b 08                	mov    (%eax),%ecx
412383:	8d 55 d0             	lea    -0x30(%ebp),%edx
412386:	52                   	push   %edx
412387:	50                   	push   %eax
412388:	ff 51 18             	call   *0x18(%ecx)
41238b:	3b c3                	cmp    %ebx,%eax
41238d:	0f 8c 65 ff ff ff    	jl     0x4122f8
412393:	83 7d d0 01          	cmpl   $0x1,-0x30(%ebp)
412397:	75 13                	jne    0x4123ac
412399:	8b 46 0c             	mov    0xc(%esi),%eax
41239c:	8b 08                	mov    (%eax),%ecx
41239e:	6a 01                	push   $0x1
4123a0:	50                   	push   %eax
4123a1:	ff 51 0c             	call   *0xc(%ecx)
4123a4:	3b c3                	cmp    %ebx,%eax
4123a6:	0f 8c 4c ff ff ff    	jl     0x4122f8
4123ac:	c7 46 44 01 00 00 00 	movl   $0x1,0x44(%esi)
4123b3:	8d 45 bc             	lea    -0x44(%ebp),%eax
4123b6:	50                   	push   %eax
4123b7:	c7 45 d8 10 00 00 00 	movl   $0x10,-0x28(%ebp)
4123be:	e8 f1 7f ff ff       	call   0x40a3b4
4123c3:	8d 8f a8 00 00 00    	lea    0xa8(%edi),%ecx
4123c9:	0f b7 01             	movzwl (%ecx),%eax
4123cc:	3b c3                	cmp    %ebx,%eax
4123ce:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4123d5:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4123d8:	7c 17                	jl     0x4123f1
4123da:	83 f8 01             	cmp    $0x1,%eax
4123dd:	7e 0e                	jle    0x4123ed
4123df:	83 f8 08             	cmp    $0x8,%eax
4123e2:	0f 84 46 01 00 00    	je     0x41252e
4123e8:	83 f8 0a             	cmp    $0xa,%eax
4123eb:	75 04                	jne    0x4123f1
4123ed:	83 4d d8 ff          	orl    $0xffffffff,-0x28(%ebp)
4123f1:	51                   	push   %ecx
4123f2:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4123f5:	e8 29 7f ff ff       	call   0x40a323
4123fa:	8b 46 3c             	mov    0x3c(%esi),%eax
4123fd:	8b 4d e0             	mov    -0x20(%ebp),%ecx
412400:	03 c1                	add    %ecx,%eax
412402:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
412405:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
41240c:	8b 48 2c             	mov    0x2c(%eax),%ecx
41240f:	89 4d ac             	mov    %ecx,-0x54(%ebp)
412412:	8b 4d d8             	mov    -0x28(%ebp),%ecx
412415:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
412418:	8d 4d bc             	lea    -0x44(%ebp),%ecx
41241b:	8d 7d a4             	lea    -0x5c(%ebp),%edi
41241e:	57                   	push   %edi
41241f:	89 4d b8             	mov    %ecx,-0x48(%ebp)
412422:	8b 4e 0c             	mov    0xc(%esi),%ecx
412425:	50                   	push   %eax
412426:	89 5d b0             	mov    %ebx,-0x50(%ebp)
412429:	8b 11                	mov    (%ecx),%edx
41242b:	51                   	push   %ecx
41242c:	ff 52 10             	call   *0x10(%edx)
41242f:	ff 75 cc             	push   -0x34(%ebp)
412432:	8b 3d f4 04 4b 00    	mov    0x4b04f4,%edi
412438:	ff d7                	call   *%edi
41243a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41243e:	8d 45 bc             	lea    -0x44(%ebp),%eax
412441:	50                   	push   %eax
412442:	ff d7                	call   *%edi
412444:	ff 45 e8             	incl   -0x18(%ebp)
412447:	83 45 e0 30          	addl   $0x30,-0x20(%ebp)
41244b:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
41244e:	0f 85 fc fe ff ff    	jne    0x412350
412454:	8b 7d e8             	mov    -0x18(%ebp),%edi
412457:	ff 45 ec             	incl   -0x14(%ebp)
41245a:	8b 45 ec             	mov    -0x14(%ebp),%eax
41245d:	83 45 dc 28          	addl   $0x28,-0x24(%ebp)
412461:	3b 46 10             	cmp    0x10(%esi),%eax
412464:	0f 8c c5 fe ff ff    	jl     0x41232f
41246a:	8b 46 1c             	mov    0x1c(%esi),%eax
41246d:	3b c3                	cmp    %ebx,%eax
41246f:	89 45 d4             	mov    %eax,-0x2c(%ebp)
412472:	0f 84 86 00 00 00    	je     0x4124fe
412478:	8d 45 d4             	lea    -0x2c(%ebp),%eax
41247b:	50                   	push   %eax
41247c:	8d 4e 18             	lea    0x18(%esi),%ecx
41247f:	e8 de 4f ff ff       	call   0x407462
412484:	8b 38                	mov    (%eax),%edi
412486:	8b 07                	mov    (%edi),%eax
412488:	39 58 4c             	cmp    %ebx,0x4c(%eax)
41248b:	74 68                	je     0x4124f5
41248d:	8b 40 4c             	mov    0x4c(%eax),%eax
412490:	8b 08                	mov    (%eax),%ecx
412492:	8d 55 dc             	lea    -0x24(%ebp),%edx
412495:	52                   	push   %edx
412496:	68 fc 45 49 00       	push   $0x4945fc
41249b:	50                   	push   %eax
41249c:	ff 11                	call   *(%ecx)
41249e:	85 c0                	test   %eax,%eax
4124a0:	7c 53                	jl     0x4124f5
4124a2:	8b 45 dc             	mov    -0x24(%ebp),%eax
4124a5:	ff 77 08             	push   0x8(%edi)
4124a8:	8b 08                	mov    (%eax),%ecx
4124aa:	50                   	push   %eax
4124ab:	ff 51 10             	call   *0x10(%ecx)
4124ae:	85 c0                	test   %eax,%eax
4124b0:	75 3a                	jne    0x4124ec
4124b2:	ff 45 e4             	incl   -0x1c(%ebp)
4124b5:	33 ff                	xor    %edi,%edi
4124b7:	47                   	inc    %edi
4124b8:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
4124bb:	75 2f                	jne    0x4124ec
4124bd:	8b 46 0c             	mov    0xc(%esi),%eax
4124c0:	8b 08                	mov    (%eax),%ecx
4124c2:	8d 55 cc             	lea    -0x34(%ebp),%edx
4124c5:	52                   	push   %edx
4124c6:	50                   	push   %eax
4124c7:	ff 51 18             	call   *0x18(%ecx)
4124ca:	3b c3                	cmp    %ebx,%eax
4124cc:	0f 8c 26 fe ff ff    	jl     0x4122f8
4124d2:	39 7d cc             	cmp    %edi,-0x34(%ebp)
4124d5:	75 12                	jne    0x4124e9
4124d7:	8b 46 0c             	mov    0xc(%esi),%eax
4124da:	8b 08                	mov    (%eax),%ecx
4124dc:	57                   	push   %edi
4124dd:	50                   	push   %eax
4124de:	ff 51 0c             	call   *0xc(%ecx)
4124e1:	3b c3                	cmp    %ebx,%eax
4124e3:	0f 8c 0f fe ff ff    	jl     0x4122f8
4124e9:	89 7e 44             	mov    %edi,0x44(%esi)
4124ec:	8b 45 dc             	mov    -0x24(%ebp),%eax
4124ef:	8b 08                	mov    (%eax),%ecx
4124f1:	50                   	push   %eax
4124f2:	ff 51 08             	call   *0x8(%ecx)
4124f5:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
4124f8:	0f 85 7a ff ff ff    	jne    0x412478
4124fe:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
412501:	0f 8e ef fd ff ff    	jle    0x4122f6
412507:	8b 46 0c             	mov    0xc(%esi),%eax
41250a:	8b 08                	mov    (%eax),%ecx
41250c:	53                   	push   %ebx
41250d:	53                   	push   %ebx
41250e:	53                   	push   %ebx
41250f:	50                   	push   %eax
412510:	ff 51 1c             	call   *0x1c(%ecx)
412513:	8b f8                	mov    %eax,%edi
412515:	3b fb                	cmp    %ebx,%edi
412517:	89 5e 44             	mov    %ebx,0x44(%esi)
41251a:	0f 8d d6 fd ff ff    	jge    0x4122f6
412520:	8b 06                	mov    (%esi),%eax
412522:	8b ce                	mov    %esi,%ecx
412524:	ff 50 10             	call   *0x10(%eax)
412527:	8b c7                	mov    %edi,%eax
412529:	e9 ca fd ff ff       	jmp    0x4122f8
41252e:	8b 87 b0 00 00 00    	mov    0xb0(%edi),%eax
412534:	66 39 18             	cmp    %bx,(%eax)
412537:	0f 85 b4 fe ff ff    	jne    0x4123f1
41253d:	83 4d d8 ff          	orl    $0xffffffff,-0x28(%ebp)
412541:	e9 b4 fe ff ff       	jmp    0x4123fa
412546:	56                   	push   %esi
412547:	8b f1                	mov    %ecx,%esi
412549:	e8 16 d4 ff ff       	call   0x40f964
41254e:	8b 06                	mov    (%esi),%eax
412550:	8b 08                	mov    (%eax),%ecx
412552:	6a 00                	push   $0x0
412554:	50                   	push   %eax
412555:	ff 51 1c             	call   *0x1c(%ecx)
412558:	85 c0                	test   %eax,%eax
41255a:	7c 0b                	jl     0x412567
41255c:	6a 01                	push   $0x1
41255e:	6a 00                	push   $0x0
412560:	8b ce                	mov    %esi,%ecx
412562:	e8 0c ea ff ff       	call   0x410f73
412567:	5e                   	pop    %esi
412568:	c3                   	ret
412569:	56                   	push   %esi
41256a:	8b f1                	mov    %ecx,%esi
41256c:	e8 1d f6 ff ff       	call   0x411b8e
412571:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
412576:	74 07                	je     0x41257f
412578:	56                   	push   %esi
412579:	e8 02 db 02 00       	call   0x440080
41257e:	59                   	pop    %ecx
41257f:	8b c6                	mov    %esi,%eax
412581:	5e                   	pop    %esi
412582:	c2 04 00             	ret    $0x4
412585:	56                   	push   %esi
412586:	ff 74 24 08          	push   0x8(%esp)
41258a:	8b f1                	mov    %ecx,%esi
41258c:	e8 a7 f6 ff ff       	call   0x411c38
412591:	ff 74 24 08          	push   0x8(%esp)
412595:	8b ce                	mov    %esi,%ecx
412597:	e8 57 ed ff ff       	call   0x4112f3
41259c:	5e                   	pop    %esi
41259d:	c2 04 00             	ret    $0x4
4125a0:	55                   	push   %ebp
4125a1:	8b ec                	mov    %esp,%ebp
4125a3:	83 ec 24             	sub    $0x24,%esp
4125a6:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
4125ab:	53                   	push   %ebx
4125ac:	57                   	push   %edi
4125ad:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4125b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4125b3:	e8 fa e8 ff ff       	call   0x410eb2
4125b8:	8b 45 08             	mov    0x8(%ebp),%eax
4125bb:	8b 08                	mov    (%eax),%ecx
4125bd:	8d 55 dc             	lea    -0x24(%ebp),%edx
4125c0:	52                   	push   %edx
4125c1:	68 c4 c5 48 00       	push   $0x48c5c4
4125c6:	50                   	push   %eax
4125c7:	ff 11                	call   *(%ecx)
4125c9:	8b 5d 14             	mov    0x14(%ebp),%ebx
4125cc:	85 db                	test   %ebx,%ebx
4125ce:	89 45 e0             	mov    %eax,-0x20(%ebp)
4125d1:	76 09                	jbe    0x4125dc
4125d3:	8b 7d 10             	mov    0x10(%ebp),%edi
4125d6:	8b cb                	mov    %ebx,%ecx
4125d8:	33 c0                	xor    %eax,%eax
4125da:	f3 ab                	rep stos %eax,%es:(%edi)
4125dc:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
4125e0:	7c 7d                	jl     0x41265f
4125e2:	83 65 14 00          	andl   $0x0,0x14(%ebp)