5032ce:	8b 88 a4 01 00 00    	mov    0x1a4(%eax),%ecx
5032d4:	ff 51 0c             	call   *0xc(%ecx)
5032d7:	85 c0                	test   %eax,%eax
5032d9:	0f 84 e7 00 00 00    	je     0x5033c6
5032df:	c7 43 30 01 00 00 00 	movl   $0x1,0x30(%ebx)
5032e6:	ff 43 4c             	incl   0x4c(%ebx)
5032e9:	8b 53 44             	mov    0x44(%ebx),%edx
5032ec:	83 ea 01             	sub    $0x1,%edx
5032ef:	72 4d                	jb     0x50333e
5032f1:	74 73                	je     0x503366
5032f3:	4a                   	dec    %edx
5032f4:	0f 85 cc 00 00 00    	jne    0x5033c6
5032fa:	8b 43 48             	mov    0x48(%ebx),%eax
5032fd:	50                   	push   %eax
5032fe:	8b 55 fc             	mov    -0x4(%ebp),%edx
503301:	52                   	push   %edx
503302:	8b 4d f8             	mov    -0x8(%ebp),%ecx
503305:	51                   	push   %ecx
503306:	8d 4b 34             	lea    0x34(%ebx),%ecx
503309:	8b 45 08             	mov    0x8(%ebp),%eax
50330c:	50                   	push   %eax
50330d:	8b c6                	mov    %esi,%eax
50330f:	8b 53 40             	mov    0x40(%ebx),%edx
503312:	8b b8 a8 01 00 00    	mov    0x1a8(%eax),%edi
503318:	8b 54 93 38          	mov    0x38(%ebx,%edx,4),%edx
50331c:	ff 57 04             	call   *0x4(%edi)
50331f:	8b 43 34             	mov    0x34(%ebx),%eax
503322:	3b 43 48             	cmp    0x48(%ebx),%eax
503325:	0f 82 9b 00 00 00    	jb     0x5033c6
50332b:	33 d2                	xor    %edx,%edx
50332d:	89 53 44             	mov    %edx,0x44(%ebx)
503330:	8b 4d f8             	mov    -0x8(%ebp),%ecx
503333:	8b 01                	mov    (%ecx),%eax
503335:	3b 45 08             	cmp    0x8(%ebp),%eax
503338:	0f 83 88 00 00 00    	jae    0x5033c6
50333e:	33 d2                	xor    %edx,%edx
503340:	89 53 34             	mov    %edx,0x34(%ebx)
503343:	8b 8e 34 01 00 00    	mov    0x134(%esi),%ecx
503349:	49                   	dec    %ecx
50334a:	89 4b 48             	mov    %ecx,0x48(%ebx)
50334d:	8b 43 4c             	mov    0x4c(%ebx),%eax
503350:	3b 86 38 01 00 00    	cmp    0x138(%esi),%eax
503356:	75 07                	jne    0x50335f
503358:	8b c6                	mov    %esi,%eax
50335a:	e8 a5 fd ff ff       	call   0x503104
50335f:	c7 43 44 01 00 00 00 	movl   $0x1,0x44(%ebx)
503366:	8b 53 48             	mov    0x48(%ebx),%edx
503369:	52                   	push   %edx
50336a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50336d:	51                   	push   %ecx
50336e:	8b 45 f8             	mov    -0x8(%ebp),%eax
503371:	50                   	push   %eax
503372:	8b 55 08             	mov    0x8(%ebp),%edx
503375:	52                   	push   %edx
503376:	8d 4b 34             	lea    0x34(%ebx),%ecx
503379:	8b 43 40             	mov    0x40(%ebx),%eax
50337c:	8b 54 83 38          	mov    0x38(%ebx,%eax,4),%edx
503380:	8b c6                	mov    %esi,%eax
503382:	8b b8 a8 01 00 00    	mov    0x1a8(%eax),%edi
503388:	ff 57 04             	call   *0x4(%edi)
50338b:	8b 43 34             	mov    0x34(%ebx),%eax
50338e:	3b 43 48             	cmp    0x48(%ebx),%eax
503391:	72 33                	jb     0x5033c6
503393:	83 7b 4c 01          	cmpl   $0x1,0x4c(%ebx)
503397:	75 07                	jne    0x5033a0
503399:	8b c6                	mov    %esi,%eax
50339b:	e8 68 fc ff ff       	call   0x503008
5033a0:	83 73 40 01          	xorl   $0x1,0x40(%ebx)
5033a4:	33 d2                	xor    %edx,%edx
5033a6:	89 53 30             	mov    %edx,0x30(%ebx)
5033a9:	8b 8e 34 01 00 00    	mov    0x134(%esi),%ecx
5033af:	41                   	inc    %ecx
5033b0:	89 4b 34             	mov    %ecx,0x34(%ebx)
5033b3:	8b 86 34 01 00 00    	mov    0x134(%esi),%eax
5033b9:	83 c0 02             	add    $0x2,%eax
5033bc:	89 43 48             	mov    %eax,0x48(%ebx)
5033bf:	c7 43 44 02 00 00 00 	movl   $0x2,0x44(%ebx)
5033c6:	5f                   	pop    %edi
5033c7:	5e                   	pop    %esi
5033c8:	5b                   	pop    %ebx
5033c9:	59                   	pop    %ecx
5033ca:	59                   	pop    %ecx
5033cb:	5d                   	pop    %ebp
5033cc:	c2 04 00             	ret    $0x4
5033cf:	90                   	nop
5033d0:	55                   	push   %ebp
5033d1:	8b ec                	mov    %esp,%ebp
5033d3:	53                   	push   %ebx
5033d4:	6a 00                	push   $0x0
5033d6:	52                   	push   %edx
5033d7:	51                   	push   %ecx
5033d8:	8b 55 08             	mov    0x8(%ebp),%edx
5033db:	52                   	push   %edx
5033dc:	33 d2                	xor    %edx,%edx
5033de:	33 c9                	xor    %ecx,%ecx
5033e0:	8b 98 a8 01 00 00    	mov    0x1a8(%eax),%ebx
5033e6:	ff 53 04             	call   *0x4(%ebx)
5033e9:	5b                   	pop    %ebx
5033ea:	5d                   	pop    %ebp
5033eb:	c2 04 00             	ret    $0x4
5033ee:	90                   	nop
5033ef:	90                   	nop
5033f0:	53                   	push   %ebx
5033f1:	56                   	push   %esi
5033f2:	8b f0                	mov    %eax,%esi
5033f4:	57                   	push   %edi
5033f5:	8b c6                	mov    %esi,%eax
5033f7:	55                   	push   %ebp
5033f8:	8b da                	mov    %edx,%ebx
5033fa:	ba 01 00 00 00       	mov    $0x1,%edx
5033ff:	8b 78 04             	mov    0x4(%eax),%edi
503402:	83 c4 f4             	add    $0xfffffff4,%esp
503405:	b9 50 00 00 00       	mov    $0x50,%ecx
50340a:	ff 17                	call   *(%edi)
50340c:	8b f8                	mov    %eax,%edi
50340e:	89 be a0 01 00 00    	mov    %edi,0x1a0(%esi)
503414:	c7 07 c8 31 50 00    	movl   $0x5031c8,(%edi)
50341a:	85 db                	test   %ebx,%ebx
50341c:	74 0f                	je     0x50342d
50341e:	8b 06                	mov    (%esi),%eax
503420:	c7 40 14 04 00 00 00 	movl   $0x4,0x14(%eax)
503427:	8b c6                	mov    %esi,%eax
503429:	8b 10                	mov    (%eax),%edx
50342b:	ff 12                	call   *(%edx)
50342d:	8b 8e bc 01 00 00    	mov    0x1bc(%esi),%ecx
503433:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
503437:	74 2e                	je     0x503467
503439:	83 be 34 01 00 00 02 	cmpl   $0x2,0x134(%esi)
503440:	7d 0f                	jge    0x503451
503442:	8b 06                	mov    (%esi),%eax
503444:	c7 40 14 2e 00 00 00 	movl   $0x2e,0x14(%eax)
50344b:	8b c6                	mov    %esi,%eax
50344d:	8b 10                	mov    (%eax),%edx
50344f:	ff 12                	call   *(%edx)
503451:	8b c6                	mov    %esi,%eax
503453:	e8 a0 f9 ff ff       	call   0x502df8
503458:	8b 96 34 01 00 00    	mov    0x134(%esi),%edx
50345e:	83 c2 02             	add    $0x2,%edx
503461:	89 54 24 08          	mov    %edx,0x8(%esp)
503465:	eb 0a                	jmp    0x503471
503467:	8b 8e 34 01 00 00    	mov    0x134(%esi),%ecx
50346d:	89 4c 24 08          	mov    %ecx,0x8(%esp)
503471:	33 c0                	xor    %eax,%eax
503473:	89 04 24             	mov    %eax,(%esp)
503476:	8b 9e d4 00 00 00    	mov    0xd4(%esi),%ebx
50347c:	8d 47 08             	lea    0x8(%edi),%eax
50347f:	8b f8                	mov    %eax,%edi
503481:	eb 3a                	jmp    0x5034bd
503483:	8b 43 0c             	mov    0xc(%ebx),%eax
503486:	f7 6b 24             	imull  0x24(%ebx)
503489:	99                   	cltd
50348a:	f7 be 34 01 00 00    	idivl  0x134(%esi)
503490:	89 44 24 04          	mov    %eax,0x4(%esp)
503494:	8b c6                	mov    %esi,%eax
503496:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50349a:	ba 01 00 00 00       	mov    $0x1,%edx
50349f:	0f af 4c 24 08       	imul   0x8(%esp),%ecx
5034a4:	51                   	push   %ecx
5034a5:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
5034a8:	8b 68 04             	mov    0x4(%eax),%ebp
5034ab:	0f af 4b 24          	imul   0x24(%ebx),%ecx
5034af:	ff 55 08             	call   *0x8(%ebp)
5034b2:	89 07                	mov    %eax,(%edi)
5034b4:	83 c7 04             	add    $0x4,%edi
5034b7:	ff 04 24             	incl   (%esp)
5034ba:	83 c3 54             	add    $0x54,%ebx
5034bd:	8b 04 24             	mov    (%esp),%eax
5034c0:	3b 46 20             	cmp    0x20(%esi),%eax
5034c3:	7c be                	jl     0x503483
5034c5:	83 c4 0c             	add    $0xc,%esp
5034c8:	5d                   	pop    %ebp
5034c9:	5f                   	pop    %edi
5034ca:	5e                   	pop    %esi
5034cb:	5b                   	pop    %ebx
5034cc:	c3                   	ret
5034cd:	8d 40 00             	lea    0x0(%eax),%eax
5034d0:	83 b8 40 01 00 00 01 	cmpl   $0x1,0x140(%eax)
5034d7:	8b 90 a4 01 00 00    	mov    0x1a4(%eax),%edx
5034dd:	7e 09                	jle    0x5034e8
5034df:	c7 42 1c 01 00 00 00 	movl   $0x1,0x1c(%edx)
5034e6:	eb 29                	jmp    0x503511
5034e8:	8b 88 38 01 00 00    	mov    0x138(%eax),%ecx
5034ee:	49                   	dec    %ecx
5034ef:	3b 88 90 00 00 00    	cmp    0x90(%eax),%ecx
5034f5:	76 0e                	jbe    0x503505
5034f7:	8b 80 44 01 00 00    	mov    0x144(%eax),%eax
5034fd:	8b 40 0c             	mov    0xc(%eax),%eax
503500:	89 42 1c             	mov    %eax,0x1c(%edx)
503503:	eb 0c                	jmp    0x503511
503505:	8b 88 44 01 00 00    	mov    0x144(%eax),%ecx
50350b:	8b 41 48             	mov    0x48(%ecx),%eax
50350e:	89 42 1c             	mov    %eax,0x1c(%edx)
503511:	33 c9                	xor    %ecx,%ecx
503513:	33 c0                	xor    %eax,%eax
503515:	89 4a 14             	mov    %ecx,0x14(%edx)
503518:	89 42 18             	mov    %eax,0x18(%edx)
50351b:	c3                   	ret
50351c:	33 d2                	xor    %edx,%edx
50351e:	89 90 90 00 00 00    	mov    %edx,0x90(%eax)
503524:	e8 a7 ff ff ff       	call   0x5034d0
503529:	c3                   	ret
50352a:	90                   	nop
50352b:	90                   	nop
50352c:	53                   	push   %ebx
50352d:	8b d8                	mov    %eax,%ebx
50352f:	56                   	push   %esi
503530:	8b b3 a4 01 00 00    	mov    0x1a4(%ebx),%esi
503536:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
50353a:	74 21                	je     0x50355d
50353c:	83 7b 4c 00          	cmpl   $0x0,0x4c(%ebx)
503540:	74 14                	je     0x503556
503542:	8b c3                	mov    %ebx,%eax
503544:	e8 33 06 00 00       	call   0x503b7c
503549:	85 c0                	test   %eax,%eax
50354b:	74 09                	je     0x503556
50354d:	c7 46 0c 8c 3c 50 00 	movl   $0x503c8c,0xc(%esi)
503554:	eb 07                	jmp    0x50355d
503556:	c7 46 0c ac 39 50 00 	movl   $0x5039ac,0xc(%esi)
50355d:	33 d2                	xor    %edx,%edx
50355f:	89 93 98 00 00 00    	mov    %edx,0x98(%ebx)
503565:	5e                   	pop    %esi
503566:	5b                   	pop    %ebx
503567:	c3                   	ret
503568:	53                   	push   %ebx
503569:	56                   	push   %esi
50356a:	57                   	push   %edi
50356b:	83 c4 c0             	add    $0xffffffc0,%esp
50356e:	89 54 24 04          	mov    %edx,0x4(%esp)
503572:	89 04 24             	mov    %eax,(%esp)
503575:	8b 04 24             	mov    (%esp),%eax
503578:	8b 90 a4 01 00 00    	mov    0x1a4(%eax),%edx
50357e:	89 54 24 08          	mov    %edx,0x8(%esp)
503582:	8b 0c 24             	mov    (%esp),%ecx
503585:	8b 81 54 01 00 00    	mov    0x154(%ecx),%eax
50358b:	48                   	dec    %eax
50358c:	89 44 24 10          	mov    %eax,0x10(%esp)
503590:	8b 14 24             	mov    (%esp),%edx
503593:	8b 8a 38 01 00 00    	mov    0x138(%edx),%ecx
503599:	49                   	dec    %ecx
50359a:	89 4c 24 14          	mov    %ecx,0x14(%esp)
50359e:	8b 44 24 08          	mov    0x8(%esp),%eax
5035a2:	8b 50 18             	mov    0x18(%eax),%edx
5035a5:	89 54 24 24          	mov    %edx,0x24(%esp)
5035a9:	e9 ae 01 00 00       	jmp    0x50375c
5035ae:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5035b2:	8b 41 14             	mov    0x14(%ecx),%eax
5035b5:	89 44 24 0c          	mov    %eax,0xc(%esp)
5035b9:	8b 54 24 0c          	mov    0xc(%esp),%edx
5035bd:	3b 54 24 10          	cmp    0x10(%esp),%edx
5035c1:	0f 87 88 01 00 00    	ja     0x50374f
5035c7:	8b 0c 24             	mov    (%esp),%ecx
5035ca:	8b 81 5c 01 00 00    	mov    0x15c(%ecx),%eax
5035d0:	c1 e0 07             	shl    $0x7,%eax
5035d3:	50                   	push   %eax
5035d4:	6a 00                	push   $0x0
5035d6:	8b 54 24 10          	mov    0x10(%esp),%edx
5035da:	8b 4a 20             	mov    0x20(%edx),%ecx
5035dd:	51                   	push   %ecx
5035de:	e8 d1 7c ff ff       	call   0x4fb2b4
5035e3:	83 c4 0c             	add    $0xc,%esp
5035e6:	8b 04 24             	mov    (%esp),%eax
5035e9:	8b 54 24 08          	mov    0x8(%esp),%edx
5035ed:	83 c2 20             	add    $0x20,%edx
5035f0:	8b 88 b4 01 00 00    	mov    0x1b4(%eax),%ecx
5035f6:	ff 51 04             	call   *0x4(%ecx)
5035f9:	85 c0                	test   %eax,%eax
5035fb:	75 1d                	jne    0x50361a
5035fd:	8b 44 24 08          	mov    0x8(%esp),%eax
503601:	8b 54 24 24          	mov    0x24(%esp),%edx
503605:	89 50 18             	mov    %edx,0x18(%eax)
503608:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50360c:	8b 44 24 0c          	mov    0xc(%esp),%eax
503610:	89 41 14             	mov    %eax,0x14(%ecx)
503613:	33 c0                	xor    %eax,%eax
503615:	e9 96 01 00 00       	jmp    0x5037b0
50361a:	33 d2                	xor    %edx,%edx
50361c:	33 c9                	xor    %ecx,%ecx
50361e:	89 54 24 18          	mov    %edx,0x18(%esp)
503622:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
503626:	8b 44 24 04          	mov    0x4(%esp),%eax
50362a:	8b d0                	mov    %eax,%edx
50362c:	89 54 24 3c          	mov    %edx,0x3c(%esp)
503630:	8b 0c 24             	mov    (%esp),%ecx
503633:	8d 81 44 01 00 00    	lea    0x144(%ecx),%eax
503639:	89 44 24 38          	mov    %eax,0x38(%esp)
50363d:	e9 e8 00 00 00       	jmp    0x50372a
503642:	8b 54 24 38          	mov    0x38(%esp),%edx
503646:	8b 1a                	mov    (%edx),%ebx
503648:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
50364c:	75 0c                	jne    0x50365a
50364e:	8b 43 3c             	mov    0x3c(%ebx),%eax
503651:	01 44 24 18          	add    %eax,0x18(%esp)
503655:	e9 c2 00 00 00       	jmp    0x50371c
50365a:	8b 14 24             	mov    (%esp),%edx
50365d:	8b 8a b8 01 00 00    	mov    0x1b8(%edx),%ecx
503663:	8b 43 04             	mov    0x4(%ebx),%eax
503666:	8b 54 81 04          	mov    0x4(%ecx,%eax,4),%edx
50366a:	89 54 24 34          	mov    %edx,0x34(%esp)
50366e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
503672:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
503676:	73 05                	jae    0x50367d
503678:	8b 43 34             	mov    0x34(%ebx),%eax
50367b:	eb 03                	jmp    0x503680
50367d:	8b 43 44             	mov    0x44(%ebx),%eax
503680:	89 44 24 28          	mov    %eax,0x28(%esp)
503684:	8b 54 24 3c          	mov    0x3c(%esp),%edx
503688:	8b 0a                	mov    (%edx),%ecx
50368a:	8b 44 24 24          	mov    0x24(%esp),%eax
50368e:	f7 6b 24             	imull  0x24(%ebx)
503691:	c1 e0 02             	shl    $0x2,%eax
503694:	03 c8                	add    %eax,%ecx
503696:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
50369a:	8b 54 24 0c          	mov    0xc(%esp),%edx
50369e:	0f af 53 40          	imul   0x40(%ebx),%edx
5036a2:	89 54 24 30          	mov    %edx,0x30(%esp)
5036a6:	33 c9                	xor    %ecx,%ecx
5036a8:	89 4c 24 20          	mov    %ecx,0x20(%esp)
5036ac:	eb 65                	jmp    0x503713
5036ae:	8b 04 24             	mov    (%esp),%eax
5036b1:	8b 90 90 00 00 00    	mov    0x90(%eax),%edx
5036b7:	3b 54 24 14          	cmp    0x14(%esp),%edx
5036bb:	72 0d                	jb     0x5036ca
5036bd:	8b 4c 24 24          	mov    0x24(%esp),%ecx
5036c1:	03 4c 24 20          	add    0x20(%esp),%ecx
5036c5:	3b 4b 48             	cmp    0x48(%ebx),%ecx
5036c8:	7d 34                	jge    0x5036fe
5036ca:	8b 7c 24 30          	mov    0x30(%esp),%edi
5036ce:	33 f6                	xor    %esi,%esi
5036d0:	3b 74 24 28          	cmp    0x28(%esp),%esi
5036d4:	7d 28                	jge    0x5036fe
5036d6:	8b 44 24 2c          	mov    0x2c(%esp),%eax
5036da:	50                   	push   %eax
5036db:	57                   	push   %edi
5036dc:	8b 54 24 20          	mov    0x20(%esp),%edx
5036e0:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5036e4:	03 d6                	add    %esi,%edx
5036e6:	8b 44 24 08          	mov    0x8(%esp),%eax
5036ea:	8b 4c 91 20          	mov    0x20(%ecx,%edx,4),%ecx
5036ee:	8b d3                	mov    %ebx,%edx
5036f0:	ff 54 24 3c          	call   *0x3c(%esp)
5036f4:	03 7b 24             	add    0x24(%ebx),%edi
5036f7:	46                   	inc    %esi
5036f8:	3b 74 24 28          	cmp    0x28(%esp),%esi
5036fc:	7c d8                	jl     0x5036d6
5036fe:	8b 43 34             	mov    0x34(%ebx),%eax
503701:	01 44 24 18          	add    %eax,0x18(%esp)
503705:	8b 53 24             	mov    0x24(%ebx),%edx
503708:	c1 e2 02             	shl    $0x2,%edx
50370b:	01 54 24 2c          	add    %edx,0x2c(%esp)
50370f:	ff 44 24 20          	incl   0x20(%esp)