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)
503713:	8b 4c 24 20          	mov    0x20(%esp),%ecx
503717:	3b 4b 38             	cmp    0x38(%ebx),%ecx
50371a:	7c 92                	jl     0x5036ae
50371c:	ff 44 24 1c          	incl   0x1c(%esp)
503720:	83 44 24 3c 04       	addl   $0x4,0x3c(%esp)
503725:	83 44 24 38 04       	addl   $0x4,0x38(%esp)
50372a:	8b 04 24             	mov    (%esp),%eax
50372d:	8b 90 40 01 00 00    	mov    0x140(%eax),%edx
503733:	3b 54 24 1c          	cmp    0x1c(%esp),%edx
503737:	0f 8f 05 ff ff ff    	jg     0x503642
50373d:	ff 44 24 0c          	incl   0xc(%esp)
503741:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
503745:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
503749:	0f 86 78 fe ff ff    	jbe    0x5035c7
50374f:	8b 44 24 08          	mov    0x8(%esp),%eax
503753:	33 d2                	xor    %edx,%edx
503755:	89 50 14             	mov    %edx,0x14(%eax)
503758:	ff 44 24 24          	incl   0x24(%esp)
50375c:	8b 4c 24 08          	mov    0x8(%esp),%ecx
503760:	8b 41 1c             	mov    0x1c(%ecx),%eax
503763:	3b 44 24 24          	cmp    0x24(%esp),%eax
503767:	0f 8f 41 fe ff ff    	jg     0x5035ae
50376d:	8b 14 24             	mov    (%esp),%edx
503770:	ff 82 98 00 00 00    	incl   0x98(%edx)
503776:	8b 0c 24             	mov    (%esp),%ecx
503779:	ff 81 90 00 00 00    	incl   0x90(%ecx)
50377f:	8b 81 90 00 00 00    	mov    0x90(%ecx),%eax
503785:	8b 14 24             	mov    (%esp),%edx
503788:	3b 82 38 01 00 00    	cmp    0x138(%edx),%eax
50378e:	73 0f                	jae    0x50379f
503790:	8b 04 24             	mov    (%esp),%eax
503793:	e8 38 fd ff ff       	call   0x5034d0
503798:	b8 03 00 00 00       	mov    $0x3,%eax
50379d:	eb 11                	jmp    0x5037b0
50379f:	8b 04 24             	mov    (%esp),%eax
5037a2:	8b 90 ac 01 00 00    	mov    0x1ac(%eax),%edx
5037a8:	ff 52 0c             	call   *0xc(%edx)
5037ab:	b8 04 00 00 00       	mov    $0x4,%eax
5037b0:	83 c4 40             	add    $0x40,%esp
5037b3:	5f                   	pop    %edi
5037b4:	5e                   	pop    %esi
5037b5:	5b                   	pop    %ebx
5037b6:	c3                   	ret
5037b7:	90                   	nop
5037b8:	33 c0                	xor    %eax,%eax
5037ba:	c3                   	ret
5037bb:	90                   	nop
5037bc:	53                   	push   %ebx
5037bd:	56                   	push   %esi
5037be:	57                   	push   %edi
5037bf:	83 c4 c8             	add    $0xffffffc8,%esp
5037c2:	33 c9                	xor    %ecx,%ecx
5037c4:	89 04 24             	mov    %eax,(%esp)
5037c7:	8b 04 24             	mov    (%esp),%eax
5037ca:	8d 74 24 28          	lea    0x28(%esp),%esi
5037ce:	8b 90 a4 01 00 00    	mov    0x1a4(%eax),%edx
5037d4:	89 54 24 04          	mov    %edx,0x4(%esp)
5037d8:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5037dc:	8b 04 24             	mov    (%esp),%eax
5037df:	8d 98 44 01 00 00    	lea    0x144(%eax),%ebx
5037e5:	eb 42                	jmp    0x503829
5037e7:	8b 03                	mov    (%ebx),%eax
5037e9:	89 44 24 18          	mov    %eax,0x18(%esp)
5037ed:	8b 54 24 18          	mov    0x18(%esp),%edx
5037f1:	8b 7a 0c             	mov    0xc(%edx),%edi
5037f4:	57                   	push   %edi
5037f5:	6a 01                	push   $0x1
5037f7:	8b 44 24 08          	mov    0x8(%esp),%eax
5037fb:	8b 54 24 20          	mov    0x20(%esp),%edx
5037ff:	8b 88 90 00 00 00    	mov    0x90(%eax),%ecx
503805:	8b 42 04             	mov    0x4(%edx),%eax
503808:	0f af cf             	imul   %edi,%ecx
50380b:	8b 54 24 0c          	mov    0xc(%esp),%edx
50380f:	8b 54 82 48          	mov    0x48(%edx,%eax,4),%edx
503813:	8b 44 24 08          	mov    0x8(%esp),%eax
503817:	8b 78 04             	mov    0x4(%eax),%edi
50381a:	ff 57 20             	call   *0x20(%edi)
50381d:	89 06                	mov    %eax,(%esi)
50381f:	83 c6 04             	add    $0x4,%esi
503822:	ff 44 24 0c          	incl   0xc(%esp)
503826:	83 c3 04             	add    $0x4,%ebx
503829:	8b 04 24             	mov    (%esp),%eax
50382c:	8b 90 40 01 00 00    	mov    0x140(%eax),%edx
503832:	3b 54 24 0c          	cmp    0xc(%esp),%edx
503836:	7f af                	jg     0x5037e7
503838:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50383c:	8b 41 18             	mov    0x18(%ecx),%eax
50383f:	89 44 24 10          	mov    %eax,0x10(%esp)
503843:	e9 11 01 00 00       	jmp    0x503959
503848:	8b 54 24 04          	mov    0x4(%esp),%edx
50384c:	8b 4a 14             	mov    0x14(%edx),%ecx
50384f:	89 4c 24 08          	mov    %ecx,0x8(%esp)
503853:	e9 e1 00 00 00       	jmp    0x503939
503858:	33 db                	xor    %ebx,%ebx
50385a:	33 c0                	xor    %eax,%eax
50385c:	89 44 24 0c          	mov    %eax,0xc(%esp)
503860:	8d 54 24 28          	lea    0x28(%esp),%edx
503864:	89 54 24 24          	mov    %edx,0x24(%esp)
503868:	8b 0c 24             	mov    (%esp),%ecx
50386b:	8d 81 44 01 00 00    	lea    0x144(%ecx),%eax
503871:	89 44 24 1c          	mov    %eax,0x1c(%esp)
503875:	eb 7a                	jmp    0x5038f1
503877:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50387b:	8b 0a                	mov    (%edx),%ecx
50387d:	89 4c 24 18          	mov    %ecx,0x18(%esp)
503881:	8b 44 24 18          	mov    0x18(%esp),%eax
503885:	8b 50 34             	mov    0x34(%eax),%edx
503888:	0f af 54 24 08       	imul   0x8(%esp),%edx
50388d:	89 54 24 14          	mov    %edx,0x14(%esp)
503891:	33 f6                	xor    %esi,%esi
503893:	8b 44 24 24          	mov    0x24(%esp),%eax
503897:	8b d0                	mov    %eax,%edx
503899:	89 54 24 20          	mov    %edx,0x20(%esp)
50389d:	eb 3b                	jmp    0x5038da
50389f:	8b 44 24 20          	mov    0x20(%esp),%eax
5038a3:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5038a7:	03 ce                	add    %esi,%ecx
5038a9:	8b 10                	mov    (%eax),%edx
5038ab:	8b 44 24 14          	mov    0x14(%esp),%eax
5038af:	c1 e0 07             	shl    $0x7,%eax
5038b2:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
5038b5:	03 d0                	add    %eax,%edx
5038b7:	8b 44 24 04          	mov    0x4(%esp),%eax
5038bb:	33 c9                	xor    %ecx,%ecx
5038bd:	8d 44 98 20          	lea    0x20(%eax,%ebx,4),%eax
5038c1:	eb 0d                	jmp    0x5038d0
5038c3:	89 10                	mov    %edx,(%eax)
5038c5:	81 c2 80 00 00 00    	add    $0x80,%edx
5038cb:	43                   	inc    %ebx
5038cc:	83 c0 04             	add    $0x4,%eax
5038cf:	41                   	inc    %ecx
5038d0:	8b 7c 24 18          	mov    0x18(%esp),%edi
5038d4:	3b 4f 34             	cmp    0x34(%edi),%ecx
5038d7:	7c ea                	jl     0x5038c3
5038d9:	46                   	inc    %esi
5038da:	8b 44 24 18          	mov    0x18(%esp),%eax
5038de:	3b 70 38             	cmp    0x38(%eax),%esi
5038e1:	7c bc                	jl     0x50389f
5038e3:	ff 44 24 0c          	incl   0xc(%esp)
5038e7:	83 44 24 24 04       	addl   $0x4,0x24(%esp)
5038ec:	83 44 24 1c 04       	addl   $0x4,0x1c(%esp)
5038f1:	8b 14 24             	mov    (%esp),%edx
5038f4:	8b 8a 40 01 00 00    	mov    0x140(%edx),%ecx
5038fa:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
5038fe:	0f 8f 73 ff ff ff    	jg     0x503877
503904:	8b 04 24             	mov    (%esp),%eax
503907:	8b 54 24 04          	mov    0x4(%esp),%edx
50390b:	83 c2 20             	add    $0x20,%edx
50390e:	8b 88 b4 01 00 00    	mov    0x1b4(%eax),%ecx
503914:	ff 51 04             	call   *0x4(%ecx)
503917:	85 c0                	test   %eax,%eax
503919:	75 1a                	jne    0x503935
50391b:	8b 44 24 04          	mov    0x4(%esp),%eax
50391f:	8b 54 24 10          	mov    0x10(%esp),%edx
503923:	89 50 18             	mov    %edx,0x18(%eax)
503926:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50392a:	8b 44 24 08          	mov    0x8(%esp),%eax
50392e:	89 41 14             	mov    %eax,0x14(%ecx)
503931:	33 c0                	xor    %eax,%eax
503933:	eb 6f                	jmp    0x5039a4
503935:	ff 44 24 08          	incl   0x8(%esp)
503939:	8b 14 24             	mov    (%esp),%edx
50393c:	8b 8a 54 01 00 00    	mov    0x154(%edx),%ecx
503942:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
503946:	0f 87 0c ff ff ff    	ja     0x503858
50394c:	8b 44 24 04          	mov    0x4(%esp),%eax
503950:	33 d2                	xor    %edx,%edx
503952:	89 50 14             	mov    %edx,0x14(%eax)
503955:	ff 44 24 10          	incl   0x10(%esp)
503959:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50395d:	8b 41 1c             	mov    0x1c(%ecx),%eax
503960:	3b 44 24 10          	cmp    0x10(%esp),%eax
503964:	0f 8f de fe ff ff    	jg     0x503848
50396a:	8b 14 24             	mov    (%esp),%edx
50396d:	ff 82 90 00 00 00    	incl   0x90(%edx)