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
504c35:	83 c4 0c             	add    $0xc,%esp
504c38:	eb 09                	jmp    0x504c43
504c3a:	8b 49 40             	mov    0x40(%ecx),%ecx
504c3d:	8b 46 6c             	mov    0x6c(%esi),%eax
504c40:	89 04 91             	mov    %eax,(%ecx,%edx,4)
504c43:	8b 5d f4             	mov    -0xc(%ebp),%ebx
504c46:	8b 4d 18             	mov    0x18(%ebp),%ecx
504c49:	8b 45 10             	mov    0x10(%ebp),%eax
504c4c:	8b 50 08             	mov    0x8(%eax),%edx
504c4f:	89 55 f0             	mov    %edx,-0x10(%ebp)
504c52:	83 fb 09             	cmp    $0x9,%ebx
504c55:	74 6e                	je     0x504cc5
504c57:	83 fb 0d             	cmp    $0xd,%ebx
504c5a:	74 69                	je     0x504cc5
504c5c:	83 fb 0a             	cmp    $0xa,%ebx
504c5f:	74 64                	je     0x504cc5
504c61:	8a 47 13             	mov    0x13(%edi),%al
504c64:	84 c0                	test   %al,%al
504c66:	75 08                	jne    0x504c70
504c68:	ff 47 2c             	incl   0x2c(%edi)
504c6b:	8b 47 2c             	mov    0x2c(%edi),%eax
504c6e:	eb 0f                	jmp    0x504c7f
504c70:	fe c8                	dec    %al
504c72:	88 47 13             	mov    %al,0x13(%edi)
504c75:	0f b6 c0             	movzbl %al,%eax
504c78:	8b 84 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%eax
504c7f:	89 45 fc             	mov    %eax,-0x4(%ebp)
504c82:	83 fb 0c             	cmp    $0xc,%ebx
504c85:	74 1a                	je     0x504ca1
504c87:	83 fb 0e             	cmp    $0xe,%ebx
504c8a:	74 15                	je     0x504ca1
504c8c:	8b 5d 14             	mov    0x14(%ebp),%ebx
504c8f:	53                   	push   %ebx
504c90:	57                   	push   %edi
504c91:	89 5d 14             	mov    %ebx,0x14(%ebp)
504c94:	e8 87 82 02 00       	call   0x52cf20
504c99:	8b 55 f0             	mov    -0x10(%ebp),%edx
504c9c:	83 c4 08             	add    $0x8,%esp
504c9f:	eb 34                	jmp    0x504cd5
504ca1:	8a 47 13             	mov    0x13(%edi),%al
504ca4:	84 c0                	test   %al,%al
504ca6:	75 0a                	jne    0x504cb2
504ca8:	ff 47 2c             	incl   0x2c(%edi)
504cab:	33 db                	xor    %ebx,%ebx
504cad:	8b 47 2c             	mov    0x2c(%edi),%eax
504cb0:	eb 20                	jmp    0x504cd2
504cb2:	fe c8                	dec    %al
504cb4:	33 db                	xor    %ebx,%ebx
504cb6:	88 47 13             	mov    %al,0x13(%edi)
504cb9:	0f b6 c0             	movzbl %al,%eax
504cbc:	8b 84 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%eax
504cc3:	eb 0d                	jmp    0x504cd2
504cc5:	8b 41 08             	mov    0x8(%ecx),%eax
504cc8:	8b 5d 14             	mov    0x14(%ebp),%ebx
504ccb:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
504cd2:	89 5d 14             	mov    %ebx,0x14(%ebp)
504cd5:	8b 4d 10             	mov    0x10(%ebp),%ecx
504cd8:	89 45 f8             	mov    %eax,-0x8(%ebp)
504cdb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
504cde:	8b 00                	mov    (%eax),%eax
504ce0:	2b 41 04             	sub    0x4(%ecx),%eax
504ce3:	f6 41 20 01          	testb  $0x1,0x20(%ecx)
504ce7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
504cea:	0f 84 59 01 00 00    	je     0x504e49
504cf0:	ff 47 2c             	incl   0x2c(%edi)
504cf3:	8b 47 2c             	mov    0x2c(%edi),%eax
504cf6:	89 45 e0             	mov    %eax,-0x20(%ebp)
504cf9:	8b 47 28             	mov    0x28(%edi),%eax
504cfc:	89 45 ec             	mov    %eax,-0x14(%ebp)
504cff:	40                   	inc    %eax
504d00:	89 47 28             	mov    %eax,0x28(%edi)
504d03:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
504d07:	74 0e                	je     0x504d17
504d09:	6a 11                	push   $0x11
504d0b:	56                   	push   %esi
504d0c:	e8 0f cd 03 00       	call   0x541a20
504d11:	83 c4 08             	add    $0x8,%esp
504d14:	89 45 d8             	mov    %eax,-0x28(%ebp)
504d17:	8b 55 d4             	mov    -0x2c(%ebp),%edx
504d1a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
504d1d:	42                   	inc    %edx
504d1e:	03 d3                	add    %ebx,%edx
504d20:	39 4e 70             	cmp    %ecx,0x70(%esi)
504d23:	7f 14                	jg     0x504d39
504d25:	52                   	push   %edx
504d26:	ff 75 e0             	push   -0x20(%ebp)
504d29:	ff 75 ec             	push   -0x14(%ebp)
504d2c:	6a 72                	push   $0x72
504d2e:	56                   	push   %esi
504d2f:	e8 cc 17 00 00       	call   0x506500
504d34:	83 c4 14             	add    $0x14,%esp
504d37:	eb 2d                	jmp    0x504d66
504d39:	8b 5d ec             	mov    -0x14(%ebp),%ebx
504d3c:	8d 41 01             	lea    0x1(%ecx),%eax
504d3f:	89 46 6c             	mov    %eax,0x6c(%esi)
504d42:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504d45:	8b 46 68             	mov    0x68(%esi),%eax
504d48:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
504d4c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
504d4f:	c7 04 88 72 00 00 00 	movl   $0x72,(%eax,%ecx,4)
504d56:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
504d5a:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
504d5e:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504d65:	00
504d66:	8b 4d d8             	mov    -0x28(%ebp),%ecx
504d69:	85 c9                	test   %ecx,%ecx
504d6b:	74 23                	je     0x504d90
504d6d:	8b 56 6c             	mov    0x6c(%esi),%edx
504d70:	79 03                	jns    0x504d75
504d72:	8d 4a ff             	lea    -0x1(%edx),%ecx
504d75:	8b 06                	mov    (%esi),%eax
504d77:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
504d7b:	74 07                	je     0x504d84
504d7d:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
504d82:	eb 09                	jmp    0x504d8d
504d84:	8b 46 68             	mov    0x68(%esi),%eax
504d87:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504d8a:	8d 04 88             	lea    (%eax,%ecx,4),%eax
504d8d:	89 50 08             	mov    %edx,0x8(%eax)
504d90:	8b 5e 6c             	mov    0x6c(%esi),%ebx
504d93:	39 5e 70             	cmp    %ebx,0x70(%esi)
504d96:	7f 17                	jg     0x504daf
504d98:	6a 00                	push   $0x0
504d9a:	ff 75 e8             	push   -0x18(%ebp)
504d9d:	ff 75 f0             	push   -0x10(%ebp)
504da0:	6a 23                	push   $0x23
504da2:	56                   	push   %esi
504da3:	e8 58 17 00 00       	call   0x506500
504da8:	83 c4 14             	add    $0x14,%esp
504dab:	8b d8                	mov    %eax,%ebx
504dad:	eb 31                	jmp    0x504de0
504daf:	8b 55 f0             	mov    -0x10(%ebp),%edx
504db2:	8d 43 01             	lea    0x1(%ebx),%eax
504db5:	89 46 6c             	mov    %eax,0x6c(%esi)
504db8:	8d 0c 9b             	lea    (%ebx,%ebx,4),%ecx
504dbb:	8b 46 68             	mov    0x68(%esi),%eax
504dbe:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
504dc2:	8b 55 e8             	mov    -0x18(%ebp),%edx
504dc5:	c7 04 88 23 00 00 00 	movl   $0x23,(%eax,%ecx,4)
504dcc:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
504dd0:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
504dd7:	00
504dd8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504ddf:	00
504de0:	8b 45 0c             	mov    0xc(%ebp),%eax
504de3:	ff 75 dc             	push   -0x24(%ebp)
504de6:	ff 70 0c             	push   0xc(%eax)
504de9:	56                   	push   %esi
504dea:	e8 e1 53 ff ff       	call   0x4fa1d0
504def:	8b 4e 6c             	mov    0x6c(%esi),%ecx
504df2:	83 c4 0c             	add    $0xc,%esp
504df5:	39 4e 70             	cmp    %ecx,0x70(%esi)
504df8:	7f 1b                	jg     0x504e15
504dfa:	ff 75 ec             	push   -0x14(%ebp)
504dfd:	ff 75 e0             	push   -0x20(%ebp)
504e00:	ff 75 f0             	push   -0x10(%ebp)
504e03:	6a 7d                	push   $0x7d
504e05:	56                   	push   %esi
504e06:	e8 f5 16 00 00       	call   0x506500
504e0b:	83 c4 14             	add    $0x14,%esp
504e0e:	33 c0                	xor    %eax,%eax
504e10:	e9 9f 00 00 00       	jmp    0x504eb4
504e15:	8b 55 f0             	mov    -0x10(%ebp),%edx
504e18:	8d 41 01             	lea    0x1(%ecx),%eax
504e1b:	89 46 6c             	mov    %eax,0x6c(%esi)
504e1e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504e21:	8b 46 68             	mov    0x68(%esi),%eax
504e24:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
504e28:	8b 55 e0             	mov    -0x20(%ebp),%edx
504e2b:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
504e2f:	8b 55 ec             	mov    -0x14(%ebp),%edx
504e32:	c7 04 88 7d 00 00 00 	movl   $0x7d,(%eax,%ecx,4)
504e39:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
504e3d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504e44:	00