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)
504a5d:	75 62                	jne    0x504ac1
504a5f:	ff 76 0c             	push   0xc(%esi)
504a62:	ff 72 04             	push   0x4(%edx)
504a65:	ff 76 08             	push   0x8(%esi)
504a68:	53                   	push   %ebx
504a69:	e8 82 07 02 00       	call   0x5251f0
504a6e:	eb 4e                	jmp    0x504abe
504a70:	83 7a 08 00          	cmpl   $0x0,0x8(%edx)
504a74:	75 18                	jne    0x504a8e
504a76:	ff 76 0c             	push   0xc(%esi)
504a79:	53                   	push   %ebx
504a7a:	e8 a1 84 02 00       	call   0x52cf20
504a7f:	8b 55 14             	mov    0x14(%ebp),%edx
504a82:	83 c4 08             	add    $0x8,%esp
504a85:	89 42 08             	mov    %eax,0x8(%edx)
504a88:	8b 46 0c             	mov    0xc(%esi),%eax
504a8b:	89 42 0c             	mov    %eax,0xc(%edx)
504a8e:	ff 76 0c             	push   0xc(%esi)
504a91:	ff 72 08             	push   0x8(%edx)
504a94:	ff 76 08             	push   0x8(%esi)
504a97:	53                   	push   %ebx
504a98:	e8 53 07 02 00       	call   0x5251f0
504a9d:	8b 45 14             	mov    0x14(%ebp),%eax
504aa0:	ff 70 04             	push   0x4(%eax)
504aa3:	6a 0e                	push   $0xe
504aa5:	57                   	push   %edi
504aa6:	e8 d5 cf 03 00       	call   0x541a80
504aab:	83 c4 1c             	add    $0x1c,%esp
504aae:	eb 11                	jmp    0x504ac1
504ab0:	ff 76 0c             	push   0xc(%esi)
504ab3:	ff 76 08             	push   0x8(%esi)
504ab6:	6a 50                	push   $0x50
504ab8:	57                   	push   %edi
504ab9:	e8 22 d0 03 00       	call   0x541ae0
504abe:	83 c4 10             	add    $0x10,%esp
504ac1:	8b 45 0c             	mov    0xc(%ebp),%eax
504ac4:	8b 40 08             	mov    0x8(%eax),%eax
504ac7:	85 c0                	test   %eax,%eax
504ac9:	74 0f                	je     0x504ada
504acb:	ff 75 24             	push   0x24(%ebp)
504ace:	50                   	push   %eax
504acf:	6a 3b                	push   $0x3b
504ad1:	57                   	push   %edi
504ad2:	e8 09 d0 03 00       	call   0x541ae0
504ad7:	83 c4 10             	add    $0x10,%esp
504ada:	8b 4f 0c             	mov    0xc(%edi),%ecx
504add:	8b 55 fc             	mov    -0x4(%ebp),%edx
504ae0:	f7 d2                	not    %edx
504ae2:	8b 41 3c             	mov    0x3c(%ecx),%eax
504ae5:	03 41 38             	add    0x38(%ecx),%eax
504ae8:	79 0d                	jns    0x504af7
504aea:	52                   	push   %edx
504aeb:	57                   	push   %edi
504aec:	51                   	push   %ecx
504aed:	e8 ae ec 00 00       	call   0x5137a0
504af2:	83 c4 0c             	add    $0xc,%esp
504af5:	eb 09                	jmp    0x504b00
504af7:	8b 49 40             	mov    0x40(%ecx),%ecx
504afa:	8b 47 6c             	mov    0x6c(%edi),%eax
504afd:	89 04 91             	mov    %eax,(%ecx,%edx,4)
504b00:	8b 4f 6c             	mov    0x6c(%edi),%ecx
504b03:	39 4f 70             	cmp    %ecx,0x70(%edi)
504b06:	7f 1c                	jg     0x504b24
504b08:	6a 00                	push   $0x0
504b0a:	6a 00                	push   $0x0
504b0c:	ff 75 18             	push   0x18(%ebp)
504b0f:	6a 41                	push   $0x41
504b11:	57                   	push   %edi
504b12:	e8 e9 19 00 00       	call   0x506500
504b17:	8b 45 ec             	mov    -0x14(%ebp),%eax
504b1a:	83 c4 14             	add    $0x14,%esp
504b1d:	5f                   	pop    %edi
504b1e:	5e                   	pop    %esi
504b1f:	5b                   	pop    %ebx
504b20:	8b e5                	mov    %ebp,%esp
504b22:	5d                   	pop    %ebp
504b23:	c3                   	ret
504b24:	8d 41 01             	lea    0x1(%ecx),%eax
504b27:	89 47 6c             	mov    %eax,0x6c(%edi)
504b2a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504b2d:	8b 47 68             	mov    0x68(%edi),%eax
504b30:	5f                   	pop    %edi
504b31:	5e                   	pop    %esi
504b32:	c7 04 88 41 00 00 00 	movl   $0x41,(%eax,%ecx,4)
504b39:	8d 14 88             	lea    (%eax,%ecx,4),%edx
504b3c:	8b 4d 18             	mov    0x18(%ebp),%ecx
504b3f:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
504b46:	8b 45 ec             	mov    -0x14(%ebp),%eax
504b49:	89 4a 04             	mov    %ecx,0x4(%edx)
504b4c:	c7 42 0c 00 00 00 00 	movl   $0x0,0xc(%edx)
504b53:	c7 42 10 00 00 00 00 	movl   $0x0,0x10(%edx)
504b5a:	5b                   	pop    %ebx
504b5b:	8b e5                	mov    %ebp,%esp
504b5d:	5d                   	pop    %ebp
504b5e:	c3                   	ret
504b5f:	90                   	nop
504b60:	59                   	pop    %ecx
504b61:	4a                   	dec    %edx
504b62:	50                   	push   %eax
504b63:	00 13                	add    %dl,(%ebx)
504b65:	4a                   	dec    %edx
504b66:	50                   	push   %eax
504b67:	00 9d 49 50 00 70    	add    %bl,0x70005049(%ebp)
504b6d:	4a                   	dec    %edx
504b6e:	50                   	push   %eax
504b6f:	00 55 8b             	add    %dl,-0x75(%ebp)
504b72:	ec                   	in     (%dx),%al
504b73:	83 ec 34             	sub    $0x34,%esp
504b76:	8b 55 10             	mov    0x10(%ebp),%edx
504b79:	8b 4d 18             	mov    0x18(%ebp),%ecx
504b7c:	53                   	push   %ebx
504b7d:	56                   	push   %esi
504b7e:	8b 42 18             	mov    0x18(%edx),%eax
504b81:	57                   	push   %edi
504b82:	8b 7d 08             	mov    0x8(%ebp),%edi
504b85:	89 45 e8             	mov    %eax,-0x18(%ebp)
504b88:	ff 4f 38             	decl   0x38(%edi)
504b8b:	8b 47 38             	mov    0x38(%edi),%eax
504b8e:	0f b6 19             	movzbl (%ecx),%ebx
504b91:	8b 77 08             	mov    0x8(%edi),%esi
504b94:	89 45 dc             	mov    %eax,-0x24(%ebp)
504b97:	33 c0                	xor    %eax,%eax
504b99:	89 45 d8             	mov    %eax,-0x28(%ebp)
504b9c:	8b 02                	mov    (%edx),%eax
504b9e:	8b 52 10             	mov    0x10(%edx),%edx
504ba1:	89 45 d4             	mov    %eax,-0x2c(%ebp)
504ba4:	8b 41 04             	mov    0x4(%ecx),%eax
504ba7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
504baa:	8b 45 0c             	mov    0xc(%ebp),%eax
504bad:	89 75 cc             	mov    %esi,-0x34(%ebp)
504bb0:	89 5d f4             	mov    %ebx,-0xc(%ebp)
504bb3:	8b 40 1c             	mov    0x1c(%eax),%eax
504bb6:	83 c0 04             	add    $0x4,%eax
504bb9:	89 45 d0             	mov    %eax,-0x30(%ebp)
504bbc:	85 d2                	test   %edx,%edx
504bbe:	0f 84 85 00 00 00    	je     0x504c49
504bc4:	8b 5d 10             	mov    0x10(%ebp),%ebx
504bc7:	8b 4e 6c             	mov    0x6c(%esi),%ecx
504bca:	8b 5b 0c             	mov    0xc(%ebx),%ebx
504bcd:	39 4e 70             	cmp    %ecx,0x70(%esi)
504bd0:	7f 11                	jg     0x504be3
504bd2:	6a 00                	push   $0x0
504bd4:	52                   	push   %edx
504bd5:	53                   	push   %ebx
504bd6:	6a 0c                	push   $0xc
504bd8:	56                   	push   %esi
504bd9:	e8 22 19 00 00       	call   0x506500
504bde:	83 c4 14             	add    $0x14,%esp
504be1:	eb 2b                	jmp    0x504c0e
504be3:	8d 41 01             	lea    0x1(%ecx),%eax
504be6:	89 46 6c             	mov    %eax,0x6c(%esi)
504be9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504bec:	8b 46 68             	mov    0x68(%esi),%eax
504bef:	c7 04 88 0c 00 00 00 	movl   $0xc,(%eax,%ecx,4)
504bf6:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
504bfa:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
504bfe:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
504c05:	00
504c06:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504c0d:	00
504c0e:	ff 75 e8             	push   -0x18(%ebp)
504c11:	56                   	push   %esi
504c12:	e8 89 54 04 00       	call   0x54a0a0
504c17:	8b 45 10             	mov    0x10(%ebp),%eax
504c1a:	83 c4 08             	add    $0x8,%esp
504c1d:	8b 4e 0c             	mov    0xc(%esi),%ecx
504c20:	8b 50 10             	mov    0x10(%eax),%edx
504c23:	8b 41 3c             	mov    0x3c(%ecx),%eax
504c26:	f7 d2                	not    %edx
504c28:	03 41 38             	add    0x38(%ecx),%eax
504c2b:	79 0d                	jns    0x504c3a
504c2d:	52                   	push   %edx
504c2e:	56                   	push   %esi
504c2f:	51                   	push   %ecx
504c30:	e8 6b eb 00 00       	call   0x5137a0