50466e:	8d 42 04             	lea    0x4(%edx),%eax
504671:	57                   	push   %edi
504672:	89 45 d0             	mov    %eax,-0x30(%ebp)
504675:	8d 7e 01             	lea    0x1(%esi),%edi
504678:	ff 30                	push   (%eax)
50467a:	8d 45 dc             	lea    -0x24(%ebp),%eax
50467d:	50                   	push   %eax
50467e:	e8 ed 67 ff ff       	call   0x4fae70
504683:	8b 0b                	mov    (%ebx),%ecx
504685:	83 c4 08             	add    $0x8,%esp
504688:	89 45 cc             	mov    %eax,-0x34(%ebp)
50468b:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
50468f:	0f 85 d9 00 00 00    	jne    0x50476e
504695:	0f b7 8b 90 00 00 00 	movzwl 0x90(%ebx),%ecx
50469c:	03 ce                	add    %esi,%ecx
50469e:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
5046a1:	8b 4b 74             	mov    0x74(%ebx),%ecx
5046a4:	8d 34 d1             	lea    (%ecx,%edx,8),%esi
5046a7:	85 c0                	test   %eax,%eax
5046a9:	75 22                	jne    0x5046cd
5046ab:	b8 00 24 00 00       	mov    $0x2400,%eax
5046b0:	66 85 46 08          	test   %ax,0x8(%esi)
5046b4:	74 0e                	je     0x5046c4
5046b6:	56                   	push   %esi
5046b7:	e8 94 67 05 00       	call   0x55ae50
5046bc:	83 c4 04             	add    $0x4,%esp
5046bf:	e9 aa 00 00 00       	jmp    0x50476e
5046c4:	66 89 7e 08          	mov    %di,0x8(%esi)
5046c8:	e9 a1 00 00 00       	jmp    0x50476e
5046cd:	8b 4e 20             	mov    0x20(%esi),%ecx
5046d0:	85 c9                	test   %ecx,%ecx
5046d2:	74 05                	je     0x5046d9
5046d4:	8b 51 6c             	mov    0x6c(%ecx),%edx
5046d7:	eb 05                	jmp    0x5046de
5046d9:	ba 00 ca 9a 3b       	mov    $0x3b9aca00,%edx
5046de:	8b f8                	mov    %eax,%edi
5046e0:	8d 5f 01             	lea    0x1(%edi),%ebx
5046e3:	8a 07                	mov    (%edi),%al
5046e5:	47                   	inc    %edi
5046e6:	84 c0                	test   %al,%al
5046e8:	75 f9                	jne    0x5046e3
5046ea:	2b fb                	sub    %ebx,%edi
5046ec:	81 e7 ff ff ff 7f    	and    $0x7fffffff,%edi
5046f2:	8d 5f 01             	lea    0x1(%edi),%ebx
5046f5:	3b fa                	cmp    %edx,%edi
5046f7:	7e 22                	jle    0x50471b
5046f9:	85 c9                	test   %ecx,%ecx
5046fb:	74 69                	je     0x504766
5046fd:	8b 81 f4 00 00 00    	mov    0xf4(%ecx),%eax
504703:	bf 01 00 00 00       	mov    $0x1,%edi
504708:	8b 5d d8             	mov    -0x28(%ebp),%ebx
50470b:	85 c0                	test   %eax,%eax
50470d:	74 5f                	je     0x50476e
50470f:	ff 40 24             	incl   0x24(%eax)
504712:	c7 40 0c 12 00 00 00 	movl   $0x12,0xc(%eax)
504719:	eb 53                	jmp    0x50476e
50471b:	b8 20 00 00 00       	mov    $0x20,%eax
504720:	3b d8                	cmp    %eax,%ebx
504722:	0f 47 c3             	cmova  %ebx,%eax
504725:	39 46 18             	cmp    %eax,0x18(%esi)
504728:	7d 12                	jge    0x50473c
50472a:	6a 00                	push   $0x0
50472c:	50                   	push   %eax
50472d:	56                   	push   %esi
50472e:	e8 bd 6d 04 00       	call   0x54b4f0
504733:	83 c4 0c             	add    $0xc,%esp
504736:	85 c0                	test   %eax,%eax
504738:	75 2c                	jne    0x504766
50473a:	eb 0b                	jmp    0x504747
50473c:	8b 46 14             	mov    0x14(%esi),%eax
50473f:	66 83 66 08 2d       	andw   $0x2d,0x8(%esi)
504744:	89 46 10             	mov    %eax,0x10(%esi)
504747:	53                   	push   %ebx
504748:	ff 75 cc             	push   -0x34(%ebp)
50474b:	ff 76 10             	push   0x10(%esi)
50474e:	e8 ad e7 0d 00       	call   0x5e2f00
504753:	b8 02 02 00 00       	mov    $0x202,%eax
504758:	89 7e 0c             	mov    %edi,0xc(%esi)
50475b:	83 c4 0c             	add    $0xc,%esp
50475e:	66 89 46 08          	mov    %ax,0x8(%esi)
504762:	c6 46 0a 01          	movb   $0x1,0xa(%esi)
504766:	8b 5d d8             	mov    -0x28(%ebp),%ebx
504769:	bf 01 00 00 00       	mov    $0x1,%edi
50476e:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
504771:	8b 55 c8             	mov    -0x38(%ebp),%edx
504774:	41                   	inc    %ecx
504775:	8b 45 d0             	mov    -0x30(%ebp),%eax
504778:	8b f1                	mov    %ecx,%esi
50477a:	83 c0 14             	add    $0x14,%eax
50477d:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
504780:	89 45 d0             	mov    %eax,-0x30(%ebp)
504783:	3b 0a                	cmp    (%edx),%ecx
504785:	0f 8c ed fe ff ff    	jl     0x504678
50478b:	5f                   	pop    %edi
50478c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50478f:	5e                   	pop    %esi
504790:	33 cd                	xor    %ebp,%ecx
504792:	5b                   	pop    %ebx
504793:	e8 42 cd 0d 00       	call   0x5e14da
504798:	8b e5                	mov    %ebp,%esp
50479a:	5d                   	pop    %ebp
50479b:	c3                   	ret
50479c:	cc                   	int3
50479d:	cc                   	int3
50479e:	cc                   	int3
50479f:	cc                   	int3
5047a0:	55                   	push   %ebp
5047a1:	8b ec                	mov    %esp,%ebp
5047a3:	83 ec 14             	sub    $0x14,%esp
5047a6:	53                   	push   %ebx
5047a7:	8b 5d 08             	mov    0x8(%ebp),%ebx
5047aa:	56                   	push   %esi
5047ab:	8b 75 1c             	mov    0x1c(%ebp),%esi
5047ae:	57                   	push   %edi
5047af:	8b 7b 08             	mov    0x8(%ebx),%edi
5047b2:	8b 47 6c             	mov    0x6c(%edi),%eax
5047b5:	ff 4b 38             	decl   0x38(%ebx)
5047b8:	8b 4b 38             	mov    0x38(%ebx),%ecx
5047bb:	89 45 ec             	mov    %eax,-0x14(%ebp)
5047be:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5047c1:	85 f6                	test   %esi,%esi
5047c3:	0f 84 97 01 00 00    	je     0x504960
5047c9:	8b 57 6c             	mov    0x6c(%edi),%edx
5047cc:	89 55 f4             	mov    %edx,-0xc(%ebp)
5047cf:	39 57 70             	cmp    %edx,0x70(%edi)
5047d2:	7f 15                	jg     0x5047e9
5047d4:	6a 00                	push   $0x0
5047d6:	6a 00                	push   $0x0
5047d8:	56                   	push   %esi
5047d9:	6a 14                	push   $0x14
5047db:	57                   	push   %edi
5047dc:	e8 1f 1d 00 00       	call   0x506500
5047e1:	83 c4 14             	add    $0x14,%esp
5047e4:	89 45 f4             	mov    %eax,-0xc(%ebp)
5047e7:	eb 2f                	jmp    0x504818
5047e9:	8d 42 01             	lea    0x1(%edx),%eax
5047ec:	89 47 6c             	mov    %eax,0x6c(%edi)
5047ef:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5047f2:	8b 47 68             	mov    0x68(%edi),%eax
5047f5:	c7 04 88 14 00 00 00 	movl   $0x14,(%eax,%ecx,4)
5047fc:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
504800:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
504807:	00
504808:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
50480f:	00
504810:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504817:	00
504818:	8b 45 20             	mov    0x20(%ebp),%eax
50481b:	85 c0                	test   %eax,%eax
50481d:	74 02                	je     0x504821
50481f:	ff 00                	incl   (%eax)
504821:	8d 4e 01             	lea    0x1(%esi),%ecx
504824:	8b 75 10             	mov    0x10(%ebp),%esi
504827:	6a f7                	push   $0xfffffff7
504829:	50                   	push   %eax
50482a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50482d:	ff 76 0c             	push   0xc(%esi)
504830:	51                   	push   %ecx
504831:	ff 76 08             	push   0x8(%esi)
504834:	6a 56                	push   $0x56
504836:	57                   	push   %edi
504837:	e8 54 d3 03 00       	call   0x541b90
50483c:	8b 4f 6c             	mov    0x6c(%edi),%ecx
50483f:	83 c0 02             	add    $0x2,%eax
504842:	83 c4 1c             	add    $0x1c,%esp
504845:	89 45 f8             	mov    %eax,-0x8(%ebp)
504848:	39 4f 70             	cmp    %ecx,0x70(%edi)
50484b:	7f 13                	jg     0x504860
50484d:	8b 55 fc             	mov    -0x4(%ebp),%edx
504850:	50                   	push   %eax
504851:	52                   	push   %edx
504852:	50                   	push   %eax
504853:	6a 10                	push   $0x10
504855:	57                   	push   %edi
504856:	e8 a5 1c 00 00       	call   0x506500
50485b:	83 c4 14             	add    $0x14,%esp
50485e:	eb 30                	jmp    0x504890
504860:	8b 55 f8             	mov    -0x8(%ebp),%edx
504863:	8d 41 01             	lea    0x1(%ecx),%eax
504866:	89 47 6c             	mov    %eax,0x6c(%edi)
504869:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
50486c:	8b 47 68             	mov    0x68(%edi),%eax
50486f:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
504873:	8b 55 fc             	mov    -0x4(%ebp),%edx
504876:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
50487a:	8b 55 f8             	mov    -0x8(%ebp),%edx
50487d:	c7 04 88 10 00 00 00 	movl   $0x10,(%eax,%ecx,4)
504884:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
504888:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
50488f:	00
504890:	8b 4d f4             	mov    -0xc(%ebp),%ecx
504893:	8b 57 6c             	mov    0x6c(%edi),%edx
504896:	85 c9                	test   %ecx,%ecx
504898:	79 03                	jns    0x50489d
50489a:	8d 4a ff             	lea    -0x1(%edx),%ecx
50489d:	8b 07                	mov    (%edi),%eax
50489f:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5048a3:	74 07                	je     0x5048ac
5048a5:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5048aa:	eb 09                	jmp    0x5048b5
5048ac:	8b 47 68             	mov    0x68(%edi),%eax
5048af:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5048b2:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5048b5:	89 50 08             	mov    %edx,0x8(%eax)
5048b8:	8b 56 0c             	mov    0xc(%esi),%edx
5048bb:	8b 4f 6c             	mov    0x6c(%edi),%ecx
5048be:	4a                   	dec    %edx
5048bf:	8b 46 08             	mov    0x8(%esi),%eax
5048c2:	89 45 f4             	mov    %eax,-0xc(%ebp)
5048c5:	39 4f 70             	cmp    %ecx,0x70(%edi)
5048c8:	7f 12                	jg     0x5048dc
5048ca:	52                   	push   %edx
5048cb:	ff 75 f0             	push   -0x10(%ebp)
5048ce:	50                   	push   %eax
5048cf:	6a 4d                	push   $0x4d
5048d1:	57                   	push   %edi
5048d2:	e8 29 1c 00 00       	call   0x506500
5048d7:	83 c4 14             	add    $0x14,%esp
5048da:	eb 30                	jmp    0x50490c
5048dc:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5048df:	8d 41 01             	lea    0x1(%ecx),%eax
5048e2:	89 47 6c             	mov    %eax,0x6c(%edi)
5048e5:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5048e8:	8b 47 68             	mov    0x68(%edi),%eax
5048eb:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5048ef:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5048f2:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
5048f6:	8b 5d 08             	mov    0x8(%ebp),%ebx
5048f9:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
504900:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
504904:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
50490b:	00
50490c:	8b 4f 6c             	mov    0x6c(%edi),%ecx
50490f:	8b 55 1c             	mov    0x1c(%ebp),%edx
504912:	39 4f 70             	cmp    %ecx,0x70(%edi)
504915:	7f 15                	jg     0x50492c
504917:	6a 00                	push   $0x0
504919:	52                   	push   %edx
50491a:	6a 01                	push   $0x1
50491c:	6a 45                	push   $0x45
50491e:	57                   	push   %edi
50491f:	e8 dc 1b 00 00       	call   0x506500
504924:	8b 4d fc             	mov    -0x4(%ebp),%ecx
504927:	83 c4 14             	add    $0x14,%esp
50492a:	eb 37                	jmp    0x504963
50492c:	8d 41 01             	lea    0x1(%ecx),%eax
50492f:	89 47 6c             	mov    %eax,0x6c(%edi)
504932:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504935:	8b 47 68             	mov    0x68(%edi),%eax
504938:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
50493f:	c7 44 88 04 01 00 00 	movl   $0x1,0x4(%eax,%ecx,4)
504946:	00
504947:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
50494b:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
504952:	00
504953:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
50495a:	00
50495b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50495e:	eb 03                	jmp    0x504963
504960:	8b 75 10             	mov    0x10(%ebp),%esi
504963:	8b 03                	mov    (%ebx),%eax
504965:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
504969:	74 09                	je     0x504974
50496b:	5f                   	pop    %edi
50496c:	5e                   	pop    %esi
50496d:	33 c0                	xor    %eax,%eax
50496f:	5b                   	pop    %ebx
504970:	8b e5                	mov    %ebp,%esp
504972:	5d                   	pop    %ebp
504973:	c3                   	ret
504974:	8b 45 0c             	mov    0xc(%ebp),%eax
504977:	51                   	push   %ecx
504978:	ff 70 0c             	push   0xc(%eax)
50497b:	57                   	push   %edi
50497c:	e8 4f 58 ff ff       	call   0x4fa1d0
504981:	8b 55 14             	mov    0x14(%ebp),%edx
504984:	83 c4 0c             	add    $0xc,%esp
504987:	0f b6 02             	movzbl (%edx),%eax
50498a:	83 c0 f6             	add    $0xfffffff6,%eax
50498d:	83 f8 03             	cmp    $0x3,%eax
504990:	0f 87 1a 01 00 00    	ja     0x504ab0
504996:	ff 24 85 60 4b 50 00 	jmp    *0x504b60(,%eax,4)
50499d:	53                   	push   %ebx
50499e:	e8 dd 85 02 00       	call   0x52cf80
5049a3:	8b d0                	mov    %eax,%edx
5049a5:	53                   	push   %ebx
5049a6:	89 55 08             	mov    %edx,0x8(%ebp)
5049a9:	e8 d2 85 02 00       	call   0x52cf80
5049ae:	52                   	push   %edx
5049af:	ff 76 0c             	push   0xc(%esi)
5049b2:	89 45 1c             	mov    %eax,0x1c(%ebp)
5049b5:	ff 76 08             	push   0x8(%esi)
5049b8:	6a 5b                	push   $0x5b
5049ba:	57                   	push   %edi
5049bb:	e8 80 d1 03 00       	call   0x541b40
5049c0:	ff 75 1c             	push   0x1c(%ebp)
5049c3:	8b 75 14             	mov    0x14(%ebp),%esi
5049c6:	ff 76 04             	push   0x4(%esi)
5049c9:	6a 78                	push   $0x78
5049cb:	57                   	push   %edi
5049cc:	e8 0f d1 03 00       	call   0x541ae0
5049d1:	ff 75 1c             	push   0x1c(%ebp)
5049d4:	ff 75 08             	push   0x8(%ebp)
5049d7:	ff 76 04             	push   0x4(%esi)
5049da:	6a 79                	push   $0x79
5049dc:	57                   	push   %edi
5049dd:	e8 5e d1 03 00       	call   0x541b40
5049e2:	8b 47 6c             	mov    0x6c(%edi),%eax
5049e5:	83 c4 40             	add    $0x40,%esp
5049e8:	85 c0                	test   %eax,%eax
5049ea:	7e 10                	jle    0x5049fc
5049ec:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5049ef:	ba 08 00 00 00       	mov    $0x8,%edx
5049f4:	8b 47 68             	mov    0x68(%edi),%eax
5049f7:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
5049fc:	ff 75 1c             	push   0x1c(%ebp)
5049ff:	53                   	push   %ebx
504a00:	e8 8b 33 03 00       	call   0x537d90
504a05:	ff 75 08             	push   0x8(%ebp)
504a08:	53                   	push   %ebx
504a09:	e8 82 33 03 00       	call   0x537d90
504a0e:	e9 ab 00 00 00       	jmp    0x504abe
504a13:	53                   	push   %ebx
504a14:	e8 67 85 02 00       	call   0x52cf80
504a19:	8b 4d 10             	mov    0x10(%ebp),%ecx
504a1c:	8b f0                	mov    %eax,%esi
504a1e:	8b 41 0c             	mov    0xc(%ecx),%eax
504a21:	50                   	push   %eax
504a22:	ff 72 10             	push   0x10(%edx)
504a25:	56                   	push   %esi
504a26:	50                   	push   %eax
504a27:	ff 71 08             	push   0x8(%ecx)
504a2a:	6a 5b                	push   $0x5b
504a2c:	57                   	push   %edi
504a2d:	e8 5e d1 03 00       	call   0x541b90
504a32:	8b 45 10             	mov    0x10(%ebp),%eax
504a35:	ff 70 0c             	push   0xc(%eax)
504a38:	ff 70 08             	push   0x8(%eax)
504a3b:	8b 45 14             	mov    0x14(%ebp),%eax
504a3e:	56                   	push   %esi
504a3f:	ff 70 04             	push   0x4(%eax)
504a42:	68 83 00 00 00       	push   $0x83
504a47:	57                   	push   %edi
504a48:	e8 c3 d1 03 00       	call   0x541c10
504a4d:	56                   	push   %esi
504a4e:	53                   	push   %ebx
504a4f:	e8 3c 33 03 00       	call   0x537d90
504a54:	83 c4 40             	add    $0x40,%esp
504a57:	eb 68                	jmp    0x504ac1
504a59:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)